相关性过滤:
根据方差过部分滤完特征后(并不是说方差很大的数据就一定有用),就要考虑相关性了。使用相关性过滤后筛选出与标签相关且有意义的特征。
卡方过滤:
作用:专门针对离散型标签,即分类问题的相关性过滤。
大致流程:计算每个非负特征和标签之间的卡方统计量,并且按照卡方统计量由高到低为特征排名,选出前k个分数最高的特征

# feature_selection.chi2:计算每个非负特征和标签之间的卡方统计量,标签按照该统计量由高到低为特征排名
# feature_selection.SelectKBest:根据输入的评分标准选出k个特征
from sklearn.ensemble import RandomForestClassifier as RFC
from sklearn.model_selection import cross_val_score
from sklearn.feature_selection SelectKBest
from sklearn.feature_selection import chi2xFChi = SelectKBest(chi2,k=300).fit_transform(xFVar,y)

选取超参数k:
方法一:绘制学习曲线,缺点计算慢

score = []
for i in range(780,200,-10):item = SelectKBest(chi2,k=i).fit_transform(dataX,dataY)  # 筛选特征item_rfc = cross_val_score(RFC(n_estimators=10,random_state=0),item,dataY,cv=2).mean()score.append(item_rfc)
plt.plot(range(780,200,-10),score)
plt.show()


方法二:看P值
缺点:可能会去除掉一些重要特征
卡方检验的本质是推测两组数据之间的差异,其检验的原假设是“两组数据相互独立”,卡方检验返回卡方值和P值两个统计量,其中卡方值难界定有效范围。而p值,一般使用0.01或0.05作为显著性水平,即p值判断的边界。
从特征工程的角度,希望选取卡方值很大,p值小于0.05的特征,即和标签相关联的特征

chiVal,pVal=chi2(x_fvar,y)
chiVal                      # 卡方值
pVal                        # p值
#消除p值>设定值,如0.01或者0.05的特征
k = chiVal.shape[0] - (pVal>0.05).sum()

F检验
作用:F检验又称ANOVA,用来捕捉每个特征与标签之间的线性关系的过滤方法,feature_selection.f_classif用于离散型变量,feature_selection.f_regression用于处理连续型变量
大致流程:寻找两组数据之间的线性关系,其原假设是“数据不存在显著的线性关系”,返回f值和p值。选取p值小于0.05或者0.01的特征,这些特征与标签是显著相关的。
注意:F检验在数据服从正态分布是效果非常稳定,因此可先将数据转换成服从服从正态分布的数据

from sklearn.feature_selection import f_classif
F,pVal = f_classif(x_fvar,y)
F
pVal
k = F.shape[0] - (pVal > 0.05).sum()

互信息法:
互信息法是用来捕捉每个特征与标签之间的任意关系(包括线性和非线性关系)的过滤方法。和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) k = result.shape[0] - sum(result <= 0)
#X_fsmic = SelectKBest(MIC, k=填写具体的k).fit_transform(X_fsvar, y)
#cross_val_score(RFC(n_estimators=10,random_state=0),X_fsmic,y,cv=5).mean()

