十一、聚类

聚类算法

可用于寻找优质客户、社区发现、异常点监控

K-MEANS

    -算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类,以便使得所获得的聚类满足:同一聚类中的对象相似度较高,而不同聚类中的对象相似度较小。

    -算法思想:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果

    -步骤:1、先从没有标签的元素集合A中随机取k个元素,作为k个子集各自的重心

                2、分别计算剩下的元素到k个子集重心的距离(距离也可以使用欧式距离)根据距离将这些元素分别划归到最近的子集

                3、根据聚类结果,重新计算重心(方法:计算子集中所有元素各个维度的算术平均数)

                4、将集合A中全部元素按照新的重心再重新聚类

                5、重复第4步,直到聚类结果不再发生变化

算法分析1:

    对K个初始值的选择比较敏感,容易陷入局部最小值

算法分析2:

    K值的选择是用户指定的,不同的K得到的结果会有挺大的不同

算法分析3:

    有局限性,有些数据分布无法处理,如非球状数据(比如太极图)

算法分析4:

    数据比较大时,收敛会比较慢——用mini batch k-means

Mini Batch K-Means

    用于解决算法分析4中的问题,为K-MEANS的变种,采用小批量的数据子集减小计算时间。所谓的小批量是指每次训练算法时所随机抽取的数据子集,采用这些随机产生的子集进行训练算法,大大减小了计算时间,结果一般只略差于标准算法,该算法迭代步骤有两步:

    1、从数据集中随机抽取一些数据形成小批量,把他们分配给最近的质心

    2、更新质心

    与K-Means算法相比,数据的更新是在每一个小的样本集上,mini batch k-means比K-Means有更快的收敛速度,但同时也降低了聚类的效果,但在实际项目中表现得并不明显


对K-Means算法分析1的问题——局部最小值,解决方案

    使用多次的随机初始化,计算每一次建模得到的代价函数的值,选取代价函数最小的结果作为聚类结果

for \ \ i = 1 \ \ to\ \ 100\ \{

            Randoming \ \ initialize\ \ K-Means

            Run\ \ K-Means\ \ .\ Get

            Compute\ \ cost\ \ function(distortion)

\}

J(c^{(1)},...,c^{(m)},\mu _1,...,\mu_K) = \frac{1}{m}\sum_{i=1}^{m}\vert\vert x^{(i)} - \mu_{c^{(i)}} \vert\vert ^2    取模

sklean已包含这种处理


对K-Means算法分析2的问题——k选值问题,解决方案

    使用肘部法则来选择k的值


对K-Means算法分析3的问题——局限性,解决方案

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)

    基于密度的方法,本算法将具有足够高密度的区域划分为簇,并可以发现任何形状的聚类

概念

    \varepsilon 邻域:给定对象小于半径\varepsilon 内的区域称为该对象的\varepsilon 邻域,\varepsilon 为参数

    核心对象:如果给定\varepsilon 邻域内的样本点数大于等于Minpoints(参数),则该对象称为核心对象

    直接密度可达:给定一个对象集合D,如果pq的邻域内,且q是一个核心对象,则我们称对象pq出发是直接密度可达的(directly density-reachable)

    密度可达:集合D,存在一个对象链:p_1,p_2,...,p_n,p_1 = q,p_n = p,p_{i+1}是从p_i
关于\varepsilon Minpoints直接密度可达,则称点p是从q关于\varepsilon Minpoints密度可达的

    密度相连:集合D存在点O,使得点pq是从O关于\varepsilon Minpoints密度可达的,那么点pq是关于\varepsilon Minpoints
密度相连的。

算法思想

    1、指定合适的\varepsilon Minpoints

    2、计算所有的样本点,如果点p\varepsilon 邻域里有超过Minpoints个点,则创建一个以p为核心点的新簇

    3、反复寻找这些核心点直接密度可达(之后可能是密度可达)的点,将其加入到相应的簇,对于核心点发生“密度相连”状况的簇,给予合并

    4、当没有新的点可以被添加到任何簇时,算法结束

缺点:-当数据量增大时,要求较大的内存支持,I/O消耗也很大

           -当空间聚类的密度不均匀,聚类间距相差很大时,聚类质量较差


DBSCAN与K-Means比较

    -DBSCAN不需要输入聚类个数

    -聚类簇的形状没有要求

    -可以在需要时输入过滤噪声的参数


 

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

推荐阅读更多精彩内容