700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 特征选择-皮尔逊系数 RFE(原理及代码)

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

时间:2020-07-28 18:52:28

相关推荐

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

特征选择

1皮尔逊系数1.1介绍:1.2试用范围:2.RFE递归特征消除2.1介绍2.2 python实现

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 datasetsfrom sklearn.feature_selection import RFEfrom sklearn.linear_model import LogisticRegressiontestdataset = datasets.load_iris()x = testdataset.datay = testdataset.targetmodel = 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_)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。