【发布时间】:2015-03-24 18:18:52
【问题描述】:
我在机器学习和聚类分析方面不是很有经验,但我有以下问题:
我有大约 100kk-1000kk 条数据,我无法一次将其全部加载到内存中,我需要将其划分为多个类(如 1-10k 甚至 100k 类)以进行进一步分析。为此,我选择了在 OpenIMAJ 库(FloatKMeans 类)中实现的 K-Means 算法。 我了解 K-Means 算法可以分为两个阶段:
- 学习阶段 - 我传入创建/填充类所需的所有数据
- 分配阶段 - 我可以询问集群给定的数据属于哪个类
我计划使用 Hadoop reduce 阶段构建集群模型,在该阶段我将一一接收数据片段(这就是为什么我不能一次将所有数据传递给算法的原因)
我的问题是:
- 对于这种“大数据”用例,OpenIMAJ 实施是否最佳?计算它需要很长时间吗?
- 是否可以在 hadoop reduce faze 期间将数据“流式传输”到算法中以学习集群?
- 是否可以将学习到的集群(模型)保存为字节,以便将模型传递给下一个 hadoop 作业?
- hadoop 映射期间可以运行算法分配阶段吗?
感谢您的帮助
【问题讨论】:
标签: hadoop machine-learning cluster-analysis k-means openimaj