首页 > 解决方案 > 太多 for 循环迭代 - for 循环终止

问题描述

在分类任务中,我需要进行特征选择。所以出于featSize = 98特征(变量),我想知道哪些是适用的。对于每种组合,我通过调整其超参数来训练分类器。我在使用for循环时遇到了一个问题:

  for b = 1:(2^featSize) - 1
        % this is to choose the features. e.g. [1 0 0] selects the first
        % feature out of three features if featSize = 3.

end

Matlab 发出警告:Warning: Too many FOR loop iterations. Stopping after 9223372036854775806 iterations. 我是否for以禁止的方式使用循环?是否有另一种完成此步骤的替代方法?

标签: matlabmachine-learningclassificationfeature-selection

解决方案


为每个可能的特征组合建立模型是棘手的。从您的 for 循环中可以清楚地看出,您必须构建指数数量的模型来覆盖每个特征子集。

有许多实用的特征选择方法。与您的方法最相似的一种是前向选择。许多算法提供了一个正则化参数(例如 LASSO 或岭回归)。此处讨论了一些回归选项https://stats.stackexchange.com/questions/127444/a-guide-to-regularization-strategies-in-regression

本次演讲涵盖了特征选择问题的许多方法https://www.youtube.com/watch?v=JsArBz46_3s&index=21&list=PLGVZCDnMOq0ovNxfxOqYcBcQOIny9Zvb-&t=0s


推荐阅读