【问题标题】:Name the clusters based on an attribute in kmeans algorithm根据 kmeans 算法中的属性命名集群
【发布时间】: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


【解决方案1】:

不要试图将所有内容混合到一个过程中。

数据挖掘自然是一个多步骤的过程。一些重要的步骤是预处理和后处理

您似乎想要对数据进行后处理,并报告每个集群最常见的标签。

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 2019-04-04
    • 1970-01-01
    • 2023-01-17
    • 2017-06-01
    • 2019-11-24
    • 1970-01-01
    • 2016-10-04
    • 2016-07-02
    相关资源
    最近更新 更多