K-Means聚类的一些小问题

K-Means的细节问题#####算法

  1. K值怎么定?我怎么知道应该几类?
    答:这个真的没有肯定的作法,分几类主要取决于我的的经验与感受,一般的作法是多尝试几个K值,看分红几类的结果更好解释,更符合分析目的等。或者能够把各类K值算出的SSE作比较,取最小的SSE的K值。函数

  2. 初始的K个质心怎么选?
    答:最经常使用的方法是随机选,初始质心的选取对最终聚类结果有影响,所以算法必定要多执行几回,哪一个结果更reasonable,就用哪一个结果。 固然也有一些优化的方法,第一种是选择彼此距离最远的点,具体来讲就是先选第一个点,而后选离第一个点最远的当第二个点,而后选第三个点,第三个点到第1、第二两点的距离之和最小,以此类推。第二种是先根据其余聚类算法(如层次聚类)获得聚类结果,从结果中每一个分类选一个点。优化

  3. K-Means会不会陷入一直选质心的过程,永远停不下来?
    答:不会,有数学证实K-Means必定会收敛,大体思路是利用SSE的概念(也就是偏差平方和),即每一个点到自身所归属质心的距离的平方和,这个平方和是一个函数,而后可以证实这个函数是能够最终收敛的函数。orm

  4. 判断每一个点归属哪一个质心的距离怎么算?
    答:这个问题必须不得不提一下数学了……
    第一种,欧几里德距离(欧几里德这位爷仍是很厉害的,《几何本来》被称为古希腊数学的高峰,就是用5个公理推导出了整个平面几何的结论),这个距离就是平时咱们理解的距离,若是是两个平面上的点,也就是(X1,Y1),和(X2,Y2),那这俩点距离是多少初中生都会,就是√( (x1-x2)2+(y1-y2)2) ,若是是三维空间中呢?√( (x1-x2)2+(y1-y2)2+(z1-z2)^2 ;推广到高维空间公式就以此类推。能够看出,欧几里德距离真的是数学加减乘除算出来的距离,所以这就是只能用于连续型变量的缘由。
    第二种,余弦类似度,余弦类似度用向量空间中两个向量夹角的余弦值做为衡量两个个体间差别的大小。相比距离度量,余弦类似度更加注重两个向量在方向上的差别,而非距离或长度上。下图表示余弦类似度的余弦是哪一个角的余弦,A,B是三维空间中的两个向量,这两个点与三维空间原点连线造成的角,若是角度越小,说明这两个向量在方向上越接近,在聚类时就归成一类:排序

    cosine数学


    看一个例子(也许不太恰当):歌手大赛,三个评委给三个歌手打分,第一个评委的打分(10,8,9) 第二个评委的打分(4,3,2),第三个评委的打分(8,9,10)
    若是采用余弦类似度来看每一个评委的差别,虽然每一个评委对同一个选手的评分不同,但第1、第二两个评委对这四位歌手实力的排序是同样的,只是第二个评委对满分有更高的评判标准,说明第1、第二个评委对音乐的品味上是一致的。
    所以,用余弦类似度来看,第1、第二个评委为一类人,第三个评委为另一类。
    若是采用欧氏距离, 第一和第三个评委的欧氏距离更近,就分红一类人了,但其实不太合理,由于他们对于四位选手的排名都是彻底颠倒的。
    总之,若是注重数值自己的差别,就应该用欧氏距离,若是注重的是上例中的这种的差别(我归纳不出来究竟是一种什么差别……),就要用余弦类似度来计算。
    还有其余的一些计算距离的方法,可是都是欧氏距离和余弦类似度的衍生,简单罗列以下:明可夫斯基距离、切比雪夫距离、曼哈顿距离、马哈拉诺比斯距离、调整后的余弦类似度、Jaccard类似系数……

     

  5. 还有一个重要的问题是,你们的单位要一致!
    好比X的单位是米,Y也是米,那么距离算出来的单位仍是米,是有意义的
    可是若是X是米,Y是吨,用距离公式计算就会出现“米的平方”加上“吨的平方”再开平方,最后算出的东西没有数学意义,这就有问题了。
    还有,即便X和Y单位一致,可是若是数据中X总体都比较小,好比都是1到10之间的数,Y很大,好比都是1000以上的数,那么,在计算距离的时候Y起到的做用就比X大不少,X对于距离的影响几乎能够忽略,这也有问题。
    所以,若是K-Means聚类中选择欧几里德距离计算距离,数据集又出现了上面所述的状况,就必定要进行数据的标准化(normalization),即将数据按比例缩放,使之落入一个小的特定区间。去除数据的单位限制,将其转化为无量纲的纯数值,便于不一样单位或量级的指标可以进行计算和比较。
    标准化方法最经常使用的有两种:产品

  • min-max标准化(离差标准化):对原始数据进行线性变换,是结果落到【0,1】区间,转换方法为 X'=(X-min)/(max-min),其中max为样本数据最大值,min为样本数据最小值。
  • z-score标准化(标准差标准化):处理后的数据符合标准正态分布(均值为0,方差为1),转换公式:X减去均值,再除以标准差
  1. 每一轮迭代如何选出新的质心?
    答:各个维度的算术平均,好比(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),那就新质心就是【(X1+X2+X3)/3,(Y1+Y2+Y3)/3,(Z1,Z2,Z3)/3】,这里要注意,新质心不必定是实际的一个数据点。io

  2. 关于离群值?
    答:离群值就是远离总体的,很是异常、很是特殊的数据点,在聚类以前应该将这些“极大”“极小”之类的离群数据都去掉,不然会对于聚类的结果有影响。可是,离群值每每自身就颇有分析的价值,能够把离群值单独做为一类来分析。变量

  3. 用SPSS做出的K-Means聚类结果,包含ANOVA(单因素方差分析),是什么意思?
    答:答简单说就是判断用于聚类的变量是否对于聚类结果有贡献,方差分析检验结果越显著的变量,说明对聚类结果越有影响。对于不显著的变量,能够考虑从模型中剔除。方法

5、聚类分析中业务专家的做用#####

业务专家的做用很是大,主要体如今聚类变量的选择和对于聚类结果的解读:

  1. 好比要对于现有的客户分群,那么就要根据最终分群的目的选择不一样的变量来分群,这就须要业务专家经验支持。若是要优化客户服务的渠道,那么就应选择与渠道相关的数据;若是要推广一个新产品,那就应该选用用户目前的使用行为的数据来归类用户的兴趣。算法是没法作到这一点的
  2. 欠缺经验的分析人员和经验丰富的分析人员对于结果的解读会有很大差别。其实不光是聚类分析,全部的分析都不能仅仅依赖统计学家或者数据工程师。

做者:程sir 连接:https://www.jianshu.com/p/fc91fed8c77b 來源:简书 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

相关文章
相关标签/搜索