使用 python K-MEANS 的 Hadoop 流式传输
Hadoop streaming with python K-MEANS
我想用 hadoop map reduce 和 python 做一个简单的 k-means。
映射器获取点并将每个点映射到其最近的中心。
reducer 以中心为键,以点为值,并计算一个新的中心到点。
但是现在,我需要从 reducer 收集所有新的中心,并以某种方式将它们提供给映射器
在下一轮。
我该怎么做?我需要为每个地图任务设置一个全局中心数组。
正确的做法是什么?
有关如何对全局常量进行编码的信息,请参阅 。
映射器
接受
- 数据
- 表示中心列表的全局常量
计算
- 每个数据实例的最近中心
发射
- 最近的中心(键)和点(值)。
减速器
接受
- 中心实例/坐标(key)
- 分(价值)
计算
- 基于集群的新中心
发射
- 新中心
您将为 K-Means 的下一个纪元提供:
- 来自您初始时期的相同数据
- reducer 发出的中心作为全局常量
重复直到满足您的停止标准。
我想用 hadoop map reduce 和 python 做一个简单的 k-means。
映射器获取点并将每个点映射到其最近的中心。
reducer 以中心为键,以点为值,并计算一个新的中心到点。
但是现在,我需要从 reducer 收集所有新的中心,并以某种方式将它们提供给映射器 在下一轮。
我该怎么做?我需要为每个地图任务设置一个全局中心数组。
正确的做法是什么?
有关如何对全局常量进行编码的信息,请参阅
映射器
接受
- 数据
- 表示中心列表的全局常量
计算
- 每个数据实例的最近中心
发射
- 最近的中心(键)和点(值)。
减速器
接受
- 中心实例/坐标(key)
- 分(价值)
计算
- 基于集群的新中心
发射
- 新中心
您将为 K-Means 的下一个纪元提供:
- 来自您初始时期的相同数据
- reducer 发出的中心作为全局常量
重复直到满足您的停止标准。