特征选择和共线性问题

1. 特征选择的原因

  • 提高模型稳定性的需要
  • 提高模型预测能力的需要
  • 提高运算速度和运算效率的需要

2. 特征选择的过程

2.1 结合业务经验先行筛选

很多时间业务专家一针见血的商业敏感性可以有效缩小自变量的考察范围,准确圈定最有价值的预测变量,提高判断和筛选效率。

2.2 用线性相关性指标进行初步筛选

2.2.1 皮尔逊Pearson相关系数

r = ∑ ( x − x ˉ ) ( y − y ˉ ) ∑ ( x − x ˉ ) 2 ∑ ( y − y ˉ ) 2 r=\frac{\sum(x-\bar x)(y-\bar y)}{\sqrt{\sum(x-\bar x)^2\sum (y-\bar y)^2}} r=(xxˉ)2(yyˉ)2 (xxˉ)(yyˉ) r ∈ [ − 1 , + 1 ] , ∣ r ∣ r\in [-1,+1],|r| r[1,+1],r越大,线性相关性越强。

  • ∣ r ∣ ∈ [ 0.7 , 1 ] |r|\in [0.7,1] r[0.7,1]强相关关系
  • ∣ r ∣ ∈ [ 0.4 , 0.7 ) |r|\in [0.4,0.7) r[0.4,0.7) 较强相关关系
  • ∣ r ∣ ∈ [ 0.2 , 0.4 ) |r|\in [0.2,0.4) r[0.2,0.4) 弱相关关系
  • ∣ r ∣ ∈ [ 0 , 0.3 ) |r|\in [0,0.3) r[0,0.3) 极弱相关关系或无相关

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

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

2.2.2 斯皮尔曼Spearman相关系数

斯皮尔曼相关系数被定义成等级变量之间的皮尔逊相关系数。斯皮尔曼相关系数与两个相关变量的具体值无关,而仅仅与其值之间的大小关系有关。
ρ = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) \rho=1-\frac{6\sum{d_i^2}}{n(n^2-1)} ρ=1n(n21)6di2其中,di表示两个变量分别排序后成对的变量位置差,n表示样本总数,减少异常值的影响。

适用范围:连续型数值变量、等级数据(举例:两次考试的排名数据)

2.2.3 小结

特征选择和共线性问题_第1张图片
备注:python实战

from scipy.stats import pearsonr, spearmanr
pearsonr(x,y) # 返回皮尔逊相关系数和检验P值, 样本要求>20。
spearmanr(x,y) # 返回斯皮尔曼相关系数和检验P值, 样本要求>20。

2.3 多元线性回归的显著性检验

2.3.1 线性回归模型的显著性检验

检验方法用F检验,或者直接用多元相关系数R R = S R 2 S T 2 = ∑ i ( y ^ i − y ˉ ) 2 ∑ i ( y i − y ˉ ) 2 R=\sqrt {\frac{S_R^2}{S_T^2}}=\sqrt{\frac{\sum_i(\hat y_i-\bar y)^2}{\sum_i (y_i-\bar y)^2}} R=ST2SR2 =i(yiyˉ)2i(y^iyˉ)2 r ∈ [ 0 , 1 ] r\in [0,1] r[0,1],r越大,线性相关性越强。当R的样本值 r > r a ( n − k − 1 ) r>r_a(n-k-1) r>ra(nk1)(相关系数临界值)时,认为Y与 X 1 , X 2 , . . . , X k X_1,X_2,...,X_k X1,X2,...,Xk之间的线性关系显著,否则不显著。

2.3.2 回归系数的显著性检验

对每个变量 X i X_i Xi做偏回归显著性检验,公式为: F i = S R − S R − i S R F_i=\frac{S_R-S_{R_{-i}}}{S_R} Fi=SRSRSRi其中, S R − i S_{R_{-i}} SRi为剔除变量 X i X_i Xi之后的回归平方和, S R − S R − i S_R-S_{R_{-i}} SRSRi反映了引入 X i X_i Xi之后,其对回归平方和 S R 2 S_R^2 SR2的贡献。

分别检验各个自变量的 F i F_i Fi是否都大于相应的 F α F_\alpha Fα

  • 如果全都大于 F α F_{\alpha} Fα,则结束;
  • 如果发现有几个自变量不满足,则每次只能删除其中一个 X i X_i Xi(其 F i F_i Fi最小),然后重新用剩下的自变量进行回归的构建,如此反复,直到所有有显著性意义的自变量都进入回归方程,而没有显著性意义的自变量都被剔除。

2.3.3 卡方检验:度量类别型目标变量和类别型自变量的关联性

