我知道之前有人问过这个问题,并且我已经尝试了一些事情,但是这些事情对于我的用例来说并没有按预期工作。
我有一个 500 长度的特征向量。这些功能之一是分类值pincode。对于我们的数据集,pincode可以包含超过 20,000 个唯一值。所以我们不能使用一种热编码,因为它会炸毁我们的特征空间。
我还尝试过二进制编码,它为每个唯一的分类值分配一个唯一的整数,然后将其转换为二进制。然后它将每一位视为一列。这样,pincode 特征向量的维度从 20,000 减少到 20 左右。但我没有发现我们的评估指标 AUC(曲线下面积)有任何改进。直觉上它也感觉不对。
我还尝试在 pincode 上应用 PCA 以减小尺寸。我试图将尺寸从 20,000 减少到 100。在应用 PCA 后,模型的表现更差。另外,我在某处读到 PCA 在分类值上效果不佳。对于连续值更好。
那么我们如何使用这个功能呢?我们不想把它扔掉,因为我们认为它可能是一个重要的特性。但是我们想减少它的维度然后使用。
抱歉,如果这是一个基础问题。我是这个领域的新手,正在尝试各种事情。
PS - 我们正在使用 xgboost 来训练我们的模型。