主要内容

顺序

使用自定义标准的序列特征选择

语法

inmodel=顺序FS(有趣,X,y)
inmodel=顺序FS(有趣,X,Y,Z,…)
[inmodel,history]=顺序FS(fun,X,…)
[]=顺序FS(。。。,param1,瓦尔1,param2,瓦尔2,...)

描述

inmodel=顺序FS(有趣,X,y)从数据矩阵中选择要素的子集X这最能预测未来的数据Y通过连续选择特征,直到预测没有改善。一排X符合观察结果;列对应于变量或特征。Y是中每个观察值的响应值或类标签的列向量X.XY必须具有相同的行数。享乐是一个函数句柄,用于定义用于选择特征和确定何时停止的标准。输出inmodel是一个逻辑向量,指示最终选择的特征。

从一个空的要素集开始,顺序通过顺序添加每个尚未选择的特征来创建候选特征子集。对于每个候选特征子集,顺序通过重复调用执行10次交叉验证享乐具有不同训练子集的XY,XTRAIN,以及XY,克斯特伊泰斯特,详情如下:

标准=乐趣(XTRAIN、ytrain XTEST、欧美)

XTRAIN包含的行的相同子集XY虽然克斯特伊泰斯特包含行的互补子集。XTRAIN克斯特包含从的列中获取的数据X对应于当前候选特征集的。

每叫一次,,享乐必须返回标量值标准典型的享乐使用XTRAIN训练或拟合模型,然后预测克斯特使用该模型,并最终返回某种距离度量,或丧失,其中伊泰斯特. 在给定候选特征集的交叉验证计算中,顺序对返回的值求和享乐并将该总和除以测试观察的总数,然后使用该平均值来评估每个候选特征子集。

典型的损失度量包括回归模型的平方误差之和(顺序计算本例中的均方误差)和分类模型的误分类观察数(顺序计算本例中的误分类率)。

笔记

顺序除以返回的值之和享乐通过所有测试集的测试观察总数。相应地,享乐不应将其输出值除以试验观察值的数量。

在计算平均数之后标准每个候选特征子集的值,顺序选择最小化平均标准值的候选特征子集。此过程将继续,直到添加更多功能不会降低标准。

inmodel=顺序FS(有趣,X,Y,Z,…)允许任意数量的输入变量X,Y,Z, ... .顺序仅从中选择要素(列)X,但在其他方面,对X,Y,Z,…所有数据输入,无论是列向量还是矩阵,都必须具有相同的行数。顺序电话享乐具有的训练和测试子集X,Y,Z,…内容如下:

标准=乐趣(XTRAIN,YTRAIN,ZTRAIN,…,XTEST,YTEST,ZTEST,…)

顺序创造XTRAIN,,ZTRAIN, ... ,克斯特,伊泰斯特,ZTEST,…通过选择X,Y,Z, ... .享乐必须返回标量值标准,但可以以任何方式计算该值。逻辑向量的元素inmodel对应于X并指出最终选择的功能。

[inmodel,history]=顺序FS(fun,X,…)返回关于在每个步骤中选择哪个功能的信息。历史是具有以下字段的标量结构:

  • 暴击-包含每一步计算的标准值的向量。

  • 在里面-一个逻辑矩阵,其中一行指示在步骤中选择的特征.

[]=顺序FS(。。。,param1,瓦尔1,param2,瓦尔2,...)从下表中指定可选参数名称/值对。

参数 价值
“cv”

用于计算每个候选特征子集的标准的验证方法。

  • 当值为正整数时K,顺序使用K-无分层的折叠交叉验证。

  • 当值是CVD分区类,则可以指定其他形式的交叉验证。

  • 当值为“重新替代”,原始数据将传递给享乐作为训练和测试数据来计算标准。

  • 当值为“没有”,顺序电话享乐标准=乐趣(X,Y,Z,…),而不分离测试集和训练集。

默认值为10即10倍交叉验证,无分层。

所谓的包装方法使用函数享乐实现了一个学习算法。这些方法通常应用交叉验证来选择特征。所谓的过滤方法使用函数享乐它测量数据的特征(如相关性)以选择特征。

“麦克雷普斯”

一个正整数,指示交叉验证的蒙特卡罗重复次数。默认值为1.。值必须为1.如果“cv”“重新替代”“没有”.

“方向”

顺序搜索的方向。默认值为“前进”.价值“向后”指定初始候选集,包括所有特征和一个算法,该算法按顺序删除特征,直到标准增加。

“keepin”

逻辑向量或列编号向量,用于指定必须包含的特征。默认值为空。

“禁入”

逻辑向量或列编号向量,指定必须排除的特征。默认值为空。

“nfeatures”

所使用的功能的数量顺序应该停止。inmodel包含这么多功能。默认值为空,表示顺序应在找到条件的局部最小值时停止。非空值将覆盖的值“MaxIter”“托尔芬”在里面“选项”.

“零模式”

逻辑值,指示空模型(不包含来自X)应包括在特征选择和历史输出。默认值为错误的.

“选项”

迭代顺序搜索算法的选项结构,由创建斯塔塞特.

顺序使用以下命令斯塔塞特参数:

  • 陈列—按算法显示的信息量。默认值是“关”.

  • 麦克斯特-允许的最大迭代次数。默认值为Inf.

  • 托尔芬-目标函数值的终止公差。默认值为1e-6如果“方向”“前进”;0如果“方向”“向后”.

  • 托尔泰芬-使用绝对或相对目标函数公差。默认值为“rel”.

  • 使用并行-着手符合事实的并行计算。默认值为错误的.

  • 使用子流-着手符合事实的以可复制的方式并行计算。默认为错误的.要重复计算,请设置对于允许子流的类型:“mlfg6331_64”“mrg32k3a”.

  • -A兰德斯特朗对象或由一个这样的对象组成的单元格数组。如果未指定,顺序使用默认流。

要并行计算,您需要并行计算工具箱™.

例子

执行顺序特征选择以分类有噪声的特征:

加载Fisherris rng(“默认值”)%以获得再现性X=randn(150,10);X(:,[1 3 5 7])=MEA;y=物种;c=Cv(y,'k',10);opts=statset('Display','iter');fun=@(XT,yT,XT,yT)损失(fitcecoc(XT,yT),XT,yT);[fs,history]=sequentialfs(fun,X,y,'cv',c,'options',opts)开始前向顺序特征选择:包含初始列:无不能包含的列:无步骤1,添加列5,标准值0.002667步骤2,添加列7,标准值0.0022222步骤3,添加列1,标准值0.00177778步骤4,添加列3,标准值0.000888889包含的最终列:1 3 5 7 fs=1×10逻辑数组1 0 1 0 0 0 0 0历史=带字段的结构:In:[4×10逻辑]标准:[0.0027 0.0022 0.0018 8.8889e-04]历史。In ans=4×10逻辑数组0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0

扩展能力

2008年推出