【问题标题】:matlab forward feature selectionmatlab前向特征选择
【发布时间】:2014-01-18 01:07:57
【问题描述】:

我使用matlabsequentialfs函数进行前向特征选择,代码如下。我多次重复运行相同的代码,我注意到结果大不相同。虽然每次运行的交叉验证不同(折叠数相同),但我认为选择的特征应该大致相同。有人可以帮忙解释一下吗?谢谢。

cp = cvpartition(label,'k',cvNum); % Stratified cross-validation

opts = statset('display','iter');
fun = @(XT,yT,Xt,yt)...
    (sum(yt ~= SVCpredict(Xt,yt,XT,yT)));

[fs,history] = sequentialfs(fun,data,label,'cv',cp,'options',opts);

【问题讨论】:

    标签: matlab machine-learning feature-selection


    【解决方案1】:

    如果您的数据包含一些具有高度预测性的变量,而另一些则根本不是很具有预测性,那么您会期望通过特征子集选择方法(例如 sequentialfs)选择的变量集在运行多个变量时相当稳定次随机交叉验证。

    但是,如果数据包含的变量的预测能力完全相等(尤其是没有一个预测能力很强的情况下),那么当使用随机交叉验证运行时,您会期望选择的变量集变化更大.

    因此,如果您选择了非常不同的变量,仅通过更改交叉验证折叠,这将证明您的数据不包含任何比其他变量更具预测性的特定变量子集。

    您可能会得出结论(尽管这是您的数据,所以您会比我更了解,这取决于上下文)特征子集选择不是最好的方法,并且其他形式的降维可能是更好(例如,如果您的数据是数字的,PCA)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 2013-04-17
      • 2013-02-20
      • 1970-01-01
      • 2013-02-21
      相关资源
      最近更新 更多