特征提取(降维)和特征选择的参考和笔记

特征降维,从一个维度空间映射到另一个维度空间,特征的维数没有减少,在映射的过程中的特征值也会发生相应的变化

特征选择是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后不改变值,但是选择后的特征维数肯定比选择前

特征降维主要特点是通过一个数学变换进行降维,而特征选择就是从众多特征中剔除不重要的特征,从而保留重要的特征

一、特征选择

通常从两点来考虑:

  1. 特征是否发散:如果特征不发散,例如方差接近0,也就是说样本在这个特征上基本没有差异,这个特征对于样本的区分没有什么用
  2. 特征与目标的相关性:除移除低方差法外,此处?大多数方法从相关性考虑

1.划分方式-西瓜书

根据西瓜书,需要两个步骤:环节1+环节2

环节1为:子集搜索:包括前向搜索,后向搜索(从完整特征集开始,每次尝试去掉一个特征),双向搜索

环节2:子集评价:方差,相关系数,假设检验,信息熵,目标函数等

环节1+环节2→才是特征选择:过滤、包装、嵌入法

2.特征选择的方法-简介

Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者带选择阈值的个数,选择特征。

Wrapper:包装法,根据目标函数(通常是预测效果评分)分词选择若干特征,或者排除若干特征

Embedded:嵌入发,先使用某些机器学习的算法和模型来进行训练,得到各个特征的犬只系数,根据系数从大到小选择,类似filter,但是是通过训练来确定特征的优劣

Wrapper需要建立学习模型,通过模型的性能进行评价特征的优劣

Filter无需利用学习模型,主要依赖评价准者,如相关系数、互信息,信息熵等,如决策树中采用了信息熵的准则,就是filter的一种

3.特征选择方法的具体展开

过滤法

方差选择:计算各个特征方差,选择方差大于阈值的特征。当特征值都是离散变量时,才能用。如果是连续变量,需要将连续变量离散化。可以把它当做特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的特征选择方法中选择合适的进行进一步的特征选择

相关系数:计算各特征的pearson相关系数

(Pearson)皮尔逊相关系数和spearman相关系数(附python实现)_打牛地的博客-CSDN博客_python spearman相关系数

卡方检验:统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;

特征提取(降维)和特征选择的参考和笔记_第1张图片

互信息法:计算各特征的信息增益

https://img-blog.csdn.net/2018091211181649?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2t5bGluX2xlYXJu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

优点:快速,只需要基础统计知识;缺点:特征之间的组合效应难以挖掘

封装法

递归消除特征法:递归消除特征法使用一个基模型来进行多轮训练,每轮训练后,移除平方值最小的那个序号对应的特征,再基于新的特征集进行下一轮训练,直到剩下的特征数满足要求为止。

RFE(recursive feature elimination)通过学习器返回的coef_属性或者feature_importances属性获得每个特征的重要程度。方便手动的特征选择,在元模型去除特征后的数据集上的性能差于原数据集,和方差过滤一样,同样是因为去除了特征中保留的有效信息的原因。

RFECV通过交叉验证来找到最优的特征数量,如果减少特征会造成性能损失,将不除去任何特征。缺陷,计算量大,随着学习器的改变,最佳特征组合也会改变。在REF的基础上对不同的特征组合进行交叉验证,学习器本身不变,通过计算其决策系数之和,最终得到不同特征对于score的重要程度,然后保留最佳的特征组合。其分割方式类似于随机森林中的列上子采样

递归式特征消除:Recursive feature elimination_Font Tian的博客-CSDN博客_递归特征消除

优点:直接面向算法,不需要太多知识。缺点:庞大的搜索空间,需要定义启发式策略;

嵌入法embedded

使用带惩罚项的基模型进行特征选择:比如LR加入正则。通过L1正则项来选择特征:L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是L1没有选择到的特征不代表不重要,原因是两个:具有高相关性的特征可能只保留一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验。

树模型的特征选择(随机森林、决策树):训练能够对特征打分的预选模型:randomforest和logistic regression等都能对模型的特征打分,通过打分获得相关性后再训练最终模型。

优点:效果最好速度最快,模式单调,快速并且效果明显。缺点:如何参数设置,需要深厚的背景知识

二、特征提取-降维:

1 线性降维

1.1 PCA 主成分分析

个数确定:贡献率,第i个主成分的方差在全部方差中所占比重,反映第i个主成分所提取的总信息的份额

累积贡献率:前k个主成分在全部方差中所占比重

个数:累积贡献率>0.85

变量的梁刚不同或取值范围相差较大的指标是,从相关系数矩阵出发进行主成分分析

