Null Importances
在olivier大佬的kernel上看到的https://www.kaggle.com/ogrellier/feature-selection-with-null-importances,思想也很纯粹,最近也用了好多次,效果还不错。
主要思想:
通过利用跑树模型得到特征的importance来判断特征的稳定性和好坏。
1)将构建好的特征和正确的标签扔进树模型中,此时可以得到每个特征的重要性(split 和 gain)
2)将数据的标签打乱,再扔进模型中,得到打乱标签后,每个特征的重要性(split和gain);重复n次;取n次特征重要性的平均值。
3)将1中正确标签跑的特征的重要性和2中打乱标签的特征中重要性进行比较;具体比较方式可以参考上面的kernel
当一个特征非常work,那它在正确标签的树模型中的importance应该很高,但它在打乱标签的树模型中的importance将很低(无法识别随机标签);反之,一个垃圾特征,那它在正确标签的模型中importance很一般,打乱标签的树模型中importance将大于等于正确标签模型的importance。通过,同时判断每个特征在正确标签的模型和打乱标签的模型中的importance(split和gain)来选择特征稳定和work的特征。思想大概就是这样吧,importance受到特征相关性的影响,特征的重要性会被相关特征的重要性稀释,看importance也不一定准,用这个来对暴力特征进行筛选还是可以的。
本文介绍了一种基于特征重要性的稳定性来筛选特征的方法——NullImportances。通过对比正常标签和随机标签下特征的重要性,筛选出稳定且有效的特征,适用于树模型。
&spm=1001.2101.3001.5002&articleId=103023194&d=1&t=3&u=832c2b1340784b769e50966588f2b02b)
624

被折叠的 条评论
为什么被折叠?



