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
代码如下: