python - 如果我们有多个分类列多类怎么办?
问题描述
如果数据集有多个分类值,那么我们是否需要对所有分类数据执行 OneHotEncoding,然后如何消除虚拟变量的问题。
解决方案
从您的问题中不清楚您要达到的目标。通常在机器学习中,您可以进行一次性编码或标签编码,但您需要在将分类值传递给建模之前对其进行编码。
IMO,标签编码更简单,有助于经典回归/分类,当您计划应用深度学习时,可以使用 Onehot 编码。更多讨论:https ://datascience.stackexchange.com/questions/9443/when-to-use-one-hot-encoding-vs-labelencoder-vs-dictvectorizor
话虽如此,您可以像这样进行标签编码:
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))
推荐阅读
- c# - 基于特定条件的带有行编号的附加列
- java - jframe中的java jpanel中心位置
- javascript - 如何使 nock 以“未定义”的身体响应?
- python-3.x - 数据库中具有多个模式的 Django 路由器
- java - Spring Boot REST API POST 401 未经授权
- python - Python TCP 服务器与 ESP32 通信
- python - conda install --channel conda-forge pymatgen
- c# - 如何在 Windows 窗体中调用控制台作为窗口实例?
- sql - 为每个人选择每个月的前两项
- python - 无法使用 Python 和 Selenium 自动登录(错误:在网站上找不到元素)