我有一个名为'activityNum'的分类列,这对于预测数据集中的'数量'非常重要。 activityNum在数据集中具有500多个值。值的格式为“ AP.507”。我曾尝试使用单热编码,但是它增加了数据集的维度,并且在使用RandomForest时R2得分也非常低.'ActivityNum'是预测数据集中'数量'的重要变量。
有人可以建议我如何处理变量,以及哪种机器学习算法可以做得更好?
对不起,不能透露数据。
除了评估与您的因变量相比,这些类别中的每一个的值如何变化之外,您可能还需要考虑PCA。
如果您对这些变量进行“热编码”,PCA可以帮助您将它们压缩为更易于管理的内容,可能对您有用。
https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60
您可以使用二进制编码。这样可以将添加的列数从500减少到floor(log2(500))+1
。您可以使用Scikit-Learn
:
from sklearn.preprocessing import LabelBinarizer
或category_enocder
:
import category_encoder as ce
ce.BinaryEncoder(...)