特征选择—相关性过滤相关推荐

  1. 数据预处理-相关性过滤(F检验和互信息法)

    F检验 F检验,又称ANOVA,方差齐性检验,是用来捕捉每个特征与标签之间的线性关系的过滤方法.它即可以做回归也可以做分类,因此包含feature_selection.f_classif(F检验分类) ...

  2. 【天池学习笔记】二手车交易价格预测

    文章目录 1.赛题理解 1.1背景 1.2 赛制 1.3赛题数据 1.4评测标准 1.5结果格式 总结 2.Baseline 3.探索性数据分析EDA 3.1介绍 3.2常用绘图 3.3相关性,独立性 ...

  3. python相关性分析特征过滤_特征选择-Filter过滤法后续(相关,互信息法)

    3.1.2 相关性过滤 方差挑选完毕之后,我们就要考虑下一个问题:相关性了.我们希望选出与标签相关且有意义的特征,因为这样的 特征能够为我们提供大量信息.如果特征与标签无关,那只会白白浪费我们的计算内 ...

  4. 特征选择过滤法-方差过滤、F检验、互信息法

    过滤法 过滤法通常用作预处理步骤,特征选择完全独立于任何机器学习算法.它是根据各种统计检验分数和相关性指标来选择特征.         全部特征--->最佳特征子集--->算法---> ...

  5. 机器学习实战第一步:特征选择与特征工程「附代码」

    https://www.toutiao.com/a6641904652575048206/ 2019-01-02 22:41:05 特征工程是机器学习的第一步,涉及清理现有数据集.提高信噪比和降低维数 ...

  6. 特征选择(feature_selection)

    特征选择 当数据预处理完成后,我们就要开始进行特征工程了. 在做特征选择之前,有三件非常重要的事:跟数据提供者开会!跟数据提供者开会!跟数据提供者开会! 一定要抓住给你提供数据的人,尤其是理解业务和数 ...

  7. 【sklearn学习】特征选择

    Filter过滤法 过滤方法通常用作预处理步骤根据各种统计检验分数或者各项指标来选择特征 方差过滤 sklearn.feature_selection.VarianceThreshold 通过特征本身 ...

  8. 《scikit-learn》数据预处理与特征工程(三)特征选择

    特征工程包括三个部分: 1.特征提取:从文字,图像,声音等其他非结构化数据中提取信息作为特征,建立最原始特征信息采集. 2.特征创造:把现有的一些特征进行组合胡总和相互计算,得到新的特征. 3:特征选 ...

  9. 机器学习——特征工程之特征选择

    特征工程包括以下三种类型: 1.特征提取:从文字.图像.声音等非结构化特征中提取新信息作为特征.例如:从淘宝宝贝的名称中提取出 产品类别,产品颜色,是否是网红 产品等等. 2.特征创造:把现有特征进行 ...

最新文章

  1. 【C#】Out与ref是干什么的?
  2. 公共课计算机基础怎么样,公共课第一学期《计算机基础》
  3. python多进程和多线程一起使用_Python3多进程与多线程区别及使用(2.线程)
  4. 前端向后端发送请求,后端返回的一个值的请求的ajax.get();方法
  5. springcloud 入门 4 (rebbon源码解读)
  6. 支付宝沙箱环境下模拟下单流程
  7. codeforces 149E . Martian Strings kmp
  8. Centos7.X自带的防火墙和服务的相关的配置
  9. 42. 确保lessT与operator小于具有相同的语义
  10. 虚拟机安装苹果系统_黑苹果原版系统镜像下载,MacOS如何安装到虚拟机?(附软件+教程)...
  11. 谷粒商城 Day04 sku与spu接口
  12. KVM虚拟化教程(超详细)
  13. Hadoop、Spark大数据入门、进阶电子书大全
  14. NAS(Network Attached Storage)协议
  15. 使用Netflix Archaius进行配置管理
  16. 基于人工势场法的车辆编队轨迹规划matlab仿真验证
  17. 冥王星P的编曲日志《时光的眼泪》
  18. python中怎么判断字母大小写_python判断大小写字母
  19. windows2003 php 加速,window_Win 2003 加速****,微软的Windown Server 2003尽管它是 - phpStudy...
  20. 雪球网爬取数据并存入数据库

热门文章

  1. Centos7如何设置开机网络自启动
  2. ARP原理和ARP攻击
  3. activemq 命令行的使用
  4. 回归预测 | MATLAB实现Bayes-LSTM(贝叶斯优化长短期记忆神经网络)多输入单输出
  5. Ubuntu20.04中安装wxWidgets库
  6. 【Metashape精品教程9】DEM和DOM生产
  7. 手机流量不够怎么办?Connectify中文版无难事
  8. oracle用户锁定,解锁(已解决)
  9. ORACLE表锁了如何解锁
  10. 如何快速有效的投诉上海移动