卡方检验属于非参数检验,主要用来度量判别型变量之间的关联性以及比较2个或2个以上的样本率(比例)。其基本思想是比较理论频数和实际频数的吻合程度 χ 2 = ∑ i = 1 m ( v i − n p i ) 2 n p i \chi^2=\sum_{i=1}^m\frac{(v_i-np_i)^2}{np_i} χ2=i=1mnpi(vinpi)2
其中m是互不相容的事件个数, v i v_i vi是实例频数, n p i np_i npi是理论频数。拒绝域为 { χ 2 > χ 1 − α 2 ( m − 1 ) } \{\chi^2>\chi^2_{1-\alpha}(m-1)\} {χ2>χ1α2(m1)}

2.3.4 IV和WOE:处理区间型自变量

当目标变量是二元变量,自变量是区间型变量时,可以通过信息值IV (information value)和迹象权数WOE(weight of evidence)进行自变量的判断和舍取。

2.3.4.1. WOE离散化

一种有监督的编码方式,将预测类别的集中度的属性作为编码的数值
特征选择和共线性问题_第2张图片
WOE可以理解为:当前这个组中坏客户和好客户的比值,和所有样本中这个比值的差异。这个差异为这两个比值的比值,再取对数来表示的。

WOE越大,这种差异越大,这个分组里的样本坏样本可能性就越大,WOE越小,差异越小,这个分组里的坏样本可能性就越小。

当我们算完WOE的时候,我们关注的点一般会有这几个:

  • woe是否单调
  • woe是否呈线性
  • IV值的大小。
优势
  • 将特征的值规范到相近的尺度上。
  • 具有业务含义。
缺点
  • 需要每箱中同时包含好、坏两个类别。

2.3.4.2 IV值衡量自变量的预测能力

IV就是用来衡量自变量的预测能力。类似的指标还有信息增益、基尼系数等等。

计算每个区间的WOE值后,再通过IV值,筛选出有较高预测价值的自变量,投入模型的训练中。

IV的计算基于WOE,可以看成对WOE的加权求和,权重为 P y 1 − P y 0 P_{y1}-P_{y0} Py1Py0,这个系数很好的考虑了这个分组中样本占整体样本的比例,比例越低,这个分组对变量整体预测能力的贡献越低。
I V = ∑ ( P y 1 − P y 0 ) ∗ W O E IV=\sum(P_{y1}-P_{y0})*WOE IV=(Py1Py0)WOE

缺点

使用IV不能自动处理变量的分组中出现响应比例为0或100%的情况。

参考教程

  • Weight of Evidence (WOE) and Information Value Explained
    https://www.listendata.com/2015/03/weight-of-evidence-woe-and-information.html
  • 【详解】银行信用评分卡中的WOE在干什么? - 知乎
    https://zhuanlan.zhihu.com/p/30026040
  • 手把手教你用R语言建立信用评分模型(二)—单变量分析 - R语言-炼数成金-Dataguru专业数据分析社区
    http://www.dataguru.cn/article-10479-1.html

2.4 部分建模算法自身的筛选功能

可供“借力”的模型:决策树、线性回归、逻辑回归等。

多元线性回归的显著性检验/stepwise算法

比如线性回归和逻辑回归中,算法通过不断增加或者删除变量,来检验各输入变量对于预测的价值

区别
Enter:所有X一次性全部进入
Forward:X一个一个进,每次进入P-value最小的X,直到未进入的X都不significant
Backward:所有的X先一次性进入,然后一个一个剔除,每次剔除P-value最大的X,直到保留的X全都significant
Stepwise:X一个一个进,但是进入新的X以后,会重新审查所有已进入X的P-value,如果进入新的X导致原来的X的P-value从significant变成不significant,则把原来的X剔除。

随机逻辑回归算法

对训练数据进行多次采样拟合回归模型,即在不同的数据子集和特征子集上运行特征算法,不断重复,最终选择得分高的重要特征。这是稳定性选择方法。

from sklearn.linear_model
import RandomizedLogisticRegression ,LogisticRegression

参数:

惩罚因子C:默认1

缩放参数s:用于随机缩放不同特征的惩罚。默认0.5

子集划分比:默认75%

得分阈值:默认0.25

容忍误差:默认1e-3

2.5 降维方法

主成分分析、变量聚类等

通过降维方法,可以有效精简输入变量的数目,在一定程度上有效筛选模型输入变量。

3. 共线性问题

所谓共线性,指的是自变量之间存在较强甚至完全的线性相关关系。这会导致模型预测能力下降,增加对于模型结果的解释成本。

3.1 识别方法

  • 相关系数法:皮尔逊相关系数
  • 通过模型结论的观测:如回归模型中如果回归系数的标准差过大,则有可能出现共线性问题
  • 主成分分析:主成分载荷能力大小从一定程度上反映各个变量的相关性
  • 变量聚类:对区间型变量进行聚类,同类的变量之间可能存在共线性问题

3.2 解决方法

  • 对相关变量进行取舍
  • 对相关变量进行组合,生成一个新的综合性变量
  • 尝试对相关变量进行一些形式的转换:生成衍生变量、改善变量分布的转换(取对数、开方等)、分箱、标准化

你可能感兴趣的:(机器学习之个人小结,特征选择,共线性问题)