ValueError:发现样本数量不一致的输入变量:[2750, 1095]
Posted
技术标签:
【中文标题】ValueError:发现样本数量不一致的输入变量:[2750, 1095]【英文标题】:ValueError: Found input variables with inconsistent numbers of samples: [2750, 1095] 【发布时间】:2018-12-04 12:25:12 【问题描述】:如果有人能帮助我理解这个错误,我该怎么做才能解决它,这将是非常有帮助的?我无法更改我的数据。
X = train[['id', 'listing_type', 'floor', 'latitude', 'longitude',
'beds', 'baths','total_rooms','square_feet','group','grades']]
Y = test['price']
n = pd.get_dummies(train.group)
下面是训练数据的样子:
id listing_type floor latitude longitude beds baths total_rooms square_feet grades high_price_high_freq high_price_low_freq low_price
265183 10 4 40.756224 -73.962506 1 1 3 790 2 1 0 0 0
270356 10 7 40.778010 -73.962547 5 5 9 4825 2 1 0 0
176718 10 25 40.764955 -73.963483 2 2 4 1645 2 1 0 0
234589 10 5 40.741448 -73.994216 3 3 5 2989 2 1 0 0
270372 10 5 40.837000 -73.947787 1 1 3 1045 2 0 0 1
错误代码是:
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=0)
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
错误信息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-479-ca78b7b5f096> in <module>()
1 from sklearn.cross_validation import train_test_split
----> 2 X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=0)
3 from sklearn.linear_model import LinearRegression
4 regressor = LinearRegression()
5 regressor.fit(X_train, y_train)
~\Anaconda3\lib\site-packages\sklearn\cross_validation.py in train_test_split(*arrays, **options)
2057 if test_size is None and train_size is None:
2058 test_size = 0.25
-> 2059 arrays = indexable(*arrays)
2060 if stratify is not None:
2061 cv = StratifiedShuffleSplit(stratify, test_size=test_size,
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in indexable(*iterables)
227 else:
228 result.append(np.array(X))
--> 229 check_consistent_length(*result)
230 return result
231
~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_consistent_length(*arrays)
202 if len(uniques) > 1:
203 raise ValueError("Found input variables with inconsistent numbers of"
--> 204 " samples: %r" % [int(l) for l in lengths])
205
206
ValueError: Found input variables with inconsistent numbers of samples: [2750, 1095]
【问题讨论】:
【参考方案1】:Y = test['price']
应该是 Y = train['price']
(或任何功能名称)。
引发异常是因为您的 X 和 Y 具有不同数量的样本(行)并且 train_test_split
不喜欢这样。
【讨论】:
非常感谢。会记住的。此外,一旦模型经过训练和拟合,我们如何使用它来预测测试样本中的值(在我的情况下预测价格)? @Jan Kregressor.predict(X_test)
之类的东西应该可以工作。如果出现一些问题,请随时提出新问题以上是关于ValueError:发现样本数量不一致的输入变量:[2750, 1095]的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:发现样本数量不一致的输入变量:[100, 300]
混淆矩阵 - ValueError:发现样本数量不一致的输入变量
ValueError:发现样本数量不一致的输入变量:[2750, 1095]
ValueError:发现样本数量不一致的输入变量:[29675、9574、29675]