【发布时间】:2015-02-16 22:20:15
【问题描述】:
我目前拥有的:
我有一个数据框,其中包含一列称为“类”的因子,其中包含 160 个不同的类。我有 1200 个变量,每个变量都是一个整数,并且没有单个单元格超过 1000 的值(如果有帮助的话)。大约 1/4 的单元格是数字零。总数据集包含 60,000 行。我已经使用了 nearZeroVar 函数和 findCorrelation 函数来得到这个变量的数量。在我的特定数据集中,一些单独的变量本身可能看起来并不重要,但在与其他两个变量结合时可能具有预测性。
我尝试过的:
首先我尝试创建一个随机森林模型,然后计划使用 varimp 属性过滤掉无用的东西,让它运行几天后放弃了。然后我尝试使用 fscaret,但它在具有 64GB RAM 的 8 核机器上运行了一夜(与之前的尝试相同)并且没有完成。然后我尝试了: Feature Selection using Genetic Algorithms 运行了一夜,也没有完成。我试图使主成分分析工作,但由于某种原因不能。我从来没有能够在 Caret 中成功地进行 PCA,这可能是我的问题和解决方案。我可以关注网络上所有的“玩具”演示示例,但我仍然认为我在我的案例中遗漏了一些东西。
我需要什么:
我需要一些方法来快速降低我的数据集的维度,以便我可以将其用于创建模型。也许一个好的起点是使用 PCA 和我的使用 Caret 的数据集的示例。当然,我很高兴听到任何其他可能让我摆脱我现在所处的流沙的想法。
【问题讨论】:
-
实际上有人投票结束这个问题,因为它是“离题”? “快速降低我的数据集的维数”的哪一部分不涉及编程?尤其是在我在 R 中列出了一些我尝试过的太慢的编程方法并明确表示我试图找到比那些更快的东西之后?
-
我知道你可能已经完成了你的任务,但是 - fscaret 不会在超过两个级别的因子上运行;尽管您可以尝试回归模型,而不是使用分类;还知道您可以限制单一模型开发的时间吗?如果您尝试设置
myTimeLimit = 1*60*60和no.cores=NULL(最好在 unix 系统上进行),它的运行时间不应超过 6 - 8 小时。