特征选择-皮尔逊相关系数-互信息

2023-10-11 23:40

本文主要是介绍特征选择-皮尔逊相关系数-互信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

特征选择
1.相关性
通过使用相关性,我们很容易看到特征之间的线性关系。这种关系可以用一条直线拟合。

下面通过皮尔逊相关系数(Pearson correlation coefficient)来解释特征的相关性:
下面每幅图上方的相关系数Cor(X1, X2)是计算出来的皮尔逊r值,从图中可以看出不同程度的相关性。

在这里插入图片描述
scipy.stats.pearsonr(),给定两个数据序列 ,会返回相关系数值和p值所组成的元组。皮尔逊相关系数(皮尔逊r值)测量两个序列的线性关系,取值在-1到1之间,-1代表负相关、1代表正相关、0代表不相关。r值:

上式中m_x是向量x的均值,m_y是向量y的均值。

In [1]: from scipy.stats import pearsonrIn [2]: pearsonr([1,2,3], [1,2,3.1])
Out[2]: (0.9996222851612184, 0.017498096813278487)

上图中,前三个具有高相关系数,我们可以选择把X1或者X2扔掉,因为他们似乎传递了相似的信息。
然而在最后一种情况,我们应该把两个特征都保留。
基于相关性的特征选择方法的一个最大的缺点就是,它只检测出线性关系(可以用一条直线拟合的关系)。下图形象的展示出了相关性的缺陷:
在这里插入图片描述
对于非线性关系,互信息出马了。

2.互信息
在进行特征选择时,我们不该把焦点放在数据关系的类型(线性关系)上,而是要考虑在已经给定另一个特征的情况下一个特征可以提供多少信息量。
互信息会通过计算两个特征所共有的信息,把上述推理工程形式化表达出来。与相关性不同,它依赖的不是数据序列,而是数据的分布。

先看一下香农(Claude Shannon)的信息熵(Entropy H(X) ):

在这里插入图片描述
现在,如果这个硬币不是公平的,旋转后有60%的可能性会出现硬币的正面:

在这里插入图片描述
*我们可以看到这种情形有较少的不确定性。不管正面出现的概率为0%还是100%,不确定性都将会远离我们在0.5时时所得到的熵,到达极端的0值,如下图所示:
在这里插入图片描述
这样我们就可以得到一个特征使另一个特征的不确定性减少的程度。

互信息量
在这里插入图片描述
归一化的互信息量
在这里插入图片描述

import numpy as np
from scipy.stats import entropydef mutual_info(x, y, bins=10):counts_xy, bins_x, bins_y = np.histogram2d(x, y, bins=(bins, bins))counts_x, bins = np.histogram(x, bins=bins)counts_y, bins = np.histogram(y, bins=bins)counts_xy += 1counts_x += 1counts_y += 1P_xy = counts_xy / np.sum(counts_xy, dtype=float)P_x = counts_x / np.sum(counts_x, dtype=float)P_y = counts_y / np.sum(counts_y, dtype=float)I_xy = np.sum(P_xy * np.log2(P_xy / (P_x.reshape(-1, 1) * P_y)))return I_xy / (entropy(counts_x) + entropy(counts_y))

互信息的一个较好的性质在于,跟相关性不同,它并不只关注线性关系。如下图所示:
在这里插入图片描述
在这里插入图片描述
我们需要计算每一对特征之间的归一互信息量。对于具有较高互信息量的特征对,我们会把其中一个特征扔掉。在进行回归的时候,我们可以把互信息量非常低的特征扔掉。
对于较小的特征集合这种方式的效果或许还可以。但是,在某种程度上,这个过程会非常缓慢,计算量会以平方级别增长,因为我们要计算的是每对特征之间的互信息量。
其他特征选择方法

  1. 内嵌于机器学习模型中的:
    决策树。——有一个甚至于其内核的特征选择机制。
  2. 一些正则化方法:
    对模型复杂性进行惩罚,从而使学习过程朝效果较好而且仍然“简单”的模型发展。
    L1正则化。——把效用不大的特征的重要性降低为0,然后把他们扔掉进行特征选择。

