有四个牧师去郊区布道,一开始牧师们随意选了几个布道点,并且把这几个布道点的情况公告给了郊区所有的村民,于是每个村民到离自己家最近的布道点去听课。
听课之后,大家觉得距离太远了,于是每个牧师统计了一下自己的课上所有的村民的地址,搬到了所有地址的中心地带,并且在海报上更新了自己的布道点的位置。
牧师每一次移动不可能离所有人都更近,有的人发现A牧师移动以后自己还不如去B牧师处听课更近,于是每个村民又去了离自己最近的布道点……
就这样,牧师每个礼拜更新自己的位置,村民根据自己的情况选择布道点,最终稳定了下来。
KMEANS算法又被成为K均值算法,是一种常用的聚类算法,由于不需要根据给定的训练集训练模型因此是一种无监督学习算法。其本质是根据选定的参数K将数据分类成K类,在聚类过程中从单一样本开始通过不断计算聚类数据的均值来作为整个类的中心进而再将距离此类别中心最近的数据纳入同一类。
3,K值选择
1. 轮廓系数
轮廓系数的计算过程中涉及到了簇内距离和簇外距离。 其实最终的结果可以简单的理解为在该聚类结果下,不同簇之间的离散程度,离散程度越高自然分类效果越好.
所以, 通过轮廓系数来看的话,选择最后数值高的K点就是最佳聚类结果需要的k值
2. 肘部法则
和轮廓系数不同, 肘部法则的运算中仅仅考虑到了簇内的一个距离, 也就是说这个畸变程度随着K的增加是稳定下降的。 而肘部法则寻找K值是通过最终生成的畸变程度趋势图来判定最佳K值,即寻找所谓的肘部,也就是斜率突变的点.
以我自己做宋朝文人创作力的分析为例, 对应的轮廓系数和肘部的图如下:
这里的轮廓系数显示的最佳点是5, 然而如果遵循下图的肘部,它却明明白白的说是3. 这又是什么情况? 一个数据能有2个不同的最佳K值?还是说有哪一步做错了?
这里我看了一下k=3,5的数据, 发现5更切合我想要的结果。 但是这样就可以说明轮廓系数更实用吗? 那我更改一下数据结构呢?
删除年龄这一个数据后 新的图表如下
这里最终结果我取了K=5, 虽然和之前的数据结果类似。 但是轮库系数和肘部法则的展现结果却完全不一样。