主要内容

sequentialfs

连续的特征选择使用自定义标准

语法

inmodel = sequentialfs(有趣,X, y)
inmodel = sequentialfs(有趣,X, Y, Z,…)
[inmodel、历史]= sequentialfs(有趣,X,…)
[]= sequentialfs (…param1,val1,param2,val2,……)

描述

inmodel = sequentialfs(有趣,X, y)选择一个数据矩阵的特征子集X最好的预测数据y通过按顺序选择功能,直到没有改善预测。行X对应于观测;列对应变量或特性。y是一个列向量的响应值或类标签对每个观察XXy必须有相同数量的行。有趣的是一个函数处理函数,定义了标准用于选择特性和确定何时停止。输出inmodel是一个逻辑向量表示特性最终选择。

从一个空的特性集,sequentialfs产生候选特征子集的顺序添加的每个特性尚未选定。对于每一个候选特征子集,sequentialfs通过反复调用执行10倍交叉验证有趣的不同的训练的子集Xy,XTRAINytrain和测试的子集Xy,XTEST欧美,如下所示:

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

XTRAINytrain包含相同的行子集XY,而XTEST欧美包含互补的行子集。XTRAINXTEST包含的列的数据X对应于当前候选特征集。

每一次,有趣的必须返回标量值吗标准。通常情况下,有趣的使用XTRAINytrain火车或适应一个模型,然后预测的值XTEST使用这种模式,最后返回一定的距离,或者损失这些预测值欧美。交叉验证计算给定候选特征集,sequentialfs返回的值有趣的和分裂的总数和测试观察。然后使用平均值来评估每个候选特征子集。

典型的损失措施包括回归模型的平方误差的总和(sequentialfs在这种情况下计算均方误差),观察对分类模型(分类错误的数量sequentialfs计算这种情况下的误分类率)。

请注意

sequentialfs将返回的值的总和有趣的在所有测试集的总数测试观察。因此,有趣的不应将其输出值除以试验观测的数量。

后计算均值标准值为每个候选特征子集,sequentialfs选择候选特征子集最小化准则的平均值。这一过程持续进行直到添加更多的功能不降低标准。

inmodel = sequentialfs(有趣,X, Y, Z,…)允许任意数量的输入变量X,Y,Z,……。sequentialfs只选择特性(列)X,但在其他方面强加任何解释X,Y,Z,……。所有数据输入,是否列向量或矩阵,必须有相同数量的行。sequentialfs调用有趣的训练和测试的子集X,Y,Z,……如下:

标准=乐趣(XTRAIN YTRAIN ZTRAIN,…,欧美XTEST中兴,…)

sequentialfs创建XTRAIN,YTRAIN,ZTRAIN,……,XTEST,欧美,中兴通讯,……通过选择的行子集X,Y,Z,……。有趣的必须返回标量值吗标准以任何方式,但可能计算这个值。元素的逻辑向量inmodel对应的列X并指出哪些特性最终选择。

[inmodel、历史]= sequentialfs(有趣,X,…)返回信息功能是选择的每一步。历史是一个标量结构有以下字段:

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

  • ——一个逻辑矩阵的行显示的特性选择步骤

[]= sequentialfs (…param1,val1,param2,val2,……)指定可选参数从下表名称/值对。

参数 价值
“简历”

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

  • 价值是一个正整数k,sequentialfs使用k没有分层倍交叉验证。

  • 的值是一个对象cvpartition可以指定类,其他形式的交叉验证。

  • 当价值“resubstitution”,原始数据传递有趣的训练和测试数据计算标准。

  • 当价值“没有”,sequentialfs调用有趣的作为标准=乐趣(X, Y, Z,…),没有分离测试和训练集。

默认值是10没有分层,即10倍交叉验证。

所谓的包装方法使用一个函数有趣的实现一个学习算法。这些方法通常应用交叉验证选择功能。所谓的过滤方法使用一个函数有趣的测量数据的特征(如相关)选择功能。

“mcreps”

一个正整数表示的数量蒙特卡罗重复交叉验证。默认值是1。的值必须1如果该值的“简历”“resubstitution”“没有”

“方向”

顺序搜索的方向。默认值是“前进”。的值“落后”指定一个初始候选集包括所有功能和顺序的算法,可去除特性直到标准也在不断增加。

“keepin”

一个逻辑向量或一个向量的列必须包含数字指定特性。默认是空的。

“禁入”

一个逻辑向量或一个向量的列数字指定的特性必须被排除在外。默认是空的。

“nfeatures”

特征的数量sequentialfs应该停止。inmodel包括这个很多特性。默认值为空,表示sequentialfs应该停止当一个局部最小值的标准。一个非空的值将覆盖的值“麦克斯特”“TolFun”“选项”

“nullmodel”

一个逻辑值,指示是否零模型(不含特性X)应该包含在特征选择和历史输出。默认值是

“选项”

选择结构迭代顺序搜索算法,由statset

sequentialfs使用以下statset参数:

  • 显示——数量的信息显示的算法。默认值是“关闭”

  • 麦克斯特——允许最大迭代数。默认值是

  • TolFun- - - - - -终止对目标函数的值。默认值是1 e-6如果“方向”“前进”;0如果“方向”“落后”

  • TolTypeFun——使用绝对或相对目标函数公差。默认值是“rel”

  • UseParallel——设置为真正的并行计算。默认是

  • UseSubstreams——设置为真正的以可再生的方式并行计算。默认是。计算重复性良好一种允许substreams:“mlfg6331_64”“mrg32k3a”

  • ——一个RandStream一个这样的对象的对象或单元阵列组成。如果你不指定,sequentialfs使用默认的流。

你需要并行计算,并行计算工具箱™。

例子

执行顺序的分类特征选择嘈杂的特点:

负载fisheriris rng(“违约”)%的再现性X = randn (150, 10);X(:[1 3 5 7]) =量;y =物种;c = cvpartition (y,“k”, 10);选择= statset(“显示”、“iter”);XT有趣= @ (XT,欧美,欧美)损失(fitcecoc (XT,欧美),XT,欧美);[fs,历史]= sequentialfs(有趣,X, y,“简历”,c,“选项”,选择)开始向前连续特征选择:最初的列包括:没有列不能包括:步骤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.8889 e-04)的历史。逻辑阵列ans = 4×10 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

扩展功能

介绍了R2008a