Nov*_*der 9 python syntax machine-learning scikit-learn
我看到了机器学习的故事,我偶然发现了youtube siraj和他的Udacity视频,想要尝试拿起一些东西.
他的视频参考:https://www.youtube.com/watch?v = vOppzHpvTiQ&index = 1&list = PL2-dafEMk2A7YdKv4XfKpfbTH5z6rEEj3
在他的视频中,他有一个导入和读取的txt文件,但是当我尝试重新创建txt文件时,它无法正确读取.相反,我尝试使用相同的数据创建一个pandas数据帧并对其执行线性回归/预测,但后来我得到了以下错误.
找到具有不一致样本数的输入变量:[1,16]以及关于传递1d数组的内容,我需要重新整形它们.
然后,当我尝试按照这篇文章重塑它们时:Sklearn:ValueError:找到样本数不一致的输入变量:[1,6]
我收到这个错误....
形状(1,16)和(1,1)未对齐:16(暗淡1)!= 1(暗0)
这是我在下面的代码.我知道这可能是一个语法错误,我只是不熟悉这个scklearn,并希望得到一些帮助.
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
#DF = pd.read_fwf('BrainBodyWeight.txt')
DF = pd.DataFrame()
DF['Brain'] = [3.385, .480, 1.350, 465.00,36.330, 27.660, 14.830, 1.040, 4.190, 0.425, 0.101, 0.920, 1.000, 0.005, 0.060, 3.500 ]
DF['Body'] = [44.500, 15.5, 8.1, 423, 119.5, 115, 98.2, 5.5,58, 6.40, 4, 5.7,6.6, .140,1, 10.8]
try:
x = DF['Brain']
y = DF['Body']
x = x.tolist()
y = y.tolist()
x = np.asarray(x)
y = np.asarray(y)
body_reg = linear_model.LinearRegression()
body_reg.fit(x.reshape(-1,1),y.reshape(-1,1))
plt.scatter(x,y)
plt.plot(x,body_reg.predict(x))
plt.show()
except Exception as e:
print(e)
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么sklearn不喜欢我的输入????
从文档开始, LinearRegression.fit()需要具有[n_samples,n_features]形状的x数组。因此,这就是为什么x在调用fit之前重塑数组的原因。因为如果不这样做,您将拥有一个(16,)形状的数组,该数组不符合所需的[n_samples,n_features]形状,因此没有n_features给出。
x = DF['Brain']
x = x.tolist()
x = np.asarray(x)
# 16 samples, None feature
x.shape
(16,)
# 16 samples, 1 feature
x.reshape(-1,1).shape
(16,1)
Run Code Online (Sandbox Code Playgroud)
对LinearRegression.predict函数(以及一致性)也有相同的要求,您只需要在调用Forecast函数时进行相同的重塑即可。
plt.plot(x,body_reg.predict(x.reshape(-1,1)))
Run Code Online (Sandbox Code Playgroud)
或者,您也可以x在调用任何函数之前重新调整数组的形状。
作为功能参考,您只需调用即可轻松获取内部numpy值数组DF['Brain'].values。您无需将其强制转换为list-> numpy array。因此,您可以只使用此方法,而不要使用所有的转换方法:
x = DF['Brain'].values.reshape(1,-1)
y = DF['Body'].values.reshape(1,-1)
body_reg = linear_model.LinearRegression()
body_reg.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12036 次 |
| 最近记录: |