大规模机器学习

我需要在一个大型数据集(100亿到1000亿条记录)上运行各种机器学习技术。这些问题主要围绕文本挖掘/信息提取,包括各种核技术,但不限于此(我们使用了一些贝叶斯方法、自助法、梯度提升、回归树——许多不同的问题和解决方法)。

什么是最佳实现?我在机器学习方面经验丰富,但对如何处理大型数据集没有太多经验。有没有可扩展和可定制的利用MapReduce基础设施的机器学习库?强烈偏好C++,但Java和Python也可以。亚马逊、Azure还是自己的数据中心(我们负担得起)?


回答:

除非您尝试学习的分类状态空间非常大,否则我认为在专注于文本挖掘的数据集中,100亿到1000亿条记录或训练样本中存在显著的冗余。粗略估计,我怀疑只需要1-2%的随机样本子集就能学习到在交叉验证测试中表现良好的可靠分类器。

快速的文献搜索找到了以下相关论文。Tsang的论文声称对于n个训练样本,时间复杂度为O(n),并且有相关的软件可用,即LibCVM工具包。Wolfe的论文描述了一种基于MapReduce的分布式EM方法。

最后,在NIPS 2009会议上有一个大规模机器学习研讨会,看起来有很多有趣且相关的演讲。

参考文献

Ivor W. Tsang, James T. Kwok, Pak-Ming Cheung (2005). “核心向量机:在非常大的数据集上快速训练SVM“, 机器学习研究杂志, 第6卷, 第363-392页。

J Wolfe, A Haghighi, D Klein (2008). “完全分布式的EM方法用于非常大的数据集“, 第25届国际机器学习会议论文集, 第1184-1191页。

Olivier Camp, Joaquim B. L. Filipe, Slimane Hammoudi and Mario Piattini (2005). “使用支持向量机算法挖掘非常大的数据集“, 企业信息系统V, 荷兰Springer出版社, 第177-184页。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注