使用自定义标准的序列特征选择
inmodel = sequentialfs(有趣,X, y)
inmodel=顺序FS(有趣,X,Y,Z,…)
[inmodel、历史]= sequentialfs(有趣,X,…)
[]=顺序FS(。。。,param1
,瓦尔1
,param2
,瓦尔2
,……)
inmodel = sequentialfs(有趣,X, y)
从数据矩阵中选择特征的子集X
这最能预测未来的数据Y
通过顺序选择特征,直到预测没有改进。行X
对应于观测;列对应于变量或特性。Y
中每个观察的响应值或类标签的列向量X
.X
和Y
必须具有相同的行数。有趣的
是一个函数句柄,用于定义用于选择特征和确定何时停止的标准。输出inmodel
是一个逻辑向量,表示最终选择了哪些特征。
从一个空的要素集开始,sequentialfs
通过顺序添加每个尚未选择的特征来创建候选特征子集。对于每个候选特征子集,sequentialfs
通过重复调用执行10次交叉验证有趣的
的不同训练子集X
和Y
,XTRAIN
和钇
,和测试子集X
和Y
,克斯特
和伊泰斯特
,如下所示:
标准=乐趣(XTRAIN、ytrain XTEST、欧美)
XTRAIN
和钇
包含的行的相同子集X
和Y
虽然克斯特
和伊泰斯特
包含行的互补子集。XTRAIN
和克斯特
包含从列中获取的数据X
对应于当前候选特征集的。
每次它被调用时,有趣的
必须返回标量值标准
.通常情况下,有趣的
使用XTRAIN
和钇
训练或拟合模型,然后预测克斯特
使用那个模型,最终返回一些距离的度量,或者丧失,其中伊泰斯特
.在给定候选特征集的交叉验证计算中,sequentialfs
对返回的值求和有趣的
并将该总和除以测试观察的总数,然后使用该平均值来评估每个候选特征子集。
典型的损失度量包括回归模型的平方误差之和(sequentialfs
计算在这种情况下的均方误差),以及分类模型的误分类观测数(sequentialfs
计算本例中的误分类率)。
笔记
sequentialfs
除以返回的值之和有趣的
通过所有测试集的测试观察总数。相应地,有趣的
不应将其输出值除以测试观察的数量。
在计算平均值之后标准
每个候选特征子集的值,sequentialfs
选择最小准则均值的候选特征子集。这个过程会一直持续下去,直到添加更多的功能不会降低标准。
inmodel=顺序FS(有趣,X,Y,Z,…)
允许任意数量的输入变量X
,Y
,Z
, ... .sequentialfs
仅从中选择要素(列)X
,否则不予解释X
,Y
,Z
,…所有数据输入,无论是列向量还是矩阵,都必须具有相同的行数。sequentialfs
电话有趣的
具有的训练和测试子集X
,Y
,Z
,……如下:
标准=乐趣(XTRAIN,YTRAIN,ZTRAIN,…,XTEST,YTEST,ZTEST,…)
sequentialfs
创建XTRAIN
,YTRAIN
,ZTRAIN
, ... ,克斯特
,欧美
,ZTEST
,…通过选择X
,Y
,Z
, ... .有趣的
必须返回标量值标准
,但可以以任何方式计算这个值。逻辑向量的元素inmodel
对应于X
并指出最终选择的特征。
[inmodel、历史]= sequentialfs(有趣,X,…)
返回关于在每个步骤中选择的特性的信息。历史
是具有以下字段的标量结构:
暴击
-包含每一步计算的标准值的向量。
在
-一个逻辑矩阵,其中一行我
指示在步骤中选择的特征我
.
[]=顺序FS(。。。,
从下表中指定可选参数名称/值对。param1
,瓦尔1
,param2
,瓦尔2
,……)
参数 | 价值 |
---|---|
“cv” |
用于计算每个候选特征子集的标准的验证方法。
默认值为 所谓的包装方法使用一个函数 |
“mcreps” |
一个正整数,指示交叉验证的蒙特卡罗重复次数。默认值为 |
“方向” |
顺序搜索的方向。默认值为 |
“keepin” |
指定必须包含的特性的逻辑向量或列号向量。默认为空。 |
“禁入” |
指定必须排除的特性的逻辑向量或列号向量。默认为空。 |
“nfeatures” |
特征的数量 |
“nullmodel” |
逻辑值,指示空模型(不包含来自 |
“选项” |
为迭代顺序搜索算法的选项结构,由
要并行计算,您需要并行计算工具箱™. |
进行序列特征选择,对噪声特征进行分类:
可重复性X = randn(150,10);X(:,[1 3 5 7])= meas;y =物种;c = cvpartition (y,“k”,10);选择= statset(“显示”、“iter”);XT有趣= @ (XT,欧美,欧美)损失(fitcecoc (XT,欧美),XT,欧美);[fs,history] = sequentialfs(fun,X,y,'cv',c,'options',opts)步骤1,添加列5,则值0.00266667步骤2,添加列7,则价值0.00222222步骤3,添加列1,标准价值0.00177778步骤4,第三列,则价值0.000888889最后一列包括:1 3 5 7 fs = 1×10逻辑数组1 0 1 0 1 0 1 0 0 0 =历史结构体字段::[4×10逻辑]致命一击:[0.0027 0.0022 0.0018 8.8889e-04]历史。在ans = 4×10 logical array 0 0 0 0 1 0 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