只是尝试做一个简单的线性回归,但我对这个错误感到困惑:
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].values, df2.iloc[1:1000, 2].values)
Run Code Online (Sandbox Code Playgroud)
产生:
ValueError: Found arrays with inconsistent numbers of samples: [ 1 999]
Run Code Online (Sandbox Code Playgroud)
这些选择必须具有相同的尺寸,它们应该是numpy数组,所以我缺少什么?
Yul*_*Yul 114
看起来sklearn需要数据形状(行号,列号).如果您的数据形状是(行号)(999, ),它就不起作用.通过使用numpy.reshape(),您应该改为(999, 1),例如使用
data=data.reshape((999,1))
Run Code Online (Sandbox Code Playgroud)
就我而言,它适用于此.
小智 24
看起来你正在使用pandas数据帧(来自名称df2).
您还可以执行以下操作:
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].to_frame(), df2.iloc[1:1000, 2].to_frame())
Run Code Online (Sandbox Code Playgroud)
注意:我删除了"值",因为它将pandas Series转换为numpy.ndarray,而numpy.ndarray没有属性to_frame().
xil*_*lef 11
看到Udacity深度学习基础课程:
df = pd.read_csv('my.csv')
...
regr = LinearRegression()
regr.fit(df[['column x']], df[['column y']])
Run Code Online (Sandbox Code Playgroud)
我认为regr.fit的"X"参数需要是一个矩阵,所以以下内容应该有效.
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, [5]].values, df2.iloc[1:1000, 2].values)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
146064 次 |
| 最近记录: |