这篇关于特征选择-皮尔逊相关系数-互信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/191694

相关文章

【ML--05】第五课 如何做特征工程和特征选择

一、如何做特征工程? 1.排序特征:基于7W原始数据,对数值特征排序,得到1045维排序特征 2. 离散特征:将排序特征区间化(等值区间化、等量区间化),比如采用等量区间化为1-10,得到1045维离散特征 3. 计数特征:统计每一行中,离散特征1-10的个数,得到10维计数特征 4. 类别特征编码:将93维类别特征用one-hot编码 5. 交叉特征:特征之间两两融合,x+y、x-y、

结合sklearn说一下特征选择

特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。通常情况下,我们经常不管三七二十一,选择一种自己最熟悉或者

特征离散和特征选择

连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? Q:CTR预估,发现CTR预估一般都是用LR,而且特征都是离散的。为什么一定要用离散特征呢?这样做的好处在哪里? A: 在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点: 0、 离散特征的增加和减少都很容易,易于模型的快速迭代。(离散

特征选择错误:The classifier does not expose coef_ or feature_importances_ attributes

在利用RFE进行特征筛选的时候出现问题,源代码如下: from sklearn.svm import SVRmodel_SVR = SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verb

偏相关系数 - sas 实现

目的: 测试单变量与目标变量的线性关系, 在排除其他变量影响的条件下的 相关性。   求偏相关系数的sas 实现: ods graphics on;proc corr data=fish1 plots=scatter(alpha=0.2 0.3);var height weight;partial length weight;run;ods graphics off; 求

数学建模--皮尔逊相关系数、斯皮尔曼相关系数

目录 1.总体的皮尔逊相关系数 2.样本的皮尔逊相关系数 3.对于皮尔逊相关系数的认识 4.描述性统计以及corr函数 ​编辑 5.数据导入实际操作 6.引入假设性检验 6.1简单认识 6.2具体步骤 7.p值判断法 8.检验正态分布 8.1jb检验 8.2威尔克检验:针对于p值进行检验 9.两个求解方法的总结 1.总体的皮尔逊相关系数 我们首先要知道这个

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器)

智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器) 文章目录 一、基本原理鲸鱼智能优化特征选择流程 二、实验结果三、核心代码四、代码获取五、总结 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(XGBoost分类器) 一、基本原理 当然,这里是鲸鱼智能优化算法(WOA)与XGBoost分类器结

平方Pearson相关系数(SPCC)相关公式的推导

1、PCC及SPCC的定义 最近推导了维纳滤波的公式,其中最重要的是当然是最小平方误差准则(MSE)。但是在很多实际应用中,参考信号是不可知的,因此MSE准则不具有实际意义。为了解决这个问题,我们需要寻找另一个准则替代MSE成为新的代价函数。这就是皮尔逊相关系数(Pearson Correlation Coefficient, PCC)的来历。通过研究发现,相较于MSE,PCC具有许多吸引人的优

Python相关系数导图

🎯要点 量化变量和特征关联绘图对比皮尔逊相关系数、斯皮尔曼氏秩和肯德尔秩汽车性价比相关性矩阵热图大流行病与资产波动城镇化模型预测交通量宝可梦类别特征非线性依赖性捕捉向量加权皮尔逊相关系数量化图像相似性 Python皮尔逊-斯皮尔曼-肯德尔 皮尔逊相关系数 在统计学中,皮尔逊相关系数 是一种用于测量两组数据之间线性相关性的相关系数。它是两个变量的协方差与其标准差乘积的比率;因此,它本质上

基于SHAP进行特征选择和贡献度计算——可解释性机器学习

方法介绍 SHAP(SHapley Additive exPlanations)是一个 Python 包,旨在解释任何机器学习模型的输出。SHAP 的名称源自合作博弈论中的 Shapley 值,它构建了一个加性的解释模型,将所有特征视为“贡献者”。对于每个预测样本,模型会产生一个预测值,而 SHAP 值则表示该样本中每个特征的贡献度。 假设第i个样本为Xi,第i个样本的第j个特征为Xij,模型