本节介绍了特征选择算法,并介绍了Statistics和Machine Learning Toolbox™中提供的特征选择功能。
特征选择通过只选择测量特征的子集(预测变量)来创建模型,从而降低数据的维数。特征选择算法搜索预测器的子集,这些预测器最优地模型测量响应,受到诸如所需或排除的特征和子集的大小等限制。特征选择的主要好处是提高预测性能,提供更快、更划算的预测器,并更好地理解数据生成过程[1].使用过多的特征会降低预测性能,即使所有特征都是相关的,并且包含关于响应变量的信息。
可以将特征选择算法分为三类:
过滤类型特征选择-过滤器类型特征选择算法基于特征的特征,如特征方差和特征与响应的相关性,度量特征的重要性。您选择重要的特性作为数据预处理步骤的一部分,然后使用所选的特性训练模型。因此,滤波器类型特征选择与训练算法不相关。
包装器类型特征选择-包装器类型特征选择算法使用特征子集开始训练,然后使用选择标准添加或删除特征。选择标准直接度量由于添加或删除特性而导致的模型性能变化。该算法重复训练和改进模型,直到满足模型的停止条件。
嵌入式类型特征选择-嵌入式类型特征选择算法学习特征的重要性,作为模型学习过程的一部分。一旦您训练了一个模型,您就可以获得训练模型中特征的重要性。这种算法选择适合特定学习过程的特征。
此外,还可以根据算法是否按顺序对特征进行排序,对特征选择算法进行分类。最小冗余最大相关性(MRMR)算法和逐步回归算法是序列特征选择算法的两个例子。有关详细信息,请参见连续的特征选择.
您可以通过创建部分依赖图(PDP)和单个条件期望图(ICE)直观地比较预测变量的重要性。有关详细信息,请参见plotPartialDependence
.
对于分类问题,在选择特征之后,您可以训练两个模型(例如,一个完整的模型和一个用预测器子集训练的模型),并使用compareHoldout
,testcholdout
,或testckfold
功能。
当原始特征及其单元是重要的,且建模目标是识别有影响的子集时,特征选择优于特征变换。当分类特征存在,而数值变换不恰当时,特征选择成为降维的主要手段。
统计和机器学习工具箱提供了几个功能的特征选择。根据问题和特性的数据类型选择适当的特性选择函数。
函数 | 金宝app支持问题 | 金宝app支持的数据类型 | 描述 |
---|---|---|---|
fscchi2 |
分类 | 范畴特征和连续特征 | 使用单个卡方检验检验每个预测变量是否独立于响应变量,然后使用p卡方检验统计量的值。 例如,请参阅函数参考页面 |
fscmrmr |
分类 | 范畴特征和连续特征 | 使用的排序功能MRMR (Minimum Redundancy Maximum Relevance)算法. 例如,请参阅函数参考页面 |
fscnca * |
分类 | 连续的特性 | 利用对角自适应邻域分量分析(NCA)确定特征权重。这种算法最适用于基于距离的监督模型的特征重要性估计,该模型使用观察之间的成对距离来预测响应。 具体操作请参见功能参考页面 |
fsrftest |
回归 | 范畴特征和连续特征 | 检查每个预测的重要性单独使用F-test,然后使用p值的F以及统计数据。每一个F-test检验按预测变量值分组的响应值是从具有相同均值的总体中提取的假设,而另一种假设是总体均值不都相同。 例如,请参阅函数参考页面 |
fsrnca * |
回归 | 连续的特性 | 利用对角自适应邻域分量分析(NCA)确定特征权重。这种算法最适用于基于距离的监督模型的特征重要性估计,该模型使用观察之间的成对距离来预测响应。 具体操作请参见功能参考页面 |
fsulaplacian |
无监督学习 | 连续的特性 | 使用拉普拉斯算子的分数. 例如,请参阅函数参考页面 |
relieff |
分类和回归 | 要么是所有的范畴特征,要么是所有的连续特征 | 使用ReliefF算法的分类和RReliefF回归算法。这种算法最适用于基于距离的监督模型的特征重要性估计,该模型使用观察之间的成对距离来预测响应。 例如,请参阅函数参考页面 |
sequentialfs |
分类和回归 | 要么是所有的范畴特征,要么是所有的连续特征 | 使用自定义条件按顺序选择特性。定义一个函数来测量数据的特征以选择特征,并将函数句柄传递给 |
你也可以考虑fscnca
和fsrnca
作为嵌入式类型特征选择函数,因为它们返回一个训练过的模型对象,你可以使用对象函数预测
和损失
.但是,通常使用这些对象函数来调优算法的正则化参数。选择功能后使用fscnca
或fsrnca
函数作为数据预处理步骤的一部分,您可以为您的问题应用另一种分类或回归算法。
函数 | 金宝app支持问题 | 金宝app支持的数据类型 | 描述 |
---|---|---|---|
sequentialfs |
分类和回归 | 要么是所有的范畴特征,要么是所有的连续特征 | 使用自定义条件按顺序选择特性。定义一个实现监督学习算法的函数或一个衡量学习算法性能的函数,并将函数句柄传递给 例如,请参阅函数参考页面 |
函数 | 金宝app支持问题 | 金宝app支持的数据类型 | 描述 |
---|---|---|---|
DeltaPredictor 财产的ClassificationDiscriminant 模型对象 |
线性判别分析分类 | 连续的特性 | 使用。创建线性判别分析分类器 例如,请参阅以下主题: |
fitcecoc 与templateLinear |
用高维数据进行多类学习的线性分类 | 连续的特性 | 利用。训练线性分类模型 例如,请参见使用交叉验证找到好的套索惩罚.这个例子通过使用不同的强度值来评估模型来确定一个好的套索惩罚强度 |
fitclinear |
基于高维数据的二元学习的线性分类 | 连续的特性 | 利用。训练线性分类模型 例如,请参见使用交叉验证的AUC找到好的套索惩罚.这个例子通过使用AUC值来评估具有不同强度值的模型来确定一个良好的套索惩罚强度。使用。计算交叉验证的后验类概率 |
fitrgp |
回归 | 范畴特征和连续特征 | 利用该方法训练高斯过程回归(GPR)模型 例如,请参阅以下主题: |
fitrlinear |
高维数据的线性回归 | 连续的特性 | 用。训练线性回归模型 例如,请参阅以下主题: |
套索 |
线性回归 | 连续的特性 | 用。训练线性回归模型套索正则化使用 例如,请参阅函数参考页面 |
lassoglm |
广义线性回归 | 连续的特性 | 用。训练广义线性回归模型套索正则化使用 具体操作请参见功能参考页面 |
oobPermutedPredictorImportance * *的ClassificationBaggedEnsemble |
使用袋装决策树(例如,随机森林)进行分类 | 范畴特征和连续特征 | 使用树学习器训练袋式分类集成 例如,请参阅函数参考页面和主题 |
oobPermutedPredictorImportance * *的RegressionBaggedEnsemble |
使用袋装决策树(例如,随机森林)集成的回归 | 范畴特征和连续特征 | 使用树学习器训练袋式回归集成 例如,请参阅函数参考页面 |
predictorImportance * *的ClassificationEnsemble |
用决策树集合进行分类 | 范畴特征和连续特征 | 利用树学习器训练分类集成 例如,请参阅函数参考页面 |
predictorImportance * *的ClassificationTree |
使用决策树进行分类 | 范畴特征和连续特征 | 使用 例如,请参阅函数参考页面 |
predictorImportance * *的RegressionEnsemble |
决策树集合的回归 | 范畴特征和连续特征 | 使用树学习器训练回归集成 例如,请参阅函数参考页面 |
predictorImportance * *的RegressionTree |
决策树回归 | 范畴特征和连续特征 | 使用 例如,请参阅函数参考页面 |
stepwiseglm *** |
广义线性回归 | 范畴特征和连续特征 | 采用逐步回归拟合广义线性回归模型 具体操作请参见功能参考页面 |
stepwiselm *** |
线性回归 | 范畴特征和连续特征 | 采用逐步回归拟合线性回归模型 具体操作请参见功能参考页面 |
**对于基于树的算法,指定“PredictorSelection”
作为“interaction-curvature”
利用交互作用检验选择最佳的分离预测因子。在存在许多不相关变量的情况下,交互作用检验有助于识别重要变量。此外,如果训练数据包括许多预测器,则指定“NumVariablesToSample”
作为“所有”
进行训练。否则,软件可能不会选择一些预测因子,低估它们的重要性。有关详细信息,请参见fitctree
,fitrtree
,templateTree
.
***stepwiseglm
和stepwiselm
不是包装器类型函数,因为不能将它们用作另一个训练函数的包装器。但是,这两个函数使用包装器类型算法来查找重要的特性。
盖恩,伊莎贝尔和A. Elisseeff。"变量和特征选择的介绍"机器学习研究杂志。2003年第3卷,1157-1182页。
rankfeatures
(生物信息学工具箱)