对于度量或取值范围相差不大的,从协方差阵出发

相关系数矩阵消除量纲的影响

1.1.1 PLS偏最小二乘法

解决PCA不足:PCA提出的前若干个主成分携带了原输入变量矩阵的大部分信息,消除了相互重叠的部分信息。但是没有考虑主成分对输出变量的解释能力,方差贡献率很小但对输出变量有很强解释能力的主成分会被忽略掉。

基本思路:逐步回顾,逐步分解输入变量矩阵和输出变量矩阵,并综合考虑提取的主成分对输入变量矩阵和输出变量矩阵的解释能力,知道满足性能要求为止。

1.2 LDA判别分析

只能从C降至C-1

1.3 MDS多维尺度分析

当n个研究对象之间的相似性(或距离)给定时,确定这些对象在低维空间中的表示,并使尽可能与原先的相似性(距离)“大体匹配”,使得由降维所引起的任何变形达到最小

2 非线性降维

各属性间是强相关的

2.1 流形学习

线性子空间的一种非线性推广,流行学习是一种非线性的维数简约方法

假设:高位数据位于或近似位于潜在的低维流上

思想:保持高位数据与低维数据的某个“不变特征量”而找到低维特征表示

以不变特征量分为:lsomap:测地距离;LLE局部重构系数;LE数据领域关系

2.2 ISOMAP等距特征映射

基本思想:通过保持高维数据的测地距离与低位数据的欧氏距离的不变形来找到低维特征表示

测地距离:离得较近的点间的测地距离用欧式距离替代;离得远的点间的测地距离用最短路径逼近

2.3 LLE局部线性嵌入

假设:采样数据所在的低维流形在局部是线性的,即每个采样点可以用它的近邻点线性表示

基本思想:通过保持高维数据与地位数据间的局部领域集合结构,局部重构系数来实现降维

3 降维的选择

缺失值比率:如果数据集缺失值太多,我们使用这种方法来减少变量的数量。我们可以删除其中有大量缺失值的变量

低方差过滤器:我们应用这种方法来识别和删除数据集中的常量变量。目标变量不会受到低方差变量的过度影响,因此可以安全地丢弃这些变量。

高相关性过滤器:一对高相关性的变量增加了数据集中的多重共线性。因此,我们可以使用这种技术来找到高度相关的特征并相应地删除它们

随机森林:这是最常用的技术之一,它告诉我们数据集中每个特征的重要性。我们可以找到每个特性的重要性和保持最重要的特性,导致降维

都向前向后特性消除和特征选择技术需要大量的计算时间,因此一般用于较小的数据集的

因素分析:这种方法是最适合的情况下我们有高度相关的变量。它根据变量的相关性将它们分成不同的组,并用因子

主成分分析:表示每一组:这是处理线性数据最广泛使用的技术之一。它将数据划分为一组组件尝试尽可能多的方差解释

独立分量分析:我们可以用ICA变换描述数据的数据转换成独立的组件使用较少数量的组件

ISOMAP:我们使用这种技术时,数据强烈非线性

t-SNE:这种技术也强烈非线性数据时非常有效。它对可视化都非常有效

UMAP:这种技术对高维数据也很有效。它的运行时间比t-SNE短

自己的一点思考:

1.特征降维/提取的可解释性较差,特征选择是特征的筛选可解释性较强。

2.对于特征降维方面的接触还不是太多,主要注意特征选择方面的应用。粗略看过一两本特征工程的书,发现主要偏重的还是特征降维内容。

3.这些是前期入门笔记,进一步的话,特征选择方面可以从特征与目标的相关性,特征之间的冗余性,以及新增特征能否增强特征集的互补性,搜索策略方面入手。

4.其实真正深入的话,可解释性的结果或者说能解释的方法在工程实际应用中是可能比随机投票的一些方法得到更好的结果。

4.信息熵、距离(相关度量)、流形、张量、基于滤波的方法(?这个不太记得)、可解释的深度学习模块、搜索策略的各种方法是接下来主要关注对象。

主要参考:

特征选择:

机器学习 特征选择(过滤法 封装法 嵌入法)_打牛地的博客-CSDN博客_嵌入法

特征工程之特征选择之过滤法(卡方检验_上进的菜鸟的博客-CSDN博客_特征选择过滤法

特征选择方法综述 (ceaj.org)

特征提取-降维:

一、降维——机器学习笔记——降维(特征提取)_Nicole_Liang的博客-CSDN博客_降维

你可能感兴趣的:(机器学习,python,数据挖掘)