我正在尝试在包含很多分类列的数据集上构建 ML 分类模型。但是,其中很少有超过 1000 个唯一值。我担心,如果我运行 one-hot 编码或 pandas 在它们上得到假人,它只会导致太多的功能无法使用。
因此,我试图找到占基础数据 90% 的前 N 个唯一值,并将其余的值分组为“其他”或“杂项”。但这使得“其他”或“杂项”价值成为最突出的价值。我担心这可能会扭曲模型/结果。关于我应该如何处理这种情况的任何指示?
我正在尝试在包含很多分类列的数据集上构建 ML 分类模型。但是,其中很少有超过 1000 个唯一值。我担心,如果我运行 one-hot 编码或 pandas 在它们上得到假人,它只会导致太多的功能无法使用。
因此,我试图找到占基础数据 90% 的前 N 个唯一值,并将其余的值分组为“其他”或“杂项”。但这使得“其他”或“杂项”价值成为最突出的价值。我担心这可能会扭曲模型/结果。关于我应该如何处理这种情况的任何指示?
如有必要,还有其他编码分类特征的方法:
一个方便的python
包是类别编码器:链接
我建议首先调查您的模型是否需要对分类变量进行编码 -lightgbm
并且catboost
是支持分类变量的 ML 算法的示例。