繁体   English   中英

如何将分类数据编码为标签以进行训练和测试

[英]How to Encode categorical data into labels for training and testing

训练数据集有 object 列,称为商店和其他。 现在对于机器学习 model 我将列转换为标签以用于训练目的。 使用下面的代码

from sklearn.ensemble import RandomForestRegressor
X = df_all_4.copy()
y = df_all_4.item_price
X = X.drop(['item_price','date'], axis=1)
for c in df_all_4.columns[df_all_4.dtypes == 'object']:
    X[c] = X[c].factorize()[0]
rf = RandomForestRegressor()
rf.fit(X,y)

现在测试数据集也有那些分类列,但是我认为缺少一些列,包括目标列不相关。 但是,如果我再次 label 训练数据集(无序)标签将与训练时使用的标签不同,因此 model 将无法正常工作。 如何解决这个问题并在训练和测试时获得相同的编码

这里重要的是您可以使用 Sklearn package 中的 LabelEncoder 或 OneHotEncoder 类。 这使得这项任务非常简单。

from sklearn.preprocessing import LabelEncoder,OneHotEncoder
for c in df_all_4.columns[df_all_4.dtypes == 'object']:
    le = LabelEncoder()
    X[c] = le.fit_transform(X[c])
    test[c] = le.transform(test[c])

就是这样,您已将标签编码为训练和测试数据的数字您还可以使用 OneHotEncoder 对分类数据执行 OneHotEncoding。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM