是否有针对具有超过500个不同值的分类变量的编码技术?

问题描述 投票:-1回答:2

我有一个名为'activityNum'的分类列,这对于预测数据集中的'数量'非常重要。 activityNum在数据集中具有500多个值。值的格式为“ AP.507”。我曾尝试使用单热编码,但是它增加了数据集的维度,并且在使用RandomForest时R2得分也非常低.'ActivityNum'是预测数据集中'数量'的重要变量。

有人可以建议我如何处理变量,以及哪种机器学习算法可以做得更好?

对不起,不能透露数据。

python machine-learning categorical-data label-encoding
2个回答
0
投票

除了评估与您的因变量相比,这些类别中的每一个的值如何变化之外,您可能还需要考虑PCA。

如果您对这些变量进行“热编码”,PCA可以帮助您将它们压缩为更易于管理的内容,可能对您有用。

https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60


0
投票

您可以使用二进制编码。这样可以将添加的列数从500减少到floor(log2(500))+1。您可以使用Scikit-Learn

from sklearn.preprocessing import LabelBinarizer

category_enocder

import category_encoder as ce    
ce.BinaryEncoder(...)
© www.soinside.com 2019 - 2024. All rights reserved.