这个错误是什么,我该如何修复它?我无法更改我的数据。
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_price265183 10 4 40.756224 -73.962506 1 1 3 790 2 1 0 0 0270356 10 7 40.778010 -73.962547 5 5 9 4825 2 1 0 0176718 10 25 40.764955 -73.963483 2 2 4 1645 2 1 0 0234589 10 5 40.741448 -73.994216 3 3 5 2989 2 1 0 0270372 10 5 40.837000 -73.947787 1 1 3 1045 2 0 0 1
错误代码是:
from sklearn.cross_validation import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=0)from sklearn.linear_model import LinearRegressionregressor = 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]
回答:
Y = test['price']
可能应该改为 Y = train['price']
(或其他特征的名称)。
异常是因为你的 X 和 Y 的样本数量(行数)不同,而 train_test_split
不喜欢这样。