1 聚类 k-means

算法介绍

  • 对于同一个数据集,相同的聚簇中心,每次计算结果也可能会不一样
  • 该算法除了要事先确定簇数K和对初始聚类中心敏感外,经常以局部最优结束,同时对“噪声”和孤立点敏感,并且该方法不适于发现非凸面形状的簇或大小差别很大的簇。
function K-Means(输入数据,中心点个数K)
  获取输入数据的维度Dim和个数N
  随机生成K个Dim维的点
  while(算法未收敛)
      对N个点:计算每个点属于哪一类。
      对于K个中心点:
          1,找出所有属于自己这一类的所有数据点
          2,把自己的坐标修改为这些数据点的中心点坐标
  end
  输出结果:
end

k-means python实现

K-均值

k-Means可视化

  • sklearn 示例
>>> from sklearn.cluster import KMeans
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
>>> kmeans.labels_
array([0, 0, 0, 1, 1, 1], dtype=int32)
>>> kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)
>>> kmeans.cluster_centers_
array([[1., 2.],
     [4., 2.]])
  • k-means算法初始聚簇中心落点影响很大
  • 参数

n_cluster: 聚簇中心个数
n_init: 算法迭代次数
max_iter:

面试题

1 K-means中常用的到中心距离的度量有哪些?

  • 欧式距离
  • 曼哈顿距离

度量单位

2 K-means中的k值如何选取?

手肘法

  • 随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,
  • 而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,
    然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,
    而这个肘部对应的k值就是数据的真实聚类数。当然,这也是该方法被称为手肘法的原因。

轮廓系数

  • 使用轮廓系数(silhouette coefficient)来确定,选择使系数较大所对应的k值
    计算样本i到同簇其他样本的平均距离ai。ai 越小,说明样本i越应该被聚类到该簇。将ai 称为样本i的簇内不相似度。

  • 计算样本i到其他某簇Cj 的所有样本的平均距离bij,称为样本i与簇Cj 的不相似度。定义为样本i的簇间不相似度:bi =min{bi1, bi2, ..., bik}
    bi越大,说明样本i越不属于其他簇。簇C中所有样本的a i 均值称为簇C的簇不相似度。

  • 根据样本i的簇内不相似度a i 和簇间不相似度b i ,定义样本i的轮廓系数


    lunkuo.png
  • 判断:
    轮廓系数范围在[-1,1]之间。该值越大,越合理。
    si接近1,则说明样本i聚类合理;
    si接近-1,则说明样本i更应该分类到另外的簇;
    若si 近似为0,则说明样本i在两个簇的边界上。

  • 所有样本的s i 的均值称为聚类结果的轮廓系数,是该聚类是否合理、有效的度量。

  • 使用轮廓系数(silhouette coefficient)来确定,选择使系数较大所对应的k值

  • sklearn.metrics.silhouette_score sklearn中有对应的求轮廓系数的API

3 K-means算法中初始点的选择对最终结果有影响吗?

  • 有,不同的初始值可能会结果不一样

4 K-means聚类中每个类别中心的初始点如何选择?

  • 选择彼此距离尽可能远的K个点
  • 先对数据用层次聚类算法或者Canopy算法进行聚类,得到K个簇之后,从每个类簇中选择一个点,该点可以是该类簇的中心点,或者是距离类簇中心点最近的那个点。

5 K-means中空聚类的处理

  • 选择一个距离当前任何质心最远的点。这将消除当前对总平方误差影响最大的点。
  • 从具有最大SSE的簇中选择一个替补的质心,这将分裂簇并降低聚类的总SSE。如果有多个空簇,则该过程重复多次。
  • 如果噪点或者孤立点过多,考虑更换算法,如密度聚类

6 K-means是否会一直陷入选择质心的循环停不下来?

  • 迭代次数设置
  • 设定收敛判断距离

7 如何快速收敛数据量超大的K-means?

8 K-means算法的优点和缺点是什么?

优点  
  1.算法快速、简单;   
  2.对大数据集有较高的效率并且是可伸缩性的;   
  3.时间复杂度近于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(n×k×t) ,其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目  

  缺点  
  1 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适  
  2 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,这也成为 K-means算法的一个主要问题。   
  3 特殊的聚类数据(相邻很近的长条形聚类、双月牙形、双环等),K-means分类效果不佳,K-means寻找的是球形聚类
  • 如何对K-means聚类效果进行评估?
    答:

9 K-Means与KNN有什么区别

10 K-Means算法的收敛性。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容