如何解决交叉验证和测试数据上的拟合和转换错误
我需要这里的代码方面的帮助。我正在尝试拟合和转换训练数据,然后转换交叉验证和测试数据。但是当我这样做时,我得到的错误是 - ValueError: X has 24155 features,but Normalizer is expected 49041 features as input.
谁能帮我解决这个问题。
我的代码片段-
from sklearn.preprocessing import Normalizer
normalizer = Normalizer()
X_train_price_norm = normalizer.fit_transform(X_train['price'].values.reshape(1,-1))
X_cv_price_norm = normalizer.transform(X_cv['price'].values.reshape(1,-1))
X_test_price_norm = normalizer.transform(X_test['price'].values.reshape(1,-1))
print("After vectorizations")
print(X_train_price_norm.shape,y_train.shape)
print(X_cv_price_norm.shape,y_cv.shape)
print(X_test_price_norm.shape,y_test.shape)
print("="*100)
解决方法
转换函数需要一个二维数组作为 (samples,features)
错误表明X_train['price']
和x_cv['price']
或x_test['price']
的第二维不相同。
正如代码所反映的那样,您有 1 个功能(价格)和许多示例。所以,正如上面的解释(样本、特征),你的输入形状应该像 (n_samples,1)
,因为你有一个特征。现在,考虑将重塑更改为 (-1,1)
而不是 (1,-1)
。
X_train_price_norm = normalizer.fit_transform(X_train['price'].values.reshape(-1,1))
X_cv_price_norm = normalizer.transform(X_cv['price'].values.reshape(-1,1))
X_test_price_norm = normalizer.transform(X_test['price'].values.reshape(-1,1))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。