she*_*nzy 6 linear-regression pandas spyder sklearn-pandas
我正在尝试用 spyder 中的熊猫构建一个简单的回归线。执行以下代码后,我收到此错误:
Found input variables with inconsistent numbers of samples: [1, 99]
Run Code Online (Sandbox Code Playgroud)
编码:
import numpy as np
import pandas as pd
dataset = pd.read_csv('Phil.csv')
x = dataset.iloc[:, 0].values
y = dataset.iloc[:, 2].values
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
我想我知道问题出在哪里,但我不太确定如何处理语法。在变量资源管理器中,x(和 y)的大小是 (99L,),据我所知,它不能是向量,必须是大小 (99,1)。y 也一样。
看到一堆相关的话题,但没有一个有帮助。
参考LinearRegression( http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression.fit )的 sklearn 文档,X向量需要符合规范[n_samples,n_features]。
由于您只有一个包含多个样本的特征,因此形状应该是 (99,1) - 例如,每个“行”有一个值,只有一个“列”。
有很多方法可以实现这一点(参考:向 NumPy 向量添加单例维度以便切片分配工作的有效方法),在您的情况下,以下应该起作用:
regressor.fit(x[:, None], y)
Run Code Online (Sandbox Code Playgroud)
不要忘记,predict需要与数据相同的形状!
| 归档时间: |
|
| 查看次数: |
13554 次 |
| 最近记录: |