查看: 4639| 回复: 11
跳转到指定楼层
上一主题 下一主题
收起左侧

关于Random Forest Feature Selection的问题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
各位大佬好,近期在做一个关于machine learning的project,再用random forest,xgboost一类的model(classification),想请教大家一下关于feature selection的问题,像random forest这些模型都会有feature importance这样的功能, 但是当model的hyper parameter不一样的时候,模型会给出得到feature importance就会很不一样,打个比方,如果hyperparameter 导致模型 overfit的时候,feature importance会有一个bias to continuous variable importance, 当hyperparameter 导致模型underfit的时候 importance会bias to dummy variable,但是hyperparameter tuning不应该是在feature selection之后才进行的吗?那么怎么样选择hyperparameter能够得到一个比较靠谱并且稳定的feature importance呢?或者有什么更好的方法来做feature selection呀?求各位大佬解答TuT

评分

参与人数 1大米 +1 收起 理由
taropieee + 1 给你点个赞!

查看全部评分


上一篇:ICML/CVPR 2019 conference goers
下一篇:ICLR 20 or ICML 20
推荐
qdlym 2019-6-17 13:42:20 | 只看该作者
全局:
学习了,很有用

评分

参与人数 1大米 +1 收起 理由
qdaudioqd + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
 楼主| mikewzw 2019-6-1 04:31:08 | 只看该作者
全局:
GalaxyDream87 发表于 2019-6-1 04:22
并不是大佬😂…best-performing选hyperparemeter的话是in-sample。bootstrap就是随机抽样。比如总 ...

但是如果选insample performance最好的hyperparameter,肯定是譬如说leafSize = 1,每一个tree都是fully grown,极其overfit,这样不就很难选到那些discrete variable吗?我把gain和impurity搞混了TuT,那能请教一下gain和impurity decrease的区别吗?我记得xgboost里的feature importance get score,就可以选择是gain或者impurity,但是两者结果大相径庭,还有这个permutation importance,我之前看到过,out of bag permutation importance,想问问大佬,以你的经验来看,一般会用哪种方法来选择feature呀?真的谢谢这些宝贵的建议!!!
回复

使用道具 举报

推荐
 楼主| mikewzw 2019-6-1 03:53:34 | 只看该作者
全局:
GalaxyDream87 发表于 2019-6-1 03:47
用best-performing model 的hyperparameter,train完后的feature selection用10次bootstrap,对impurity de ...

大佬你好,如果是best performing model的话,指的是insample的best performing吗?还是指的是validation set best performing model呀?feature selection bootstrap具体是什么意思呀,小白不太懂,关于importance的求法,我也想问问一般来说impurity decrease和split use frequence哪一个会更合适一些呢?谢谢大佬的意见!!
回复

使用道具 举报

全局:
用best-performing model 的hyperparameter,train完后的feature selection用10次bootstrap,对impurity decrease(我假设你是用的这个方法来求importance的,因为你提到了那个bias的问题)取均值和standard deviation。

评分

参与人数 3大米 +12 收起 理由
Bingsuddjf + 1 给你点个赞!
K叔 + 10 很有用的信息!
mikewzw + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

全局:
mikewzw 发表于 2019/06/01 03:53:34


大佬你好,如果是best performing model的话,指的是insample的best performing吗?还是指的是validation set best performing m...

并不是大佬😂…best-performing选hyperparemeter的话是in-sample。bootstrap就是随机抽样。比如总数1000个sample,就随机有放回的抽1000个,最后大概会有1/3从没被抽到过。所以每次bootatrap的样本都是不同的但distribition相同。每次用bootstrap的data去train然后做feature importance analysis,结果会稍有差别。多次后取均值和standard deviation主要是用于解决你提到的不确定性的问题。你说的split use frenquence感觉和我说的impurity decrease感觉是一个东西,因为被一个feature被选中并且split的次数多,那么由于他造成的impurity decrease就会大。有一个没有bias的方法是permutation importance,这个方法计算量大一些。希望能帮到楼主~

补充内容 (2019-6-1 04:23):
有个typo:应该是“一个 feature 被选中”

评分

参与人数 1大米 +1 收起 理由
mikewzw + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

全局:
mikewzw 发表于 2019/06/01 04:31:08


但是如果选insample performance最好的hyperparameter,肯定是譬如说leafSize = 1,每一个tree都是fully grown,极其overfit,这样不就很...

不客气,我以为你说的in-sample是traing set被split成train和validation之后在validation上的performance,我可能理解错了。应该是cross validation在training set上的performance(应该就是你说的validation set上的performance)。gain和impurity的效果上的区别我没有啥印象,周志华的西瓜书里有讲这俩,给我的感觉只是公式不同而已,貌似都有你说的那个bias。out of bag的最好,就是计算更耗时而已。xgboost包里可能不包含这个选项,我记得有个包专门算permutaion importance的(google搜python permutation impirtance)
回复

使用道具 举报

全局:
hyperpara tuning是不是在validation 上找最好的performance? 那应该是tuning 在 feature selection 前啊。
回复

使用道具 举报

全局:
常见问题中 尤其是 treebased的model, 一般都是feature挖的不够,扔几个没用的影响也不大。但如果说是想基于模型推业务的话, 可以试试 把feature importance高的特征替换为该feature均值,看对最后score的Δ,个人觉得这个方法比feature importance靠谱
回复

使用道具 举报

全局:
常见问题中 尤其是 treebased的model, 一般都是feature挖的不够,扔几个没用的影响也不大。但如果说是想基于模型推业务的话, 可以试试 把feature importance高的特征替换为该feature均值,看对最后score的Δ,个人觉得这个方法比feature importance靠谱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表