我目前正在尝试一项涉及分类模型的监督培训的ML任务。 到目前为止,我已经获得了大约500万个培训示例和大约500万个交叉验证示例。目前,每个示例都有46个功能,但我可能希望在不久的将来再生成10个功能,因此任何解决方案都应留有一些改进空间。
我的问题如下:我用什么工具来解决这个问题?我想使用随机森林或SVM,但我担心后者可能在我的情况下太慢了。我已经考虑了Mahout,但是因为看起来需要一定的配置以及搞乱命令行脚本而转过身去。我宁愿直接对某些(记录良好的!)库进行编码,也可以使用GUI定义我的模型。
我还应该指明我正在寻找可以在Windows上运行的东西(没有像cygwin这样的东西),并且非常感谢那些与.NET兼容的解决方案。
您可以想象,当时间到来时,代码将在Cluster Compute Eight Extra Large Instance上的 Amazon EC2 上运行,因此任何广泛使用RAM和欢迎使用多核CPU。
最后但并非最不重要的是,我将指定我的数据集是密集的(因为没有缺失值/所有列都有每个向量的值)
答案 0 :(得分:3)
我经常在EC2上的R
中运行类似的行/要素计数数据集(如果您使用的方法可以利用多个,那么您所指的16核/ 60 Gb实例类型特别有用cpus,例如package caret
。)正如您所提到的,并非所有学习方法(例如SVM)都会在这样的数据集上表现良好。
在切换到在完整数据集上运行之前,您可能需要考虑使用10%左右的样本进行快速原型设计/性能基准测试。
如果你想要极高的性能,那么Vowpal Wabbit更适合(但它只支持广义线性学习者,所以没有gbm
或Random Forest
。)此外,大众对Windows不友好。< / p>
答案 1 :(得分:2)
我建议考虑这个问题的随机梯度下降。一个很好的工具是VowpalWabbit。在这个尺寸下,您可以在具有合理规格的桌面上运行您的实验。对我来说唯一的缺点是,我认为它不是以Windows为中心的,但是我没有检查它应该在cygwin上运行。
编辑:开发人员非常感兴趣让VowpalWabbit在Windows上运行。截至2013年3月,VowpalWabbit(版本7.2)在Windows上开箱即用。还有一些尚未在Windows上实现的高级/可选功能,其中一个功能是将VowpalWabbit作为守护进程运行,但它似乎将在短期内得到处理。