聚类与常见聚类方法

1.基于划分的聚类(Partitional Clustering)

K-Means算法介绍

K均值算法是属于划分的聚类方法,K均值算法将样本分为K类,是通过最小化簇内距离(平方误差)来实现的。
E = ∑ i = 1 n ∑ x ∈ C i ∣ ∣ x − u i ∣ ∣ 2 2 E=\sum_{i=1}^n \sum_{x\in{C_i}} ||x-u_i||_{2}^2 E=i=1nxCixui22
迭代过程:

  1. 从样本集中随机选取K个样本作为初始的均值向量 { u 1 , u 2 , ⋯   , u k } \{u_1,u_2,\cdots,u_k\} {u1,u2,,uk}
  2. 历遍整个数据集,计算每个样本 x j x_j xj与各均值向量的距离,将 x j x_j xj分到距离最近的一均值向量确定 的簇内。
  3. 重新计算各个簇的均值向量的平均值 { u 1 ′ , u 2 ′ , ⋯   , u k ′ } \{u_1^{'},u_2^{'},\cdots,u_k^{'}\} {u1,u2,,uk},更新均值向量
  4. 重复以上步骤,直到聚类结果保持不变为止(均值向量均为更新),停止迭代。

K-Means的优点

  1. 计算复杂度低,为O(Nkp),N是数据总量,k是类别,p是迭代次数
  2. 思想简单,容易实现。而且很稳定。

K-Means的缺点

  1. 分类簇的数量K必须提前确定

  2. 算法对初始聚类中心敏感,可能会导致较差的聚类结果。

    (1)可以每次迭代尝试不同的初始均值向量,通过比较均值距离,选择一个较好的初始值。

    (2)使用k-means++算法

  3. 算法只适用于处理数字类型的数据

  4. 算法可能陷入局部最优解,无法达到全局最优

  5. 对异常值和噪声很敏感,算法的鲁棒性不太好。

  6. 无法对(a)非球状簇,(b)大小不同得簇,©密度不同得簇 进行聚类。

如何选择K值

当前,K值得选取依然是靠人为来实现,通过可视化聚类结果等方法来实现。

Elbow Method

  • 尝试不同的K值,画出不同K值对应的到聚类中心的平均距离。
  • 一开始,随着k增大,平均距离下降很快,直到一个拐点,下降变慢。该拐点对应的K值就是最好值。

2.层次聚类(hiecarchical clustering)

思想

**从各聚类簇只有一个样本点开始,逐级合并,每级只合并两簇,直到最后所有样本都归到一个聚类簇。**在树状图的特定层次进行分割(选择聚类数)就可以得到所需的聚类结果。
在这里插入图片描述

AGNES算法

算法全称:AGglomerative NESting

  1. 初始化,每个样本形成一类
  2. 把相似度最大的两个簇合并
  3. 重复步骤二,直到所有样本合并为一类
    衡量相似度的方法
  4. 最小距离:通过两个簇内距离最近的两个样本的距离来衡量相似度
  5. 最大距离:通过两个簇内距离最远的两个样本的距离来衡量相似度
  6. 均值距离:通过两个簇内的平均距离来衡量相似度,需要用到所有的样本。(计算两个簇,所有样本两个之间的距离总和,求平均值)

优点:

  1. 衡量相似度的距离定义定义简单,算法实现也简单;
  2. 不需要预先确定聚类数
  3. 得到的是一个结构化的层次结构,包含的信息更多,通过层次关系可以更容易确定最终的聚类数。

缺点:

  1. 时间复杂度高, O ( n 2 l o g n ) O(n^{2}logn) O(n2logn),不适合大规模数据。
  2. 最终的划分标准是模糊的。

3.密度聚类(density-based clustering)

密度聚类算法是从样本密度的角度来考虑样本之间的连接性,并基于可连接样本不断扩展聚类簇,最终获得聚类结果。

DBSCAN算法

DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise),基于一组邻域参数 ( ϵ , M i n P t s ) (\epsilon , MinPts) (ϵ,MinPts)来刻画样本分布的紧密程度。一下是几个重要概念:

  • ϵ \epsilon ϵ邻域
  • 核心对象(core object)
  • 密度直达(directly density-reachable)
  • 密度可达(density-reachable)
  • 密度相连(density-conneted)

算法描述:

  1. 根据给定的邻域参数,找出所有的核心对象
  2. 从核心对象集合 Ω \Omega Ω中随机选取一个作为“种子”,找出由它密度可达的左右样本,有这些样本构成第一个聚类簇。其他的一些核心对象可能也被包含在了这个聚类簇内,从核心对象集合 Ω \Omega Ω去掉这些被包含的核心对象,形成新的核心对象集 Ω ′ \Omega^{'} Ω
  3. 重复步骤二,直到核心对象集合为空。

注: 最终不属于任何簇的样本被视为噪声或者异常值

DBSCAN算法的目的在于过滤低密度区域,发现稠密度样本点。跟传统的基于层次的聚类和划分聚类的凸形聚类簇不同,该算法可以划分任意形状的聚类簇,与传统的算法相比它有如下优点:

(1)与K-MEANS比较起来,不需要输入要划分的聚类个数;

(2)聚类簇的形状没有偏倚,可以划分任意形状的聚类簇;

(3)可以在需要时输入过滤噪声的参数;

4.参考:

https://pdfs.semanticscholar.org/f0a4/d6bfb37b6c1102f7ef6b0d0f2ef861da6aca.pdf
https://pdfs.semanticscholar.org/017c/8baf587de35f310ca4466ce723deea358745.pdf

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值