sklearn:找到样本数量不一致的输入变量:[1, 99]
sklearn: Found input variables with inconsistent numbers of samples: [1, 99]
我正在尝试在 spyder 中使用 pandas 构建一个简单的回归线。
执行以下代码后,我得到了这个错误:
Found input variables with inconsistent numbers of samples: [1, 99]
代码:
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)
我想我知道问题出在哪里,但我不太确定如何处理语法。
在variable explorer中,x(和y)的大小是(99L,),据我所知它不能是向量,它必须是大小(99,1)。
y 也一样。
看到了一堆相关主题,但其中 none 有帮助。
参考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) - 例如,每个 "row" 一个值和一个 "column".
有很多方法可以完成此操作(参考:Efficient way to add a singleton dimension to a NumPy vector so that slice assignments work),对于您的情况,以下方法应该有效:
regressor.fit(x[:, None], y)
不要忘记 predict
要求数据具有相同的形状!
我也遇到了类似的问题。
ValueError: Found input variables with inconsistent numbers of samples: [20, 10]
不过我找到了解决办法。就我而言,拆分顺序不正确
我做到了
X_train, X_test, y_test, y_train = train_test_split(X,y,test_size=1/3, random_state=0)
而不是:
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=1/3, random_state=0)
希望它能帮助以后 运行 陷入类似错误的编码人员。
我正在尝试在 spyder 中使用 pandas 构建一个简单的回归线。 执行以下代码后,我得到了这个错误:
Found input variables with inconsistent numbers of samples: [1, 99]
代码:
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)
我想我知道问题出在哪里,但我不太确定如何处理语法。 在variable explorer中,x(和y)的大小是(99L,),据我所知它不能是向量,它必须是大小(99,1)。 y 也一样。
看到了一堆相关主题,但其中 none 有帮助。
参考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) - 例如,每个 "row" 一个值和一个 "column".
有很多方法可以完成此操作(参考:Efficient way to add a singleton dimension to a NumPy vector so that slice assignments work),对于您的情况,以下方法应该有效:
regressor.fit(x[:, None], y)
不要忘记 predict
要求数据具有相同的形状!
我也遇到了类似的问题。
ValueError: Found input variables with inconsistent numbers of samples: [20, 10]
不过我找到了解决办法。就我而言,拆分顺序不正确
我做到了
X_train, X_test, y_test, y_train = train_test_split(X,y,test_size=1/3, random_state=0)
而不是:
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=1/3, random_state=0)
希望它能帮助以后 运行 陷入类似错误的编码人员。