特征选择 技术专题简介-冯金伟博客园

简介

机器学习与数据挖掘问题分类聚类回归异常检测数据清洗自动机器学习关联规则强化学习结构预测(英语:Structured prediction)特征工程特征学习线上机器学习无监督学习半监督学习排序学习(英语:Learning to rank)语法归纳(英语:Grammar induction)监督式学习(分类 · 回归)决策树集成(装袋,提升,随机森林)k-NN线性回归朴素贝叶斯神经网络逻辑回归感知器支持向量机(SVM)相关向量机(RVM)聚类BIRCH层次k-平均期望最大化(EM)DBSCANOPTICS均值飘移(英语:Mean shift)降维因素分析CCAICALDANMF(英语:Non-negative matrix factorization)PCALASSOt-SNE(英语:t-distributed stochastic neighbor embedding)结构预测(英语:Structured prediction)概率图模型(贝叶斯网络,CRF, HMM)异常检测k-NN局部离群因子(英语:Local outlier factor)神经网络自编码深度学习多层感知机RNN受限玻尔兹曼机SOMCNNTransformer模型强化学习Q学习SARSA时序差分学习深度强化学习理论偏差/方差困境(英语:Bias–variance tradeoff)计算学习理论(英语:Computational learning theory)经验风险最小化PAC学习(英语:Probably approximately correct learning)统计学习VC理论研讨会NeurIPSICML(英语:International_Conference_on_Machine_Learning)ICLR查论编在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择 或变量子集选择 。它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。使用特征选择技术有三个原因:简化模型,使之更易于被研究人员或用户理解,缩短训练时间,改善通用性、降低过拟合(即降低方差 )要使用特征选择技术的关键假设是:训练数据包含许多冗余 或无关 的特征,因而移除这些特征并不会导致丢失信息。 冗余 或无关 特征是两个不同的概念。如果一个特征本身有用,但如果这个特征与另一个有用特征强相关,且那个特征也出现在数据中,那么这个特征可能是冗余的。特征选择技术与特征提取有所不同。特征提取是从原有特征的功能中创造新的特征,而特征选择则只返回原有特征中的子集。特征选择技术的常常用于许多特征但样本(即数据点)相对较少的领域。特征选择应用的典型用例包括:解析书面文本和微阵列数据,这些场景下特征成千上万,但样本只有几十到几百个。

介绍

特征选择算法可以被视为搜索技术和评价指标的结合。前者提供候选的新特征子集,后者为不同的特征子集打分。最简单的算法是测试每个特征子集,找到究竟哪个子集的错误率最低。这种算法需要穷举搜索空间,难以算完所有的特征集,只能涵盖很少一部分特征子集。选择何种评价指标很大程度上影响了算法。而且,通过选择不同的评价指标,可以把特征选择算法分为三类:包装类、过滤类和嵌入类方法

包装类方法使用预测模型给特征子集打分。每个新子集都被用来训练一个模型,然后用验证数据集来测试。通过计算验证数据集上的错误次数(即模型的错误率)给特征子集评分。由于包装类方法为每个特征子集训练一个新模型,所以计算量很大。不过,这类方法往往能为特定类型的模型找到性能最好的特征集。

过滤类方法采用代理指标,而不根据特征子集的错误率计分。所选的指标算得快,但仍然能估算出特征集好不好用。常用指标包括互信息、逐点互信息、皮尔逊积矩相关系数、每种分类/特征的组合的帧间/帧内类距离或显着性测试评分。 过滤类方法计算量一般比包装类小,但这类方法找到的特征子集不能为特定类型的预测模型调校。由于缺少调校,过滤类方法所选取的特征集会比包装类选取的特征集更为通用,往往会导致比包装类的预测性能更为低下。不过,由于特征集不包含对预测模型的假设,更有利于暴露特征之间的关系。许多过滤类方法提供特征排名,而非显式提供特征子集。要从特征列表的哪个点切掉特征,得靠交叉验证来决定。过滤类方法也常常用于包装方法的预处理步骤,以便在问题太复杂时依然可以用包装方法。

嵌入类方法包括了所有构建模型过程中用到的特征选择技术。这类方法的典范是构建线性模型的LASSO方法。该方法给回归系数加入了L1惩罚,导致其中的许多参数趋于零。任何回归系数不为零的特征都会被LASSO算法“选中”。LASSO的改良算法有Bolasso和FeaLect。Bolasso改进了样本的初始过程。FeaLect根据回归系数组合分析给所有特征打分。 另外一个流行的做法是递归特征消除(Recursive Feature Elimination)算法,通常用于支持向量机,通过反复构建同一个模型移除低权重的特征。这些方法的计算复杂度往往在过滤类和包装类之间。

传统的统计学中,特征选择的最普遍的形式是逐步回归,这是一个包装类技术。它属于贪心算法,每一轮添加该轮最优的特征或者删除最差的特征。主要的调控因素是决定何时停止算法。在机器学习领域,这个时间点通常通过交叉验证找出。在统计学中,某些条件已经优化。因而会导致嵌套引发问题。此外,还有更健壮的方法,如分支和约束和分段线性网络。