首页 > 解决方案 > 如果我们有多个分类列多类怎么办?

问题描述

如果数据集有多个分类值,那么我们是否需要对所有分类数据执行 OneHotEncoding,然后如何消除虚拟变量的问题。

标签: pythondeep-learningdatasetone-hot-encodingdummy-variable

解决方案


从您的问题中不清楚您要达到的目标。通常在机器学习中,您可以进行一次性编码或标签编码,但您需要在将分类值传递给建模之前对其进行编码。

IMO,标签编码更简单,有助于经典回归/分类,当您计划应用深度学习时,可以使用 Onehot 编码。更多讨论:https ://datascience.stackexchange.com/questions/9443/when-to-use-one-hot-encoding-vs-labelencoder-vs-dictvectorizo​​r

话虽如此,您可以像这样进行标签编码:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
numeric_cols = model_data_df._get_numeric_data().columns
for col in list(set(model_data_df.columns) - set(numeric_cols)):
        model_data_df[col] = le.fit_transform(model_data_df[col].astype(str))

推荐阅读