K-Means的细节问题#####算法
K值怎么定?我怎么知道应该几类?
答:这个真的没有肯定的作法,分几类主要取决于我的的经验与感受,一般的作法是多尝试几个K值,看分红几类的结果更好解释,更符合分析目的等。或者能够把各类K值算出的SSE作比较,取最小的SSE的K值。函数
初始的K个质心怎么选?
答:最经常使用的方法是随机选,初始质心的选取对最终聚类结果有影响,所以算法必定要多执行几回,哪一个结果更reasonable,就用哪一个结果。 固然也有一些优化的方法,第一种是选择彼此距离最远的点,具体来讲就是先选第一个点,而后选离第一个点最远的当第二个点,而后选第三个点,第三个点到第1、第二两点的距离之和最小,以此类推。第二种是先根据其余聚类算法(如层次聚类)获得聚类结果,从结果中每一个分类选一个点。优化
K-Means会不会陷入一直选质心的过程,永远停不下来?
答:不会,有数学证实K-Means必定会收敛,大体思路是利用SSE的概念(也就是偏差平方和),即每一个点到自身所归属质心的距离的平方和,这个平方和是一个函数,而后可以证实这个函数是能够最终收敛的函数。orm
判断每一个点归属哪一个质心的距离怎么算?
答:这个问题必须不得不提一下数学了……
第一种,欧几里德距离(欧几里德这位爷仍是很厉害的,《几何本来》被称为古希腊数学的高峰,就是用5个公理推导出了整个平面几何的结论),这个距离就是平时咱们理解的距离,若是是两个平面上的点,也就是(X1,Y1),和(X2,Y2),那这俩点距离是多少初中生都会,就是√( (x1-x2)2+(y1-y2)2) ,若是是三维空间中呢?√( (x1-x2)2+(y1-y2)2+(z1-z2)^2 ;推广到高维空间公式就以此类推。能够看出,欧几里德距离真的是数学加减乘除算出来的距离,所以这就是只能用于连续型变量的缘由。
第二种,余弦类似度,余弦类似度用向量空间中两个向量夹角的余弦值做为衡量两个个体间差别的大小。相比距离度量,余弦类似度更加注重两个向量在方向上的差别,而非距离或长度上。下图表示余弦类似度的余弦是哪一个角的余弦,A,B是三维空间中的两个向量,这两个点与三维空间原点连线造成的角,若是角度越小,说明这两个向量在方向上越接近,在聚类时就归成一类:排序
cosine数学
还有一个重要的问题是,你们的单位要一致!
好比X的单位是米,Y也是米,那么距离算出来的单位仍是米,是有意义的
可是若是X是米,Y是吨,用距离公式计算就会出现“米的平方”加上“吨的平方”再开平方,最后算出的东西没有数学意义,这就有问题了。
还有,即便X和Y单位一致,可是若是数据中X总体都比较小,好比都是1到10之间的数,Y很大,好比都是1000以上的数,那么,在计算距离的时候Y起到的做用就比X大不少,X对于距离的影响几乎能够忽略,这也有问题。
所以,若是K-Means聚类中选择欧几里德距离计算距离,数据集又出现了上面所述的状况,就必定要进行数据的标准化(normalization),即将数据按比例缩放,使之落入一个小的特定区间。去除数据的单位限制,将其转化为无量纲的纯数值,便于不一样单位或量级的指标可以进行计算和比较。
标准化方法最经常使用的有两种:产品
每一轮迭代如何选出新的质心?
答:各个维度的算术平均,好比(X1,Y1,Z1)、(X2,Y2,Z2)、(X3,Y3,Z3),那就新质心就是【(X1+X2+X3)/3,(Y1+Y2+Y3)/3,(Z1,Z2,Z3)/3】,这里要注意,新质心不必定是实际的一个数据点。io
关于离群值?
答:离群值就是远离总体的,很是异常、很是特殊的数据点,在聚类以前应该将这些“极大”“极小”之类的离群数据都去掉,不然会对于聚类的结果有影响。可是,离群值每每自身就颇有分析的价值,能够把离群值单独做为一类来分析。变量
用SPSS做出的K-Means聚类结果,包含ANOVA(单因素方差分析),是什么意思?
答:答简单说就是判断用于聚类的变量是否对于聚类结果有贡献,方差分析检验结果越显著的变量,说明对聚类结果越有影响。对于不显著的变量,能够考虑从模型中剔除。方法
5、聚类分析中业务专家的做用#####
业务专家的做用很是大,主要体如今聚类变量的选择和对于聚类结果的解读:
做者:程sir 连接:https://www.jianshu.com/p/fc91fed8c77b 來源:简书 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。