主要内容

特征选择简介

本节介绍了特征选择算法,并介绍了Statistics和Machine Learning Toolbox™中提供的特征选择功能。

特征选择算法

特征选择通过只选择测量特征的子集(预测变量)来创建模型,从而降低数据的维数。特征选择算法搜索预测器的子集,这些预测器最优地模型测量响应,受到诸如所需或排除的特征和子集的大小等限制。特征选择的主要好处是提高预测性能,提供更快、更划算的预测器,并更好地理解数据生成过程[1].使用过多的特征会降低预测性能,即使所有特征都是相关的,并且包含关于响应变量的信息。

可以将要素选择算法分为三种类型:

  • 过滤类型特征选择-滤波器型特征选择算法根据特征的特征(如特征方差和特征与响应的相关性)来度量特征的重要性。选择重要特征作为数据预处理步骤的一部分,然后使用所选特征训练模型。因此,滤波器类型特征选择与训练算法无关。

  • 包装器类型特征选择-包装器类型特征选择算法使用特征子集开始训练,然后使用选择标准添加或删除特征。选择标准直接度量由于添加或删除特性而导致的模型性能变化。该算法重复训练和改进模型,直到满足模型的停止条件。

  • 嵌入式类型特征选择-嵌入式类型特征选择算法学习特征的重要性,作为模型学习过程的一部分。一旦您训练了一个模型,您就可以获得训练模型中特征的重要性。这种算法选择适合特定学习过程的特征。

此外,可以根据算法是否按顺序排列特征对特征选择算法进行分类。最小冗余最大相关(MRMR)算法和逐步回归是序列特征选择算法的两个例子。有关详细信息,请参阅序列特征选择

您可以通过创建部分依赖图(PDP)和单个条件期望图(ICE)直观地比较预测变量的重要性。有关详细信息,请参见局部依赖

对于分类问题,在选择特征之后,您可以训练两个模型(例如,一个完整的模型和一个用预测器子集训练的模型),并使用比较控股testcholdout,或testckfold功能。

当原始特征及其单元很重要且建模目标是识别有影响的子集时,特征选择优于特征转换。当存在分类特征且数值变换不合适时,特征选择成为降维的主要手段。

特征选择的功能

统计和机器学习工具箱为特征选择提供了几个功能。根据您的问题和特征的数据类型选择适当的特征选择功能。

过滤类型特征选择

函数 金宝app支持问题 金宝app支持的数据类型 描述
fscchi2 分类 范畴特征和连续特征

使用单个卡方检验检验每个预测变量是否独立于响应变量,然后使用p卡方检验统计量的值。

例如,请参阅函数参考页面fscchi2

fscmrmr 分类 范畴特征和连续特征

使用的排序功能MRMR (Minimum Redundancy Maximum Relevance)算法

例如,请参阅函数参考页面fscmrmr

fscnca 分类 连续特征

利用对角自适应邻域分量分析(NCA)确定特征权重。这种算法最适用于基于距离的监督模型的特征重要性估计,该模型使用观察之间的成对距离来预测响应。

具体操作请参见功能参考页面fscnca和这些主题:

fsrftest 回归 范畴特征和连续特征

检查每个预测的重要性单独使用F-test,然后使用p值的F以及统计数据。每一个F-test检验按预测变量值分组的响应值是从具有相同均值的总体中提取的假设,而另一种假设是总体均值不都相同。

例如,请参阅函数参考页面fsrftest

fsrnca 回归 连续特征

利用对角自适应邻域分量分析(NCA)确定特征权重。这种算法最适用于基于距离的监督模型的特征重要性估计,该模型使用观察之间的成对距离来预测响应。

具体操作请参见功能参考页面fsrnca和这些主题:

fsulaplacian 无监督学习 连续特征

使用拉普拉斯算子的分数

例如,请参阅函数参考页面fsulaplacian

relieff 分类和回归 要么是所有的范畴特征,要么是所有的连续特征

