特征降维之特征选择
特征选择是建模中常用的降维手段,比较暴力,直接将不重要特征删除。
缺点:造成信息丢失,不利于模型精度。【与之形成对比的是PCA、LDA等降维方式。】
主要标准有两个:
- 特征是否发散。
- 特征与目标的相关性。
注:在进行特征工程之前,需要进行特征的设计,因为没有特征又何来的特征选择?项目提供的数据集特征不一定就能直接作为模型训练的特征,需要对具体场景进行理解、建模,得到合理的特征,毕竟“数据决定了机器学习模型能力的上限”。
一、过滤式特征选择
优点:有统计学理论分析保证。
缺点:独立考虑每个特征与目标相关性,忽略不同特征之间关联性。【与之对比的是wrapper和embedded等特征选择方式。】
- pearson相关系数 和 spearman相关系数:
具体理论先看这篇:pearson相关系数与spearman相关系数
简介:
用于 连续型 与 连续型 变量的相关性分析。所以主要用于回归模型,各个 特征与目标之间 的线性相关性。
属于过滤式(filter)特征筛选。pearson相关系数描述两个变量间的相关性,即两个变量在随时间变化过程中,是同向变化,还是反向变化,还是其他。同向变化,即正相关,pearson系数接近1;反向变化即负相关,pearson系数接近-1;其他变化Pearson系数刻画不出来【只能刻画线性相关】,pearson系数接近0。
spearman相关系数刻画两个变量之间是否有单调关系。定义为两个变量秩统计量的pearson相关系数。
操作:
可以筛选与target,pearson相关系数大于0.5的特征;或者,依据相关系数进行特征排序,取前几名。
说明:
相关系数主要用于判别线性相关,对于target变量如果存在更复杂的函数形式的影响,建议使用树模型的特征重要性去筛选。
- 卡方检验 :
简介:
用于 类别型 与 类别型 变量的相关性分析。所以主要用于分类模型。
卡方统计量公式:
Xα2=Σi(Oi−Ei)2Ei\mathcal{X}_{\alpha}^2=\Sigma_i \frac{(O_i - E_i)^2}{E_i}Xα2=ΣiEi(Oi−Ei)2
其中,α\alphaα代表自由度,O代表观察值,E代表期望值。
理论具体可以看这篇:https://blog.csdn.net/weixin_44360866/article/details/127108754
操作:
可以筛选与target,卡方值大的特征。
为什么是筛选卡方值大的?因为卡方值很大,就拒绝原假设,原假设是两变量之间无关。
- 最大信息系数法:
简介:
用于 类别型 与 类别型 变量的相关性分析。所以主要用于分类模型。
有关信息论的基础可以看:https://blog.csdn.net/weixin_44360866/article/details/126304210
两个随机变量X,Y互信息的定义思路就是:已知Y后,X的不确定性减少了多少。因此,可以用来衡量两个变量之间相互依赖程度的度量。
公式:
I(X,Y)=Σx∈XΣy∈Yp(x,y)logp(x,y)p(x)p(y)I(X,Y)=\Sigma_{x\in \mathcal{X}\Sigma_{y\in \mathcal{Y}}} p(x,y){\rm log}\frac{p(x,y)}{p(x)p(y)}I(X,Y)=Σx∈XΣy∈Yp(x,y)logp(x)p(y)p(x,y)
两个变量独立时,联合概率等于边际概率的乘积,所以log里面的值都等于1,log1为0,因此,互信息为0.
优缺点:
MIC要比相关系数general,不管是什么函数的相关关系,都能识别。
不需要标准化/归一化,不同数据集可以直接识别。
线性相关性有时不如pearson相关系数强。独立性检测不如dcor(距离相关系数)。用于大规模探索性分析会产生太多错误判例。
操作:
可以看到公式中设计计算两个变量的概率分布。具体数据集中,使用频率代替概率。【蒙特卡洛思想】
计算各个特征和target的MIC,进行排名,选前几名。
图例:
- 方差选择法
简介:
属于过滤式特征选择。
不同于上面依照——与目标的相关性程度,这个评价标准进行特征选择,方差选择法根据——特征自身的发散程度,进行特征选择。
发散程度越大的变量,提供的信息越多。而方差就是衡量变量发散程度的一个指标。
变量的方差大家都会算,不放公式了。
操作:
根据阈值选择方差大于阈值的特征。
天池经典赛题-蒸汽量预测 之特征工程
只提供代码进行举例: