1

我正在尝试使用包中的rfe函数caret对属于大约 50 个不同类的 400 个变量运行特征选择,总共有 8000 个样本。如果我将我的数据子集为大约 5 个类和 10 个变量,那么一切正常。但是,当我包含整个数据集时,R 运行了大约 32 小时,然后我收到警告说R GUI has stopped working. 我尝试将我的数据子集为 100 个变量和 1000 个样本,同样的事情发生了。我尝试使用完全不同的 44 个变量数据集和属于 44 个类的大约 3000 个样本。然而,大约一天后,R 变得无响应并关闭。iris为了重现性,我在数据集上尝试了相同的代码:

iris$Species <- as.factor(as.character(iris$Species))
IND.svm <- rfe(iris[,-1],iris$Species,
               sizes = c(2, 5, 10,30),
               rfeControl = rfeControl(functions = caretFuncs,
                                       verbose = FALSE,number = 2000),
                                 method = "svmRadial")

我正在运行 Windows 7,因此无法使用推荐的doMC软件包。我在具有 32G RAM 的机器上使用了最新的 64 位 R 版本。仍然没有成功。有什么我在这里俯瞰的吗?

4

1 回答 1

1

我会说问题是你正在做2000个引导样本。假设参数tuneLength的值为T并且您正在测试 5 个子集大小。对于这些规范,您正在10000*T为具有 8000 个样本和 400 个变量的数据集拟合 SVM 模型。

也许我低估了它,但我通常不会做超过 50 次重采样(除非训练集真的很小)。您基本上是在尝试估计此处的平均值(与引导程序的更传统用途不同),并且 25 或 50 应该就足够了,尤其是对于该样本量。

请记住,rfe每次重采样都会复制整个特征选择过程,因此计算确实加起来了。

最大限度

于 2013-10-19T19:33:07.490 回答