模型的特征数量必须与输入相匹配。模型 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)
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)