使用自定义标准的顺序特征选择
Inmodel = sequentialfs(乐趣,x,y)
inmodel = sequentialfs(有趣,X, Y, Z,…)
[Inmodel,历史] = SequentialFs(有趣,x,...)
[] = sequentialfs(…参数1
,val1
,参数2
,val2
,......)
Inmodel = sequentialfs(乐趣,x,y)
从数据矩阵中选择特征的子集X
最好的预测数据y
通过顺序选择特征,直到预测没有改善。行X
对应观察;列对应于变量或功能。y
是每个观察的响应值或类标签的列向量X
.X
和y
必须有相同的行数。乐趣
是函数的句柄,该函数定义用于选择特性和确定何时停止的标准。输出inmodel.
是一个指示最终选择哪些功能的逻辑向量。
从一个空白的特性集开始,序列
通过依次添加尚未选择的每个特征,创建候选特征子集。对于每个候选特征子集,序列
通过重复调用执行10次交叉验证乐趣
用不同的训练子集X
和y
,XTRAIN
和ytrain
和测试子集X
和y
,XTEST
和欧美
, 如下:
标准=乐趣(XTRAIN、ytrain、XTEST、ytest)
XTRAIN
和ytrain
的行的相同子集X
和Y
,而XTEST
和欧美
包含行的补子集。XTRAIN
和XTEST
包含从列中取出的数据X
对应于当前候选功能集。
每次被称为,乐趣
必须返回标量值标准
.通常,乐趣
使用XTRAIN
和ytrain
训练或适应一个模型,然后预测价值XTEST
使用该模型,最后返回一些距离的度量,或损失的预测值欧美
.在给定候选功能集的交叉验证计算中,序列
将返回的值相加乐趣
然后把这个和除以测试观察的总数。然后,它使用该平均值来评估每个候选特征子集。
典型的损失测量包括回归模型的误差平方和(序列
在这种情况下计算平均平方误差),以及分类模型的错误分类观测的数量(序列
在这种情况下计算错误分类率)。
请注意
序列
将返回值的和除以乐趣
通过测试观察的总数跨所有测试集。因此,乐趣
不应将其输出值除以测试观测的数量。
计算平均后标准
每个候选特征子集的值,序列
选择候选功能子集最小化平均标准值。此过程继续,直到添加更多功能不会降低标准。
inmodel = sequentialfs(有趣,X, Y, Z,…)
允许任意数量的输入变量X
,Y
,Z
,……。序列
只从中选择特性(列)X
,但否则没有解释X
,Y
,Z
,……。所有数据输入,无论是列向量还是矩阵,都必须具有相同的行数。序列
调用乐趣
与训练和测试子集X
,Y
,Z
, ... 如下:
标准=乐趣(XTRAIN YTRAIN ZTRAIN,…,欧美XTEST中兴,…)
序列
创造XTRAIN
,ytrain.
,Ztrain
,……,XTEST
,ytest.
,中兴通讯
,……的行子集X
,Y
,Z
,……。乐趣
必须返回标量值标准
,但可能以任何方式计算该价值。逻辑向量的元素inmodel.
对应于X
并指出最终选择了哪些功能。
[Inmodel,历史] = SequentialFs(有趣,x,...)
返回每个步骤中选择哪个功能的信息。历史
是一个标量结构,具有以下字段:
填料
- 包含在每个步骤中计算的标准值的向量。
在
- 一个逻辑矩阵,其中行我
指示在步骤中选择的特征我
.
[] = sequentialfs(…
指定下表中的可选参数名称/值对。参数1
,val1
,参数2
,val2
,......)
参数 | 价值 |
---|---|
“简历” |
验证方法用于计算每个候选特征子集的准则。
默认值为 所谓的包装方法使用功能 |
'mcreps' |
一个正整数,表示交叉验证的蒙特卡罗重复次数。默认值为 |
'方向' |
顺序搜索的方向。默认值是 |
“keepin” |
逻辑向量或列号的矢量指定必须包含的功能。默认值为空。 |
“禁止” |
逻辑矢量或列号的矢量指定必须排除的功能。默认值为空。 |
'nfeatures' |
特征的数量 |
“零模式” |
一个逻辑值,指示空模型(不包含来自 |
'选项' |
迭代顺序搜索算法的选项结构,由创建的
要并行计算,您需要parallel Computing Toolbox™。 |
对嘈杂功能进行分类执行顺序特征选择:
加载Fisheriris rng('默认')%以获得再现性x = RANDN(150,10);x(:,[1 3 5 7])= MEA;y =物种;c = cvpartition(y,'k',10);opts = statset('显示','iter');fun = @(xt,yt,xt,yt)损失(fitcecoc(xt,yt),xt,yt);[FS,历史] =顺序(乐趣,x,y,'cv',c,'选项',opts)启动前向顺序特征选择:包含初始列:无列表,无法包含:无步骤1,添加列5,标准值0.00266667,添加柱7,标准值0.00222222步骤3,添加列1,标准值0.00177778步骤4,添加第3列,标准值为0.000888889包括:1 3 5 7 fs = 1×10逻辑阵列1 0 1 0 1 0 1 0 0 0历史=带字段的结构:在:[4×10逻辑] CRIT:[0.0027 0.0022 0.0018 8.8889E-04]历史。在ans = 4×10逻辑阵列0 0 0 0 10 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0