首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Mahout Streaming K-Means

如何使用Mahout Streaming K-Means
EN

Stack Overflow用户
提问于 2013-06-24 17:36:21
回答 2查看 2.8K关注 0票数 3

我已经看到在mahout中有一个新的K-Means实现,称为Streaming-Kmeans,它实现了没有链式Mapper-Reducer循环的k-means聚类:

https://github.com/dfilimon/mahout/tree/epigrams

我在任何地方都没有找到任何关于它的用法的文章。谁能指出它的用法有什么有用的链接,里面有一些关于如何使用它的代码示例。

EN

回答 2

Stack Overflow用户

发布于 2013-06-30 16:48:39

StreamingKMeans是mahout .8中的一个新特性。有关其算法的更多细节,请参阅: N. Ailon,R. Jaiswal,C. Monteleoni http://books.nips.cc/papers/files/nips22/NIPS2009_1085.pdf的"Streaming k-means近似值“,M. Shindler,A. Wong,A. Meyerson,http://books.nips.cc/papers/files/nips24/NIPS2011_1271.pdf的”快速且精确的k-Meyerson For Large Datasets“

正如您所提到的,没有文章介绍它的用法。作为其他版本的聚类算法,有一个驱动程序,你可以将一些配置参数作为字符串数组传递,它将对你的数据进行聚类:

代码语言:javascript
复制
String[] args1 = new String[] {"-i","/home/name/workspace/XXXXX-vectors/tfidf-vectors","-o","/home/name/workspace/XXXXX-vectors/tfidf-vectors/SKM-Main-result/","--estimatedNumMapClusters","200","--searchSize","2","-k","12", "--numBallKMeansRuns","3",  "--distanceMeasure","org.apache.mahout.common.distance.CosineDistanceMeasure"};

StreamingKMeansDriver.main(args1);

要获取重要参数的描述,只需错误地将"-iiii“作为第一个参数。它将向您显示参数、它们的描述和默认值。

但是如果你不想以这种方式使用它,只需阅读StreamingKMeansMapper,StreamingKmeansReducer,StreamingKmeansThread,这三个类的代码可以帮助你理解算法的用法,并根据你的需要对其进行定制。映射器使用StreamingKMeans生成输入数据的估计聚类。对于get k,最终的聚类约简器得到中间点(上一步中生成的质心),并使用ballKmeans将这些中间点聚类到K聚类。

票数 3
EN

Stack Overflow用户

发布于 2013-08-07 05:05:12

以下是运行Streaming k-means的步骤:

通过seq2sparse.

  • mahout streamingkmeans org.apache.mahout.math.neighborhood.FastProjectionSearch生成稀疏向量
  1. -i "“-o "”--tempDir "“-ow -sc tempDir -k -km

-k = no个簇-km = (k * log(n))其中k= no。和n= no。对于要聚类的数据点,将其舍入为最接近的整数

您可以选择使用FastProjectionSearch、ProjectionSearch或LocalitySensitiveHashSearch作为-sc参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17272296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档