我尝试在weka中运行并理解 SimpleKMeans 算法的结果。
这是我的训练数据
@relation weather_clustered
@attribute Instance_number numeric
@attribute outlook {sunny,overcast,rainy}
@attribute temperature numeric
@attribute humidity numeric
@attribute windy {TRUE,FALSE}
@attribute play {yes,no}
@attribute cluster {cluster0,cluster1,cluster2,cluster3,cluster4,cluster5}
@data
0,sunny,85,85,FALSE,no,cluster3
1,sunny,80,90,TRUE,no,cluster5
2,overcast,83,86,FALSE,yes,cluster2
4,rainy,68,80,FALSE,yes,cluster4
然后我使用 numClusters = 2 seed = 10 运行 SimpleKMeans 。我确实希望看到有关属性群集的群集结果,换句话说,我想查看哪个群集属性 clusterx 与之相关。如您所见,我不认为属性群集是正确的群集。
为了看到输出中的对应关系,我设置了 集群评估的类=(Nom)集群
并获得以下结果
类属性:cluster 集群的类:
0 1 <-- assigned to cluster
0 0 | cluster0
0 0 | cluster1
1 0 | cluster2
0 1 | cluster3
1 0 | cluster4
0 1 | cluster5
Cluster 0 <-- cluster2
Cluster 1 <-- cluster3
Incorrectly clustered instances : 2.0 50 %
我喜欢列表中的通信,这正是我需要的,但是我不明白以下是什么意思
Cluster 0 <-- cluster2
Cluster 1 <-- cluster3
另外,我对以下结果感到困惑
Incorrectly clustered instances : 2.0 50 %
如果它来自,weka如何知道正确的结果,我没有正确的结果,也许它会将属性集群与正确的集群混淆。总之,我不明白输出。
答案 0 :(得分:1)
SimpleKMeans是一种聚类算法,可以将数据分组为K个群集。
在您的情况下,numClusters=2
=&gt; K=2
会导致您的数据分组为2个群集。
群集1
群集2
当您选择要进行群集评估的类时,Weka会执行以下操作:
删除您为评估选择的属性值。在您的情况下,群集类数据。
在不使用群集属性中的任何信息的情况下应用KMeans算法。
使用初始数据集(使用群集属性)评估群集
所以,在你的情况下,
cluster1,cluster2 ..,cluster5,
充当您的实例的标签,并将用于测试您的模型。
为了更好地理解输出,你有
@data
0,sunny,85,85,FALSE,no,cluster3
1,sunny,80,90,TRUE,no,cluster5
2,overcast,83,86,FALSE,yes,cluster2
4,rainy,68,80,FALSE,yes,cluster4
和
Cluster 0 <-- cluster2
Cluster 1 <-- cluster3
Incorrectly clustered instances : 2.0 50 %
如您所见,有2个错误的群集实例:
1,sunny,80,90,TRUE,no,cluster5
4,rainy,68,80,FALSE,yes,cluster4
有50%错误的群集实例,因为你总共有4个实例,其中2个被错误地聚类(2 = 50%的4个)