3

如果我想使用太大而无法放入内存的矩阵进行大量数据拟合,我会研究哪些工具/库?具体来说,如果我通常使用 php+mysql 从网站上运行数据,你会如何建议制作一个可以在合理时间内运行大型矩阵运算的离线进程?

可能的答案可能是“你应该使用这种语言和这些分布式矩阵算法在许多机器上映射 reduce”。我想 php 不是最好的语言,所以流程更像是其他一些离线进程从数据库中读取数据,进行学习,并以 php 以后可以使用的格式存储规则(因为网站的其他部分是用 php 构建的)。

不确定这是否是问这个问题的正确地方(会在机器学习 SE 中问它,但它从未退出测试版)。

4

2 回答 2

3

There are lots of things that you need to do if you want to process large amounts of data. One way of processing web scale data is to use Map/Reduce and maybe you can look at Apache Mahout Which is a scalable machine learning package containing

  • Collaborative Filtering
  • User and Item based recommenders
  • K-Means, Fuzzy K-Means clustering
  • And many more.

Specifically what you want to do might be available in some opensource project, such as Weka but you might need to migrate/create code to do a distribute job.

Hope the above gives you an idea.

于 2012-04-27T09:32:06.480 回答
2

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

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

于 2012-04-28T15:15:25.460 回答