详解数据预处理和特征工程-特征选择-相关性过滤-互信息法菜菜的sklearn课堂笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解数据预处理和特征工程-特征选择-相关性过滤-互信息法菜菜的sklearn课堂笔记相关的知识,希望对你有一定的参考价值。
互信息法是用来捕捉每个特征与标签之间的任意关系(包括线性和非线性关系)的过滤方法。和F检验相似,它既可以做回归也可以做分类,并且包含两个类feature_selection.mutual_info_classif(互信息分类)和feature_selection.mutual_info_regression(互信息回归)。这两个类的用法和参数都和F检验一模一样,不过互信息法比F检验更加强大,F检验只能够找出线性关系,而互信息法可以找出任意关系。
互信息法不返回p值或F值类似的统计量,它返回“每个特征与目标之间的互信息量的估计”,这个估计量在$[0,1]$之间取值,为0则表示两个变量独立,为1则表示两个变量完全相关。以互信息分类为例的代码如下:
from sklearn.feature_selection import mutual_info_classif as MIC
result = MIC(X_fsvar,y)
result.shape
---
(392,)
result[:5]
---
array([0.06884424, 0.08779026, 0.09929538, 0.11440733, 0.11444289])
k = result.shape[0] - sum(result == 0)
# 一般如果指定互信息阈值的话这里应该是result <= 阈值
X_fsmic = SelectKBest(MIC, k).fit_transform(X_fsvar, y)
# 这里k=392
cross_val_score(RFC(n_estimators=10,random_state=0),X_fsmic,y,cv=5).mean()
过滤法总结
建议先使用方差过滤,然后使用互信息法来捕捉相关性
以上是关于详解数据预处理和特征工程-特征选择-相关性过滤-互信息法菜菜的sklearn课堂笔记的主要内容,如果未能解决你的问题,请参考以下文章
机器学习实战基础(十五):sklearn中的数据预处理和特征工程特征选择 之 Filter过滤法 相关性过滤
机器学习实战基础(十五):sklearn中的数据预处理和特征工程特征选择 之 Filter过滤法 相关性过滤
机器学习实战基础(十六):sklearn中的数据预处理和特征工程特征选择 之 Filter过滤法 总结