使用ReliefF算法的分类和RReliefF回归算法。这种算法最适用于基于距离的监督模型的特征重要性估计,该模型使用观察之间的成对距离来预测响应。

例如,请参阅函数参考页面relieff

sequentialfs 分类和回归 要么是所有的范畴特征,要么是所有的连续特征

使用自定义条件按顺序选择特性。定义一个函数来测量数据的特征以选择特征,并将函数句柄传递给sequentialfs函数。属性可以指定顺序向前选择或顺序向后选择“方向”名称-值对的论点。sequentialfs使用交叉验证评估标准。

*你也可以考虑fscncafsrnca作为嵌入式类型特征选择函数,因为它们返回一个训练过的模型对象,你可以使用对象函数预测损失.但是,通常使用这些对象函数来调优算法的正则化参数。选择功能后使用fscncafsrnca作为数据预处理步骤的一部分,您可以为您的问题应用另一种分类或回归算法。

包装器类型特征选择

函数 金宝app支持问题 金宝app支持的数据类型 描述
sequentialfs 分类和回归 要么是所有的范畴特征,要么是所有的连续特征

使用自定义条件按顺序选择特性。定义一个实现监督学习算法的函数或一个衡量学习算法性能的函数,并将函数句柄传递给sequentialfs函数。属性可以指定顺序向前选择或顺序向后选择“方向”名称-值对的论点。sequentialfs使用交叉验证评估标准。

例如,请参阅函数参考页面sequentialfs和这些主题:

嵌入式类型特征选择

函数 金宝app支持问题 金宝app支持的数据类型 描述
DeltaPredictor财产的分类判别式模型对象 线性判别分析分类 连续特征

使用创建线性判别分析分类器fitcdiscr. 经过训练的分类器,返回为分类判别式,将系数大小存储在DeltaPredictor财产。中的值可以使用DeltaPredictor来衡量预测的重要性。这个分类器使用两个正则化参数伽马和三角洲识别并删除冗余预测值。您可以使用cvshrink函数或“优化超参数”名称-值对的论点。

有关示例,请参见以下主题:

fitcecoc具有templateLinear 用高维数据进行多类学习的线性分类 连续特征

利用。训练线性分类模型fitcecoc线性二元学习者定义为templateLinear. 具体说明“正规化”模板线性作为“套索”使用套索正则化。

例如,请参见使用交叉验证找到好的套索惩罚.这个例子通过使用不同的强度值来评估模型来确定一个好的套索惩罚强度kfoldLoss.您还可以使用kfoldEdgekfoldMargin边缘损失,或保证金

fitclinear 基于高维数据的二元学习的线性分类 连续特征

利用。训练线性分类模型fitclinear. 具体说明“正规化”fitclinear作为“套索”使用套索正则化。

例如,请参见使用交叉验证的AUC找到好的套索惩罚.这个例子通过使用AUC值来评估具有不同强度值的模型来确定一个良好的套索惩罚强度。使用。计算交叉验证的后验类概率kfoldPredict,并使用perfcurve.您还可以使用kfoldEdgekfoldLosskfoldMargin边缘损失保证金,或预测

菲特尔格普 回归 范畴特征和连续特征

使用以下方法训练高斯过程回归(GPR)模型菲特尔格普.设置“KernelFunction”使用自动相关性确定(ARD)的名称-值对参数。可用选项包括“ardsquaredexponential”“ardexponential”“ardmatern32”“ardmatern52”,“ardrationalquadratic”.通过取负学习长度尺度的指数来找到预测权值,存储在KernelInformation财产。

有关示例,请参见以下主题:

菲特利恩 高维数据的线性回归 连续特征

用。训练线性回归模型菲特利恩. 具体说明“正规化”菲特利恩作为“套索”使用套索正则化。

有关示例,请参见以下主题:

套索 线性回归 连续特征

用。训练线性回归模型套索正则化使用套索.您可以指定的重量套索与脊优化使用“α”名称-值对的论点。

例如,请参阅函数参考页面套索和这些主题:

lassoglm 广义线性回归 连续特征

