解释K-means的结果

时间:2013-04-28 08:05:24

标签: algorithm attributes instance cluster-analysis classification

我在Weka中使用分类器和集群进行了一些预测。我知道如何分析分类器的结果,但我不知道像K-means这样的集群的某些结果是什么意思。我知道集群的工作方式不同。要知道更清楚我想在// comments:

下具体解释表的全部含义 编辑:我根据其中一个属性进行预测。表中生成的3个集群对应于该属性具有的3个答案,或者3个集群是否更随机?我真的可以使用集群来制作预测?

kMeans  
======

Number of iterations: 9
Within cluster sum of squared errors: 297.46622082142716
Missing values globally replaced with mean/mode

Cluster centroids:
                            Cluster# 
Attribute        Full Data         0         1         2
                     (477)     (136)     (172)     (169)
 =======================================================
Religion            8.6939    7.6691    8.9709    9.2367
Vote_Criterion      2.7736    2.8971    2.4942    2.9586
Sex                 1.4906    1.4559         2         1
DateBirth        1930.7652 1937.5147 1920.2965 1935.9882
Educ                3.2201    3.2721    3.2209    3.1775
Immigrant           1.6415    1.6838    1.5872    1.6627 
Income              2.4675       2.5    2.5523     2.355
Occupation          3.6184    3.8162    3.2907    3.7929
Vote2013                 1         2         1         1




 Time taken to build model (full training data) : 0.06 seconds

=== Model and evaluation on training set ===


   //PLEASE EXPLAIN THE FOLLOWING TABLE
    Clustered Instances

    0       136 ( 29%)
    1      172 ( 36%)
    2      169 ( 35%)

EDIT2:vote2013是一个投票意图属性,有3个值,1,2和3个候选总统。那么,2013年的投票数是1,2,是什么意思?

2 个答案:

答案 0 :(得分:1)

这是失败的k-means 的一个很好的例子。

这实际上不是算法错误,而是在不适合k-means的数据上使用它。让我解释为你找到的“集群”k-means:

群集#0是2013年投票的用户(假设2表示他们投票?)

在其余的实例中,Cluster#1是sex 2(女性?)而Cluster#2是sex 1(男性?)。

问题在于k-means使方差最小化。并且将数据分成二元属性(例如“性别”和“投票”)会在减少方差方面产生巨大的改进。但它实际上并没有产生任何有用的信息!

不要在离散属性上使用k-means,EVER。它优化了数学度量 - 平方和 - 只对连续变量有意义。

答案 1 :(得分:0)

//PLEASE EXPLAIN THE FOLLOWING TABLE
Clustered Instances

0       136 ( 29%)
1      172 ( 36%)
2      169 ( 35%)

确定了三个聚类,0,1和2。

  1. 第一个群集包含136个数据点,占477个数据点总数的29%。
  2. 第二个群集包含172个数据点,占477个数据点总数的36%。
  3. 第三个群集包含169个数据点,占477个数据点总数的35%。
  4. 这似乎很容易 - 我误解了你的问题吗?

    修改
    您发布的输出仅显示使用k-means标识的集群。您有三个聚类,其中的质心由第一个表中显示的属性组合给出。

    我不确定你是什么意思“我根据其中一个属性做出预测” - 这个算法将允许你拍摄一个未知样本(包含所有属性)并确定哪个群集它离...最近。这实际上意味着在数据上下文之外。 k-means算法将在不同的粒度级别上提供不同数量的聚类,因此它实际上是一种用于识别数据中存在但很难通过检查得出的关系的工具。

    如果您使用它进行分类,您首先要识别群集,然后为每个群集分配一个分类,然后您可以通过查找最接近的群集质心来对传入的样本进行分类。