【发布时间】:2014-04-18 19:29:59
【问题描述】:
我正在尝试将 Mahout KMeans 用于一个简单的应用程序。我从数据库内容手动创建了一系列向量。我只是想将这些向量提供给 Mahout (0.9),例如 KMeansClusterer 并使用输出。
我阅读了 Mahout in Action(来自 0.5 版的示例)和许多在线论坛以获取背景信息。但是我看不到没有通过 Hadoop 使用文件名和文件路径的 Mahout KMeans(或相关集群)。文档非常粗略,但是 Mahout 可以再以这种方式使用吗?当前是否有任何使用 Mahout KMeans 的示例(不是从命令行)。
private List<Cluster> kMeans(List<Vector> allvectors, double closeness, int numclusters, int iterations) {
List<Cluster> clusters = new ArrayList<Cluster>() ;
int clusterId = 0;
for (Vector v : allvectors) {
clusters.add(new Kluster(v, clusterId++, new EuclideanDistanceMeasure()));
}
List<List<Cluster>> finalclusters = KMeansClusterer.clusterPoints(allvectors, clusters, 0.01, numclusters, 10) ;
for(Cluster cluster : finalclusters.get(finalclusters.size() - 1)) {
System.out.println("Fuzzy Cluster id: " + cluster.getId() + " center: " + cluster.getCenter().asFormatString());
}
return clusters ;
}
【问题讨论】: