使用自定义标准的序列特征选择
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
.X
和Y
必须具有相同的行数。享乐
是一个函数句柄,用于定义用于选择特征和确定何时停止的标准。输出inmodel
是一个逻辑向量,指示最终选择的特征。
从一个空的要素集开始,顺序
通过顺序添加每个尚未选择的特征来创建候选特征子集。对于每个候选特征子集,顺序
通过重复调用执行10次交叉验证享乐
具有不同训练子集的X
和Y
,XTRAIN
和钇
,以及X
和Y
,克斯特
和伊泰斯特
,详情如下:
标准=乐趣(XTRAIN、ytrain XTEST、欧美)
XTRAIN
和钇
包含的行的相同子集X
和Y
虽然克斯特
和伊泰斯特
包含行的互补子集。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” |
用于计算每个候选特征子集的标准的验证方法。
默认值为 所谓的包装方法使用函数 |
“麦克雷普斯” |
一个正整数,指示交叉验证的蒙特卡罗重复次数。默认值为 |
“方向” |
顺序搜索的方向。默认值为 |
“keepin” |
逻辑向量或列编号向量,用于指定必须包含的特征。默认值为空。 |
“禁入” |
逻辑向量或列编号向量,指定必须排除的特征。默认值为空。 |
“nfeatures” |
所使用的功能的数量 |
“零模式” |
逻辑值,指示空模型(不包含来自 |
“选项” |
迭代顺序搜索算法的选项结构,由创建
要并行计算,您需要并行计算工具箱™. |
执行顺序特征选择以分类有噪声的特征:
加载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