【数据挖掘比赛】之 Null Importances(特征选择)

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也不一定准,用这个来对暴力特征进行筛选还是可以的。

你可能感兴趣的:(数据挖掘比赛)