【发布时间】:2014-05-07 12:44:36
【问题描述】:
我正在使用 kmeans 算法将我的实例分类到不同的组中。我在java中写了一个简单的代码,接收arff文件并将每个实例分类到不同的集群中,其中集群的数量由我最初给出。
我的输出是以这种格式生成的:
Instance 0-> Cluster 1
Instance 1-> Cluster 3 etc
有没有什么方法可以根据单个属性给集群命名?
假设我的 arff 文件是:
@relation links
@attribute num1 numeric
@attribute num2 numeric
@attribute num3 numeric
@attribute data string
@data
0,0,5,a
1,0,0,b
1,0,0,a
1,1,0,a etc
我希望根据数据属性使用这些属性和名称形成我的集群
所以输出应该是:
Instance 0-. cluster a
Instance 1-> cluster b
关于如何做到这一点的任何想法?
【问题讨论】:
-
所以你的数据是预集群的?那为什么要使用 k-means?
-
不,它不是预集群的。在集群形成过程中会忽略标称值。我想根据数字属性进行聚类,并根据名义属性命名聚类。就像这样,假设我有 20 个具有 a 或 b 属性的实例,并且在集群 1 和 2 中形成了 2 个集群:我们查看 a 或 b 的实例数量是否最多,并据此命名。
-
啊,我明白了。在这种情况下,您最好的选择是后处理;处理后遍历每个集群的实例,统计每种类型的个数。
-
谢谢 计划这样做!想问问有没有其他方法! :)
标签: java cluster-analysis weka k-means