假设我有一个15列的数据集,它有2个类别列。这些列在200左右有许多不同的值。如果我们应用onehot / dummy varibale,则它将创建400列(上述2列)。它是处理的好方法还是有更好的处理方法。

最佳答案

这个问题没有“一刀切”的答案。它取决于数据的类型和上下文,数据的域或业务需求以及许多其他因素。但是,这里有一些建议可以考虑。


对数据执行装仓。例如-城市名称列表可以根据位置(该国家的一部分),人口规模,天气情况等分为几类。同样,这将取决于业务环境。这将有助于减少类别的数量。
在数据上应用标签编码。标签编码通常在基于树的算法上效果很好,而不是一键编码。
如果绝对需要单次编码,则应采用单次编码,尤其是对于线性模型。如果以后需要减少功能部件的数量,则可以将PCA用于相同的功能。


总结一下-如果解决方案看起来不是“显而易见的”,则尝试所有选项,看看哪种方法效果最佳。

此外,必须考虑测试数据中“新类别”的特殊情况,否则该模型将无法生产。

关于machine-learning - 如何在机器学习中管理具有许多不同值(500)的分类变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56404863/

10-12 21:14