2011-12-24 52 views
6

我目前正在试验涉及分类模型监督训练的ML任务。到目前为止,我已经有了〜5M的训练实例和〜5M的交叉验证实例。目前,每个例子都有46个特征,但是我可能想在不久的将来再生成10个特征,所以任何解决方案都应该留出一些改进空间。机器学习任务:使用什么工具?

我的问题是以下几点:我用什么工具来解决这个问题?我想使用随机森林或SVM,但是我担心后者在我的情况下可能会太慢。我已经考虑过Mahout,但是因为它似乎需要一定量的配置以及与命令行脚本混杂在一起而转身离开。我宁愿直接针对一些(有据可查的!)库进行编码,或者用GUI来定义我的模型。

我还应该指出我正在寻找能够在Windows上运行的东西(没有诸如cygwin之类的东西),并且那些能够很好地与.NET搭配的解决方案非常值得赞赏。

你可以想象,到时候,来了,该代码将在Cluster Compute Eight Extra Large InstanceAmazon EC2运行,所以任何使用了大量的内存和多核CPU的欢迎。

最后但并非最不重要的,我要指定我的数据集就是密集的(在没有缺失值/所有列的值对每个向量)

+1

有许多工具可供使用(首先,请参阅KDnuggets上的软件列表:http://www.kdnuggets.com/software/index.html)。虽然你的问题描述消除了其中的一些,但仍有一些数字可以满足。我不确定你的意思是“与.NET一起玩好”,但是任何有价值的工具都应该提供模型的报告或源代码,这些代码可以很容易地转换为.NET代码。 – Predictor 2011-12-24 12:16:12

+0

感谢您的链接,一旦我写了这个,将尽快检查出来。至于与.NET的良好配合,这意味着某些具有可编程接口来启动这项工作,或者甚至是一个.NET库(或可用的包装器)的东西比其他东西更好。 – em70 2011-12-24 12:31:03

回答

2

我会建议看随机梯度下降对于这种规模的一个问题。一个好的工具是VowpalWabbit。在这个尺寸下,您可以使用合理的规格在桌面上运行实验。唯一的缺点是,我认为它不是以Windows为中心的,但尽管我没有检查它应该在cygwin上运行。

编辑:开发人员非常感兴趣的是让VowpalWabbit在Windows上运行。截至2013年3月,VowpalWabbit(7.2版)可以在Windows上运行。有几个高级/可选功能尚未在Windows上实现,其中一个将VowpalWabbit作为守护程序运行,但似乎将在短期内得到处理。

+1

为什么这个特定的工具?有几十个候选人:是什么让这个人超过其他人? – Predictor 2011-12-26 14:00:55

+1

@Predictor,那是我用过的那个,我有经验的那个,也是我用过的那个。另外,我个人首先提到他需要的技术工具(随机梯度下降)。另外,首先要提到的是,他可以在笔记本电脑上处理这种规模,并且不需要EC2集群。 – carlosdc 2011-12-26 14:49:15

+0

我看到这个答案是~1.5岁。 vowpal wabbit已经移植到windows上,并且版本7.x不应该在Windows上构建得很好。 – arielf 2013-03-26 17:51:50

3

我经常在EC2上的R上运行类似的行/特征数据集(如果您使用的方法可以利用多个cpus,例如,您可以使用16核/ 60 Gb实例类型,包caret)。正如你所提到的,并非所有的学习方法(如SVM)都会在这样的数据集上表现良好。

在切换到在完整数据集上运行之前,您可能需要考虑使用10%左右的样本进行快速原型/性能基准测试。

如果你想要非常高的性能,那么Vowpal Wabbit更适合(但它只支持广义线性学习器,所以没有gbmRandom Forest。)此外,大众不是非常适合Windows。