Kmeans K值的确定

来源:互联网 发布:阿里云登陆 编辑:程序博客网 时间:2024/05/19 12:15

《大数据》中提到:给定一个合适的类簇指标,比如平均半径或直径,只要我们假设的类簇的数目等于或者高于真实的类簇的数目时,该指标上升会很缓慢,而一旦试图得到少于真实数目的类簇时,该指标会急剧上升。

  类簇的直径是指类簇内任意两点之间的最大距离。

  类簇的半径是指类簇内所有点到类簇中心距离的最大值。

  废话少说,上图。下图是当K的取值从2到9时,聚类效果和类簇指标的效果图:

  左图是K取值从2到7时的聚类效果,右图是K取值从2到9时的类簇指标的变化曲线,此处我选择类簇指标是K个类簇的平均质心距离的加权平均值。从上图中可以明显看到,当K取值5时,类簇指标的下降趋势最快,所以K的正确取值应该是5.为以下是具体数据:

1 2 个聚类
2 所有类簇的半径的加权平均值 8.51916676443
3 所有类簇的平均质心距离的加权平均值 4.82716260322
4 3 个聚类
5 所有类簇的半径的加权平均值 7.58444829472
6 所有类簇的平均质心距离的加权平均值 3.37661824845
7 4 个聚类
8 所有类簇的半径的加权平均值 5.65489660064
9 所有类簇的平均质心距离的加权平均值 2.22135360453
10 5 个聚类
11 所有类簇的半径的加权平均值 3.67478798553
12 所有类簇的平均质心距离的加权平均值 1.25657641195
13 6 个聚类
14 所有类簇的半径的加权平均值 3.44686996398
15 所有类簇的平均质心距离的加权平均值 1.20944264145
16 7 个聚类
17 所有类簇的半径的加权平均值 3.3036641135
18 所有类簇的平均质心距离的加权平均值 1.16653919186
19 8 个聚类
20 所有类簇的半径的加权平均值 3.30268530308
21 所有类簇的平均质心距离的加权平均值 1.11361639906
22 9 个聚类
23 所有类簇的半径的加权平均值 3.17924400582
24 所有类簇的平均质心距离的加权平均值 1.07431888569
0 0