Python 3.x 为什么在对测试数据使用转换后,我会得到一个特性数量的值错误?
我试图训练一个基本模型,在这个模型中,我们使用分类列来预测工资。该模型在训练数据上运行良好,但当我尝试预测测试集时,它给出以下错误:Python 3.x 为什么在对测试数据使用转换后,我会得到一个特性数量的值错误?,python-3.x,transform,pipeline,tf-idf,tfidfvectorizer,Python 3.x,Transform,Pipeline,Tf Idf,Tfidfvectorizer,我试图训练一个基本模型,在这个模型中,我们使用分类列来预测工资。该模型在训练数据上运行良好,但当我尝试预测测试集时,它给出以下错误: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-30-3a38692978
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-30-3a386929786b> in <module>
----> 1 clf.predict(test_data_transformed)
~\miniconda3\envs\myenv\lib\site-packages\sklearn\linear_model\_base.py in predict(self, X)
305 Predicted class label per sample.
306 """
--> 307 scores = self.decision_function(X)
308 if len(scores.shape) == 1:
309 indices = (scores > 0).astype(np.int)
~\miniconda3\envs\myenv\lib\site-packages\sklearn\linear_model\_base.py in decision_function(self, X)
285 if X.shape[1] != n_features:
286 raise ValueError("X has %d features per sample; expecting %d"
--> 287 % (X.shape[1], n_features))
288
289 scores = safe_sparse_dot(X, self.coef_.T,
ValueError: X has 30150 features per sample; expecting 27761
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
---->1 clf.预测(测试数据转换)
预测中的~\miniconda3\envs\myenv\lib\site packages\sklearn\linear\u model\u base.py(self,X)
305每个样本的预测类别标签。
306 """
-->307分=自我决策函数(X)
308如果len(分数形状)==1:
309指数=(得分>0).aType(np.int)
决策函数中的~\miniconda3\envs\myenv\lib\site packages\sklearn\linear\u model\u base.py(self,X)
285如果X.shape[1]!=n_特征:
286 raise VALUE ERROR(“X每个样本有%d个功能;应为%d个”
-->287%(X.shape[1],n_特征)
288
289分=安全稀疏点(X,self.coef.T,
ValueError:X每个示例有30150个功能;预期为27761
代码如下: