[英]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.