主要内容

特征选择简介

本主题介绍了特征选择算法,并描述了统计和机器学习工具箱™中可用的特征选择函数。

特征选择算法

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

你可以将特征选择算法分为三种:

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

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

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

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

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

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

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

特征选择功能

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

滤波器类型特征选择

函数 万博1manbetx支持问题 万博1manbetx支持数据类型 描述
fscchi2 分类 范畴性和连续性特征

使用单独的卡方检验检查每个预测变量是否独立于响应变量,然后使用卡方检验对特征进行排序p-卡方检验统计值。

有关示例,请参见函数参考页fscchi2

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

属性对特征进行排序最小冗余最大相关性(MRMR)算法

有关示例,请参见函数参考页fscmrmr

fscnca 分类 连续的特性

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

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

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

检查每个预测的重要性单独使用F-test,然后使用p的-值F以及统计数据。每一个F-test检验一个假设,即由预测变量值分组的响应值来自具有相同均值的总体,而另一个假设是总体均值不完全相同。

有关示例,请参见函数参考页fsrftest

fsrmrmr 回归 范畴性和连续性特征

属性对特征进行排序最小冗余最大相关性(MRMR)算法

有关示例,请参见函数参考页fsrmrmr

fsrnca 回归 连续的特性

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

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

fsulaplacian 无监督学习 连续的特性

使用拉普拉斯算子的分数

有关示例,请参见函数参考页fsulaplacian

relieff 分类与回归 要么全部范畴特征,要么全部连续特征

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

有关示例,请参见函数参考页relieff

sequentialfs 分类与回归 要么全部范畴特征,要么全部连续特征

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

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

包装器类型特征选择

函数 万博1manbetx支持问题 万博1manbetx支持数据类型 描述
sequentialfs 分类与回归 要么全部范畴特征,要么全部连续特征

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

有关示例,请参见函数参考页sequentialfs这些话题:

嵌入式类型特征选择

函数 万博1manbetx支持问题 万博1manbetx支持数据类型 描述
DeltaPredictor的属性ClassificationDiscriminant模型对象 线性判别分析分类 连续的特性

创建一个线性判别分析分类器fitcdiscr.经过训练的分类器,返回为ClassificationDiscriminant,将系数大小存储在DeltaPredictor财产。中的值可以使用DeltaPredictor作为预测者重要性的度量。这个分类器使用两个正则化参数识别并移除冗余预测因子。方法可以为这些参数获取适当的值cvshrink函数或“OptimizeHyperparameters”名称-值对参数。

有关示例,请参阅这些主题:

fitcecoctemplateLinear 用于高维数据多类学习的线性分类 连续的特性

训练线性分类模型fitcecoc线性二元学习器定义为templateLinear.指定“正规化”templatelinear作为“套索”使用套索正则化。

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

fitclinear 高维数据二值学习的线性分类 连续的特性

训练线性分类模型fitclinear.指定“正规化”fitclinear作为“套索”使用套索正则化。

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

fitrgp 回归 范畴性和连续性特征

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

有关示例,请参阅这些主题:

fitrlinear 高维数据的线性回归 连续的特性

训练线性回归模型fitrlinear.指定“正规化”fitrlinear作为“套索”使用套索正则化。

有关示例,请参阅这些主题:

套索 线性回归 连续的特性

训练线性回归模型套索使用正则化套索.方法指定套索与脊优化的权重“α”名称-值对参数。

有关示例,请参见函数参考页套索这些话题:

lassoglm 广义线性回归 连续的特性

训练广义线性回归模型套索使用正则化lassoglm.方法指定套索与脊优化的权重“α”名称-值对参数。

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

oobPermutedPredictorImportance* *的ClassificationBaggedEnsemble 使用袋装决策树集合进行分类(例如,随机森林) 范畴性和连续性特征

用树学习器训练袋装分类集合fitcensemble并指定“方法”作为“包”.然后,用oobPermutedPredictorImportance来计算袋外,预测器的重要性估计排列.该函数测量模型中的预测变量在预测响应时的影响程度。

有关示例,请参见函数参考页和主题oobPermutedPredictorImportance

oobPermutedPredictorImportance* *的RegressionBaggedEnsemble 使用袋装决策树集合的回归(例如,随机森林) 范畴性和连续性特征

用树学习器训练袋装回归集合fitrensemble并指定“方法”作为“包”.然后,用oobPermutedPredictorImportance来计算袋外,预测器的重要性估计排列.该函数测量模型中的预测变量在预测响应时的影响程度。

有关示例,请参见函数参考页oobPermutedPredictorImportance而且选择随机森林的预测器

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

用树学习器训练分类集合fitcensemble.然后,用predictorImportance计算估计预测的重要性对于集合,通过将每个预测器上的分裂导致的风险变化相加,并将总和除以分支节点的数量。

有关示例,请参见函数参考页predictorImportance

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

训练分类树fitctree.然后,用predictorImportance计算估计预测的重要性对于树,通过将每个预测器的分裂导致的风险变化相加,并将总和除以分支节点的数量。

有关示例,请参见函数参考页predictorImportance

predictorImportance* *的RegressionEnsemble 使用决策树集合的回归 范畴性和连续性特征

用树学习器训练一个回归集合fitrensemble.然后,用predictorImportance计算估计预测的重要性对于集合,通过将每个预测器上的分裂导致的风险变化相加,并将总和除以分支节点的数量。

有关示例,请参见函数参考页predictorImportance

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

使用训练回归树fitrtree.然后,用predictorImportance计算估计预测的重要性通过将每个预测器上的分裂导致的均方误差(MSE)的变化相加,并将总和除以分支节点的数量。

有关示例,请参见函数参考页predictorImportance

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

用逐步回归拟合广义线性回归模型stepwiseglm.或者,您可以使用拟合线性回归模型fitglm然后通过使用对模型进行调整一步.逐步回归是一种系统的方法,根据解释响应变量的统计显著性,在模型中添加和删除项。

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

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

用逐步回归拟合线性回归模型stepwiselm.或者,您可以使用拟合线性回归模型fitlm然后通过使用对模型进行调整一步.逐步回归是一种系统的方法,根据解释响应变量的统计显著性,在模型中添加和删除项。

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

**对于基于树的算法,请指定“PredictorSelection”作为“interaction-curvature”使用交互测试来选择最佳的分裂预测器。交互测试在存在许多不相关变量时识别重要变量是有用的。此外,如果训练数据包含许多预测因子,则指定“NumVariablesToSample”作为“所有”进行训练。否则,软件可能不会选择某些预测因子,从而低估了它们的重要性。详细信息请参见fitctreefitrtree,templateTree

***stepwiseglm而且stepwiselm不是包装器类型函数,因为不能将它们用作另一个训练函数的包装器。但是,这两个函数使用包装器类型算法来查找重要的特性。

参考文献

盖恩、伊莎贝尔和A.埃利塞夫。“变量和特征选择的介绍。”机器学习研究杂志。Vol. 3, 2003, pp. 1157-1182。

另请参阅

(生物信息学工具箱)

相关的话题