用。训练广义线性回归模型套索正则化使用lassoglm.您可以指定的重量套索与脊优化使用“α”名称-值对的论点。

具体操作请参见功能参考页面lassoglm和这些主题:

面向对象编程的重要性**的分类BaggedAssemble 使用袋装决策树(例如,随机森林)进行分类 范畴特征和连续特征

使用树学习器训练袋式分类集成fitcensemble并具体说明“方法”作为“包”. 然后,使用面向对象编程的重要性来计算现成的,通过排列的预测重要性估计. 该函数测量模型中预测变量对预测响应的影响程度。

有关示例,请参见函数参考页和主题面向对象编程的重要性

面向对象编程的重要性**的RegressionBaggedEnsemble 使用袋装决策树(例如,随机森林)集成的回归 范畴特征和连续特征

通过使用fitrensemble并具体说明“方法”作为“包”. 然后,使用面向对象编程的重要性来计算现成的,通过排列的预测重要性估计. 该函数测量模型中预测变量对预测响应的影响程度。

例如,请参阅函数参考页面面向对象编程的重要性选择随机森林的预测器

predictorImportance**的ClassificationEnsemble 用决策树集合进行分类 范畴特征和连续特征

利用树学习器训练分类集成fitcensemble. 然后,使用predictorImportance估计预测的重要性通过对每个预测器的分裂所造成的风险变化进行求和,并除以分支节点的数量来进行集成。

例如,请参阅函数参考页面predictorImportance

predictorImportance**的ClassificationTree 用决策树进行分类 范畴特征和连续特征

使用菲茨特里. 然后,使用predictorImportance估计预测的重要性对于树,将每个预测器上的分裂导致的风险变化相加,并将总和除以分支节点的数量。

例如,请参阅函数参考页面predictorImportance

predictorImportance**的RegressionEnsemble 决策树集成的回归 范畴特征和连续特征

使用树学习器训练回归集成fitrensemble. 然后,使用predictorImportance估计预测的重要性通过对每个预测器的分裂所造成的风险变化进行求和,并除以分支节点的数量来进行集成。

例如,请参阅函数参考页面predictorImportance

predictorImportance**的RegressionTree 决策树回归 范畴特征和连续特征

通过使用菲特里. 然后,使用predictorImportance估计预测的重要性通过对每个预测器的分裂所引起的均方误差(MSE)的变化进行求和,并除以分支节点的数量,对树进行计算。

例如,请参阅函数参考页面predictorImportance

stepwiseglm*** 广义线性回归 范畴特征和连续特征

采用逐步回归拟合广义线性回归模型stepwiseglm.或者,您可以使用以下方法来拟合线性回归模型fitglm然后使用.逐步回归是一种基于解释响应变量的统计显著性对模型进行添加和删除的系统方法。

具体操作请参见功能参考页面stepwiseglm和这些主题:

stepwiselm*** 线性回归 范畴特征和连续特征

通过使用逐步回归拟合线性回归模型stepwiselm.或者,您可以使用以下方法来拟合线性回归模型菲特姆然后使用.逐步回归是一种基于解释响应变量的统计显著性对模型进行添加和删除的系统方法。

具体操作请参见功能参考页面stepwiselm和这些主题:

**对于基于树的算法,指定“预测器选择”作为“交互曲率”利用交互作用检验选择最佳的分离预测因子。在存在许多不相关变量的情况下,交互作用检验有助于识别重要变量。此外,如果训练数据包括许多预测器,则指定“NumVariablesToSample”作为“全部”进行训练。否则,软件可能不会选择一些预测因子,低估它们的重要性。有关详细信息,请参见菲茨特里菲特里,模板树

***stepwiseglmstepwiselm不是包装类型函数,因为您不能将它们用作另一个培训函数的包装。但是,这两个函数使用包装器类型算法来查找重要特征。

参考文献

[1] 盖恩、伊莎贝尔和A.伊莉舍夫。“变量和功能选择简介。”机器学习研究杂志。2003年第3卷,1157-1182页。

另见

(生物信息学工具箱)

相关的话题