测试数据功能与OneHotEncoder的训练数据功能不匹配

时间:2018-10-12 18:27:40

标签: python machine-learning scikit-learn

我是OneHotEncoder的新手,正在尝试使用它解决分类问题。 但是,我的测试数据集在形状不同方面给了我错误。我在训练和测试数据集中有相同的列。这是我的代码:

X = pd.read_csv('Svr_good.csv') #Training data
Xt = pd.read_csv('svr_test.csv') #Testing data

X = X.select_dtypes(include=[object])
Xt = Xt.select_dtypes(include=[object])
le = preprocessing.LabelEncoder()
X_2 = X.apply(le.fit_transform)
X_4 = Xt.apply(le.fit_transform)

enc = preprocessing.OneHotEncoder()
enc1 = preprocessing.OneHotEncoder()
enc.fit(X_2)
enc1.fit(X_4)

onehotlabels = enc.transform(X_2).toarray()
onehotlabels1 = enc1.transform(X_4).toarray()

numpy_array = onehotlabels
X = numpy_array[:, 1:]
y = numpy_array[:, 0]

lm = LinearSVC()
model = lm.fit(X, y)
predictions = lm.predict(onehotlabels1)
print predictions

上面的代码给我一个功能不匹配的错误。我该怎么解决?

1 个答案:

答案 0 :(得分:0)

问题在于您适合X并预测onehotlabels1,但是X的列少了。

如果您将X = numpy_array[:, 1:]的{​​{1}}更改了,是否可行?