特征选择-皮尔逊系数、RFE(原理及代码)

1皮尔逊系数

1.1介绍:

皮尔逊相关也称为积差相关(或者积矩相关)。我们假设有两个变量X,Y,那么两变量间的皮尔逊相关系数计算如下:

在这里插入图片描述

其中E为数学期望,cov表示协方差,N表示变量取值的个数

相关系数的绝对值越大,相关性越强,相关系数越接近于1或-1,相关系数越接近于0,相关度越弱。

通向情况下通过一下取值范围判断变量的相关强度:
相关系数绝对值: 0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关

1.2试用范围:

当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:

(1)、两个变量之间是线性关系,都是连续数据。
(2)、两个变量的总体是正态分布,或接近正态的单峰分布。
(3)、两个变量的观测值是成对的,每对观测值之间相互独立。

3.matlab实现
皮尔逊相关系数的Matlab实现(依据公式四实现):

function coeff = myPearson(X , Y)
% 本函数实现了皮尔逊相关系数的计算操作
%
% 输入:
% X:输入的数值序列
% Y:输入的数值序列
%
% 输出:
% coeff:两个输入数值序列X,Y的相关系数
%

if length(X) ~= length(Y)
error(‘两个数值数列的维数不相等’);
return;
end

fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);
fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));
coeff = fenzi / fenmu;

end %函数myPearson结束

2.RFE递归特征消除

2.1介绍

递归特征消除的主要思想是反复构建模型,然后选出最好的(或者最差的)特征(根据系数来选),把选出来的特征放到一边,然后在剩余的特征上重复这个过程,直到遍历了所有的特征。在这个过程中被消除的次序就是特征的排序。

RFE的稳定性很大程度上取决于迭代时,底层用的哪种模型。比如RFE采用的是普通的回归(LR),没有经过正则化的回归是不稳定的,那么RFE就是不稳定的。假如采用的是Lasso/Ridge,正则化的回归是稳定的,那么RFE就是稳定的。

2.2 python实现

"""
使用RFE进行特征选择:RFE是常见的特征选择方法,也叫递归特征消除。它的工作原理是递归删除特征,
并在剩余的特征上构建模型。它使用模型准确率来判断哪些特征(或特征组合)对预测结果贡献较大。
"""

from sklearn import datasets
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

testdataset = datasets.load_iris()
x = testdataset.data
y = testdataset.target

model = LogisticRegression()
rfe = RFE(model, 2)##rfe(estimator,n_features_to_select,step) estimator参数指明基模型,n_features_to_select指定最终要保留的特征数量,step为整数时设置每次要删除的特征数量,当小于1时,每次去除权重最小的特征。
rfe = rfe.fit(x, y)
print(rfe.support_)
print(rfe.ranking_)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值