【发布时间】:2018-01-14 05:47:25
【问题描述】:
我编写了一个分类器,并使用 scikit learn 和 LabelEncoder (LE) 和 OneHotEncoder (OHE) 进行了数据预处理(它是分类数据),它在训练和测试数据上效果很好。现在,我想对新数据进行预测。我的问题:如何以与训练数据相同的风格(缺少更好的词)使用 LE 和 OHE 转换新数据? 到目前为止我的代码:
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
X[:, 1] = labelencoder_X.fit_transform(X[:, 1])
onehotencoder = OneHotEncoder(categorical_features='all')# se quiser em uma coluna coloca categorical_features=[0],
#onde [0] é o index da coluna e se quiser em todas as colunas coloca 'all
X = onehotencoder.fit_transform(X).toarray()
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
我没有成功的尝试:
new_pred = np.array(['car','male'])
labelencoder_new_pred = LabelEncoder()
new_pred = labelencoder_new_pred.fit_transform(new_pred) #also tried new_pred = labelencoder_X.fit_transform(new_pred)
onehotencoder2 = OneHotEncoder(categorical_features='all',n_values=29)
new_pred = onehotencoder2.fit_transform(new_pred).toarray()#also tried new_pred = onehotencoder.fit_transform(new_pred).toarray()
z = cfl.predict(new_pred)
这个结果:
- 结果始终相同,即使将 new_pred 数据更改为在训练集中找到的相同数据
- 它产生的 OHE 与火车上的不同
我在这里缺少什么?谢谢!
【问题讨论】:
标签: python scikit-learn