模型的特征数量必须与输入相匹配。模型 n_features 为 20,输入 n_features 为 4

Number of features of the model must match the input. Model n_features is 20 and input n_features is 4

enter image description here我在使用随机森林分类器时遇到此错误。这是我的代码:

import quandl, math    
import numpy as np    
import pandas as pd    
import matplotlib.pyplot as plt    
from matplotlib import style   
import datetime    
from sklearn.ensemble import RandomForestClassifier    
from sklearn.preprocessing import LabelEncoder    
from sklearn.feature_extraction.text import CountVectorizer

train = pd.read_csv("train.csv", index_col=None)    
vectorizer = CountVectorizer(min_df=1)    
X1 = vectorizer.fit_transform(train['question'])    
X=X1.toarray()    
corpus=['tell me your name']    
t1= vectorizer.fit_transform(corpus)    
t=t1.toarray()    
number=LabelEncoder()   
train['answer']=number.fit_transform(train['answer'].astype('str'))    
features = ['question','answer']    
y= train['question'].values    
clf=RandomForestClassifier(n_estimators=20)    
clf.fit(X,y)    
predicted_result=clf.predict(t)

对训练数据和测试数据使用相同的经过训练的矢量化器。第二次,如果您再次拟合数据,那么它将把它变成一个仅基于这个新数据的向量。

X1 = vectorizer.fit_transform(train['question'])
t1= vectorizer.transform(corpus)