0

我正在尝试对以下数据集运行 Kmeans 聚类,

Name,Gender,Age,Drinks,Country
John,M,30,Pepsi,US
Jack,M,25,Coke,US
David,M,34,Pepsi,UK
Ted,M,37,Limca,CAN
Robert,M,23,Limca,US
Adrian,M,31,Pepsi,US
Craig,M,37,Coke,UK
Katie,F,23,Limca,UK
Nancy,F,32,Pepsi,UK

我想根据饮料(百事可乐,可乐,Limca)对数据进行聚类,并且我能够做到。但我也想在聚类数据旁边检索名称。

我得到的输出是

0
1
2 
Limca belongs to cluster:0
Cokde belongs to cluster:0
etc.

在这里我也想得到名字。

在转换为序列文件时,我将键作为饮料,将值作为文本的其余部分并转换为稀疏向量,然后运行 ​​Kmeans 聚类,名称不会打印。任何人都可以指出我如何从值中的集群中提取名称。

4

2 回答 2

0

您可能需要将 {Pepsi, Coke, Pepsi, Limca} 转换为 {1001, 1002, 1001, 1003} 并再次转换回原始值。

但正如其中一个答案所提到的,仅仅按饮料分组可能不是一个集群工作,它只是一个 SQL 查询。如果您的问题比分组更复杂,那么您可以尝试我在上面段落中提到的方法。

于 2013-07-16T18:14:18.070 回答
0

K-Means 在向量空间上运行。

它绝对需要能够计算手段

但是 的平均值是{Pepsi, Coke, Pepsi, Limca}多少?

对不起,你想用锤子,但你没有钉子!

如果你想按他们的饮料对数据进行分组,这不是一个聚类任务。

也许尝试一个基于 Hadoop 的 SQL 系统。因为显然你想执行一个经典的 SQL 操作:GROUP BY Drinks

哦,你的问题与stackoverflow无关。您正在使用Hadoop,但您没有提出编程问题!

于 2013-07-16T14:18:35.213 回答