将低频水平的分类变量分组以提高机器学习性能

时间:2019-07-25 14:04:14

标签: python machine-learning

我正在尝试寻找改善二进制分类,回归分类或多项式分类的机器学习模型性能的方法。

我现在正在查看主题分类变量,并尝试将出现率较低的水平组合在一起。假设类别变量有10个级别,其中5个级别占总频率计数的85%,其余5个级别占剩余频率的15%。

我目前正在尝试将不同的阈值(30%,20%,10%)组合在一起。这意味着我将代表剩余计数的30%,20%或10%的水平合并在一起。

我想知道将这些“低频组”分组到一个称为“其他”的新级别是否会对改善性能产生任何好处。

我进一步使用随机森林进行特征选择,并且我知道级别少于原始森林可能会导致信息丢失,因此无法改善性能。

此外,我尝试离散化数值变量,但发现我的性能较弱,因为随机森林受益于能够在其首选分割点上进行分割的能力,而不是被迫在我通过离散化创建的工程化分割点上进行分割

根据您的经验,将发生率较低的级别组合在一起会对性能产生积极影响吗?如果是,您会推荐任何技巧吗?

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这不是编程问题...通过减少类数,可以从本质上增加随机预测正确类的机会。

考虑一个堆叠模型(两个模型),在该模型中,您有一个主要模型可以在过度代表的类和“其他”类之间进行分类,然后有一个辅助模型可以在“其他”类中的各个类之间进行分类(如果主要的模型会预测“其他”类别。