具有高基数分类特征的特征重要性用于回归(数字依赖变量)


12

我试图使用随机森林中的特征重要性来对回归问题执行一些经验性特征选择,该回归问题中所有特征都是分类的,并且其中许多特征具有许多级别(大约100-1000)。假设一键编码会为每个级别创建一个虚拟变量,那么功能的重要性是针对每个级别的,而不是针对每个功能(列)。汇总这些功能重要性的好方法是什么?

我考虑过对某个功能的所有级别进行求和或得出平均重要性(可能前者会偏向具有更高级别的那些功能)。关于这个问题有参考吗?

还有什么可以减少功能数量的呢?我知道套索组,找不到任何易于使用的scikit-learn。


谁能回答这样一个问题:对分类变量的每个级别的变量重要性求和是否有意义?
参阅

@ see24不,您不能只是对它们进行汇总
丹,

Answers:


5

这取决于您如何对它们进行一键编码。为此的许多自动化解决方案都将使用模式来命名所有已转换的布尔值,以使名为AZ的分类变量的值AZ最终将变为:

字母A,字母B,字母C,字母D ...

如果在确定了特征重要性之后,您有了一个特征数组以及相关的权重/重要性,那么我将分析该数组,并总结以“ letter%”开头的任何东西的特征重要性权重。


3
总和不给更多层次的功能带来好处吗?
user90772

嗯,好点。也许将其加总然后除以级别数/一个热编码变量的数量即可得出“平均”重要性。
CalZ

2
我对此进行了更多思考,这取决于重要性的评分方式。在某些情况下,每个特征的值都是相对权重,整个集合的总和为1。在那种情况下,我认为总结一个热门特征是有意义的。如果该功能的得分更像是回归系数,而不是相对于净效应加权,那么平均可能会更好。
CalZ

感谢您的答复。鉴于我刚接触该领域,所以我认为这对于数据科学领域的人们来说是标准的事情,但是不是我应该做的事来评估专栏文章的功能重要性,或者这篇帖子没有得到足够的重视。无论如何,谢谢!
user90772 '17

1
许多人主张将模型的内部视为黑匣子,然后评估性能。在某些情况下(例如神经网络),这是因为您无法真正深入地研究它。对于某些您可以轻松了解哪些功能很重要的视图(例如线性回归),您很容易产生误导(请参阅:stats.stackexchange.com/questions/105114/…)。我认为这就是为什么人们有时回避查看单个功能的重要性的原因。
CalZ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.