【问题标题】:Machine learning task: what tool to use?机器学习任务:使用什么工具?
【发布时间】:2012-01-27 06:50:27
【问题描述】:

我目前正在试验一项涉及分类模型监督训练的机器学习任务。 迄今为止,我有大约 500 万个训练示例和大约 500 万个用于交叉验证的示例。目前,每个示例都有 46 个特征,但我可能希望在不久的将来再生成 10 个特征,因此任何解决方案都应该留有改进的空间。

我的问题如下:我用什么工具来解决这个问题?我想使用随机森林或 SVM,但我担心后者在我的情况下可能太慢了。我考虑过 Mahout,但拒绝了,因为它似乎需要一定数量的配置以及与命令行脚本混淆。我宁愿直接针对一些(有据可查的!)库编写代码,或者使用 GUI 定义我的模型。

我还应该说明我正在寻找可以在 Windows 上运行的东西(没有 cygwin 之类的东西),并且非常感谢与 .NET 配合使用的解决方案。

您可以想象,当时机成熟时,代码将在Amazon EC2 上的 Cluster Compute Eight Extra Large Instance 上运行,因此任何广泛使用 RAM 和多核 CPU 的东西很受欢迎。

最后但同样重要的是,我将指定我的数据集是密集的(因为没有缺失值/所有列都有每个向量的值)

【问题讨论】:

  • 有无数可用的工具(首先,请参阅 KDnuggets 上的软件列表:kdnuggets.com/software/index.html)。尽管您的问题描述消除了其中一些问题,但仍有一些可能就足够了。我不确定您所说的“与 .NET 兼容”到底是什么意思,但任何有价值的工具都应该提供模型的报告或源代码,这些代码可以很容易地转换为 .NET 代码。
  • 感谢您的链接,写完后会立即查看。至于与 .NET 一起玩得好,这意味着具有可编程接口来启动工作的东西,或者甚至是 .NET 库(或可用的包装器)比没有的东西更可取。

标签: amazon-ec2 cloud machine-learning classification


【解决方案1】:

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

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

【讨论】:

  • 为什么要使用这个特殊的工具?有几十个候选人:是什么让这个脱颖而出?
  • @Predictor,这是我用过的,我用过的,我用过的,效果很好的。另外,就我个人而言,我是第一个提到他需要的技术工具(随机梯度下降)的人。此外,首先提到他可以在笔记本电脑上处理这种规模,并且不需要 EC2 集群。
  • 我看到这个答案是 1.5 岁左右。 vowpal wabbit 已移植到 windows,7.x 版不应该在 windows 上构建得很好。
  • @arielf:我已经稍微编辑了答案。据我所知,这是目前的状态。
【解决方案2】:

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

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

如果你想要极高的性能,那么 Vowpal Wabbit 更适合(但它只支持广义线性学习器,所以不支持 gbmRandom Forest。)此外,VW 对 Windows 不太友好。

【讨论】:

    猜你喜欢
    • 2022-10-17
    • 2014-10-21
    • 2018-01-19
    • 2011-06-04
    • 1970-01-01
    • 2010-12-20
    • 2016-05-18
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多