使用SKLearn Preproccesing的Python,ValueError,BroadCast错误

use*_*664 5 python scikit-learn

我正在尝试运行SKLearn预处理标准缩放器功能,我收到以下错误:

from sklearn import preprocessing as pre
scaler = pre.StandardScaler().fit(t_train)
t_train_scale = scaler.transform(t_train)
t_test_scale = scaler.transform(t_test)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-149-c0133b7e399b> in <module>()
      4 scaler = pre.StandardScaler().fit(t_train)
      5 t_train_scale = scaler.transform(t_train)

----> 6 t_test_scale = scaler.transform(t_test)

C:\Users\****\Anaconda\lib\site-packages\sklearn\preprocessing\data.pyc in transform(self, X, y, copy)
    356         else:
    357             if self.with_mean:
--> 358                 X -= self.mean_
    359             if self.with_std:
    360                 X /= self.std_

ValueError: operands could not be broadcast together with shapes (40000,59) (119,) (40000,59) 
Run Code Online (Sandbox Code Playgroud)

我理解形状不匹配.列车和测试数据集的长度不同,那么我将如何转换数据呢?

小智 0

“训练和测试数据集的长度不同”是什么意思?您是如何获得训练数据的?

如果您的测试数据具有比训练数据更多的特征,以便有效地降低测试数据的维度,您应该知道训练数据是如何制定的。例如使用降维技术(PCA、SVD 等)或类似的技术。如果是这种情况,您必须将每个测试向量与用于降低训练数据维度的相同矩阵相乘。