使用 Mahout 对一个点进行聚类
Posted
技术标签:
【中文标题】使用 Mahout 对一个点进行聚类【英文标题】:Using Mahout for clustering one point 【发布时间】:2014-11-01 14:43:08 【问题描述】:我知道 Mahout 用于批处理,但我很感兴趣是否可以使用它的 KMeans 以及如何对单个点进行聚类?
假设我们有以下情况
全局聚类,对所有数据执行批处理并给出质心作为结果 一个点聚类,它使用来自全局聚类的质心,将该点分配给一个聚类 - 它不需要重新计算聚类质心 - 只需将该点分配给现有聚类我可以使用 Mahout 执行此操作,还是必须自己实现它?我认为将迭代次数设置为 1,并以这种方式分配点,但问题是,KMeans 重新计算集群质心,如果该新点是异常值,它会从中创建一个新集群。我不想要那个,我实际上想要到最近质心的距离。
目前看来,用KMeans来做这个不是很合适,但应该单独实现……对吗?
谢谢
【问题讨论】:
【参考方案1】:您不需要为此使用 Mahout。
K-means 将点分配给最近的中心。
所以只需获取所有中心(应该很容易放入 RAM),然后计算每个中心的最小二乘差。
这只是几个 CPU 周期,尝试在 Mahout 上执行此操作绝对没有任何好处 - 开销对于一些 k 距离计算来说太大了。
【讨论】:
以上是关于使用 Mahout 对一个点进行聚类的主要内容,如果未能解决你的问题,请参考以下文章
使用 Clojure 使用 Mahout 进行聚类 (fkmeans)