基于网络数据的大规模机器学习

3
如果我需要使用过大而无法放入内存的矩阵进行大量数据拟合,需要寻找哪些工具/库?具体而言,如果我通常在使用php + mysql从网站获取数据,如何建议制作一个脱机进程,可以在合理的时间内运行大型矩阵操作?
可能的答案可能是“您应该使用这种语言和这种分布式矩阵算法,在许多机器上执行映射减少” 。我想php不是这方面的最佳语言,因此流程更像是其他脱机进程从数据库中读取数据,进行学习,并将规则以php可以稍后利用的格式存储回来(由于网站的其他部分都是用php构建的)。
不确定这是否是正确的地方来发问(本来想在机器学习SE上提出这个问题,但它从未超出beta版)。

1
机器学习已经合并到交叉验证中。 - Quentin Pradet
2个回答

3
如果您想处理大量数据,有很多事情需要做。处理Web规模数据的一种方法是使用Map/Reduce,也许您可以看看Apache Mahout,它是一个可扩展的机器学习包,包含:
  • 协作过滤
  • 基于用户和项目的推荐
  • K-Means,Fuzzy K-Means聚类
  • 还有更多。
具体而言,您想要做的可能在某些开源项目中是可用的,例如Weka,但您可能需要迁移/创建代码以执行分布式作业。
希望以上内容能给您提供一些想法。

如果看起来有趣,那就太棒了。 - user349026

2

机器学习是一个广泛的领域,可以用于许多不同的事情(例如监督预测建模和无监督数据探索)。根据您想要实现的目标以及您的数据的性质和维度,找到可扩展的算法既有趣且输出模型的质量好,同时具有扩展利用大型训练集,预测时的速度和内存消耗的能力,这是一个不能一般地回答的难题。有些算法可扩展,因为它们是在线的(即增量学习而无需一次加载所有数据集),而其他算法则可分成子任务并在并行执行中执行)。这完全取决于您试图实现什么以及您过去收集/注释的数据类型。

例如,对于文本分类,使用好的特征(TF-IDF规范化,可选二元组和可选chi2特征选择)的简单线性模型如逻辑回归可以扩展到非常大的数据集(数百万个文档),而无需在集群上进行任何种类的并行化。请查看liblinear和vowpal wabbit以构建此类可扩展的分类模型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接