1

我正在尝试应用具有 1700 个特征和 3300 个实例的数据集的特征选择。特征选择的方法之一是逐步回归。这是一种贪心算法,在每一轮中删除最差的特征。

我使用数据在 SVM 上的性能作为指标来找出最差的特征。第一次,我训练 SVM 1700 次,每次只保留一个特征。在此迭代结束时,我从集合中删除了该特征,该特征的删除导致了最高的 SVM 性能。所以我们现在剩下 1699 个特征。

第二次,我训练了 SVM 1699 次,每次都保留一个特征,以此类推。

如果我想将数据集减少到 100 个特征,那么这个程序将训练一个 SVM(1700!-100!)次。这是棘手的。有关如何避免此类问题的任何建议?

4

1 回答 1

2

我将首先说您可能想要考虑不同的算法,例如使用 infogain。

但是,要回答这个问题:您可以尝试在每次迭代中消除多个特征;从消除许多特征开始,随着你的进步减少这个数字。

例如,在第一次运行(1700 个 SVM 训练)之后,不是只消除一个特征,而是消除最差的 200 个特征,然后重复 1500 个,等等。当你达到 300 个特征时,每次开始消除 10 个;然后在每次迭代后从 150 到 100 只消除一个。这将需要“仅”训练一个 SVM 大约 20K 次。如果仍然太多,您可以增加数字。我推测结果将非常相似,或者至少不会比按照您的建议运行差很多。

于 2013-06-05T10:46:20.263 回答