文章目录

  • 一.聚类的基本概念
    • 1.1 相似度或距离
    • 1.2 类或簇
    • 1.3 类与类之间的距离
  • 二.层次聚类
    • 2.1 基本概念
    • 2.1 算法描述
    • 2.3 例题
  • 三.K均值聚类
    • 3.1 模型
    • 3.2 策略
    • 3.3 算法
      • 3.3.1 K-Means ++ 中的聚类中心初始化算法:
      • 3.3.2 聚类数 K 的确定
      • 3.3.3 K均值聚类算法描述
    • 3.4.例题
  • 四.密度聚类(DBSCAN)
    • 4.1 相关概念
    • 4.2 算法描述
  • 推荐文章
  • 参考资料

一.聚类的基本概念

聚类是针对给定的样本,依据它们特征的 相似度距离,将其归并到若千个“类”或“簇”的数据分析问题。一个类是样本的一个子集。直观上,相似的样本聚集在相同的类,不相似的样本分散在不同的类。这里,样本之间的相似度或距离起着重要作用。

1.1 相似度或距离

聚类的对象是观测数据,或样本集合。假设有 n 个样本,每个样本由 m 个属性的特征向量组成。样本集合可以用矩阵 X 表示矩阵的第 j 列表示第 j 个样本,j=1,2,..,n;j = 1,2,..,n;j=1,2,..,n; 第 i 行表示第 i 个属性, i=1,2,...,m;i =1,2,... ,m;i=1,2,...,m; 矩阵元素 xijx_{ij}xij​ 表示第 j 个样本的第 i 个属性值,i=1,2,...,m;i = 1,2,...,m;i=1,2,...,m; j=1,2,..,nj=1,2,.. ,nj=1,2,..,n。

聚类的核心概念是相似度(similarity) 或距离(distance) ,有多种相似度或距离的定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。具体哪种相似度更合适取决于应用问题的特性。

1.闵可夫斯基距离

在聚类中,可以将样本集合看作是向量空间中点的集合,以该空间的距离表示样本之间的相似度。常用的距离有 闵可夫斯基距离,特别是 欧氏距离。闵可夫斯基距离越大相似度越小,距离越小相似度越大。

定义7.1 给定样本集合 XXX, XXX 是 mmm 维实数向量空间 RmR_mRm​中点的集合,其中 xi,xj∈X,xi=(x1i,x2i,...,xmi)T,xj=(x1j,x2j,...,xmj)Tx_i,x_j∈X,x_i = (x_{1i},x_{2i},...,x_{mi})^T,x_j = (x_{1j},x_{2j},...,x_{mj})^Txi​,xj​∈X,xi​=(x1i​,x2i​,...,xmi​)T,xj​=(x1j​,x2j​,...,xmj​)T,样本 xix_ixi​ 与样本xjx_jxj​的 **闵可夫斯基距离( Minkowski distance)**定义为

dij=(∑k=1m∣xki−xkj∣p)1pd_{ij} = \left(\sum_{k = 1}^m|x_{ki} - x_{kj}|^p\right)^{\frac{1}{p}}dij​=(k=1∑m​∣xki​−xkj​∣p)p1​

这里 p≥1p≥1p≥1。当 p=2p=2p=2 时称为 欧氏距离( Euclidean distance),即

dij=(∑k=1m∣xki−xkj∣2)12d_{ij} = \left(\sum_{k = 1}^m|x_{ki} - x_{kj}|^2\right)^{\frac{1}{2}}dij​=(k=1∑m​∣xki​−xkj​∣2)21​

当 p=1p=1p=1 时称为曼哈顿距离( Manhattan distance ),即
dij=∑k=1m∣xki−xkj∣d_{ij} = \sum_{k = 1}^m|x_{ki} - x_{kj}|dij​=k=1∑m​∣xki​−xkj​∣

当p=∞时称为 切比雪夫距离( Chebyshev distance),取各个坐标数值差的绝对值的最大值,即

dij=max(k)∣xki−xkj∣d_{ij} = max(k)|x_{ki} - x_{kj}|dij​=max(k)∣xki​−xkj​∣

  1. 相关系数

样本之间的相似度也可以用 相关系数(correlation cofficient) 来表示。相关系数的绝对值越接近于1,表示样本越相似;越接近于0,表示样本越不相似。

1.2 类或簇

通过聚类得到的类或簇,本质是样本的子集。如果一个聚类方法假定一个样本只能属于一个类,或类的交集为空集,那么该方法称为 硬聚类(hard clustering) 方法。否则,如果一个样本可以属于多个类,或类的交集不为空集,那么该方法称为软聚类(soft clustering) 方法。本章只考虑硬聚类方法。

用 GGG 表示类或簇(cluster) ,用 xix_ixi​, xjx_jxj​表示类中的样本,用 nGn_GnG​表示 GGG 中样本的个数,用 dijd_{ij}dij​ 表示样本 xix_ixi​ 与样本 xjx_jxj​ 之间的距离。下面给出 类的定义

设 TTT 为给定的正数,若集合 GGG 中任意两个样本 xi,xjx_i,x_jxi​,xj​,有

dij≤Td_{ij} ≤ Tdij​≤T

则称 GGG 为一个类或簇。

类的特征可以通过不同角度来刻画,常用的特征有下面几种:

(1)类的均值 x~G\tilde{x}_Gx~G​,又称为类的中心

x~G=1nG∑i=1nGxi\tilde{x}_G = \frac{1}{n_G}\sum_{i = 1}^{n_G}x_ix~G​=nG​1​i=1∑nG​​xi​

(2)类的直径(diameter) DGD_GDG​
类的直径 DGD_GDG​是类中任意两个样本之间的最大距离,即

DG=max(xi,xj∈G)dijD_G = max_{(x_i,x_j∈G)}d_{ij}DG​=max(xi​,xj​∈G)​dij​

1.3 类与类之间的距离

下面考虑类 GpG_pGp​与类 GqG_qGq​之间的距离 D(p,q)D(p,q)D(p,q), 也称为连接(linkage)。类与类之间的距离也有多种定义。

(1)最短距离或单连接(single linkage)

定义类 GpG_pGp​ 的样本与 GqG_qGq​ 的样本之间的最短距离为两类之间的距离

Dpq=min{dij∣xi∈Gp,xj∈Gq}D_{pq} = min\lbrace{d_{ij}|x_i∈G_p,x_j∈G_q\rbrace}Dpq​=min{dij​∣xi​∈Gp​,xj​∈Gq​}

(2)最长距离或完全连接(complete linkage)

定义类 GpG_pGp​ 的样本与 GqG_qGq​ 的样本之间的最长距离为两类之间的距离

Dpq=max{dij∣xi∈Gp,xj∈Gq}D_{pq} = max\lbrace{d_{ij}|x_i∈G_p,x_j∈G_q\rbrace}Dpq​=max{dij​∣xi​∈Gp​,xj​∈Gq​}

(3)中心距离
定义类 GpG_pGp​ 与类 GqG_qGq​ 的中心 x~p\tilde{x}_px~p​ 与 x~q\tilde{x}_qx~q​ 之间的距离为两类之间的距离

Dpq=dx~px~qD_{pq} = d_{\tilde{x}_p\tilde{x}_q}Dpq​=dx~p​x~q​​

(4)平均距离
定义类 GpG_pGp​ 与类 GqG_qGq​ 任意两个样本之间距离的平均值为两类之间的距离

Dpq=1npnq∑xi∈Gp∑xi∈GqdijD_{pq} = \frac{1}{n_pn_q}\sum_{x_i∈G_p}\sum_{x_i∈G_q}d_{ij}Dpq​=np​nq​1​xi​∈Gp​∑​xi​∈Gq​∑​dij​

二.层次聚类

层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。层次聚类又有 聚(agglomerative) 或自下而上(ottom-up)聚类分裂(divisive) 或自上而下(top-down)聚类两种方法。因为每个样本只属于一个类,所以层次聚类属于硬聚类。

2.1 基本概念

聚合聚类开始将 每个样本各自分到一个类;之后将相距 最近的两类合并,建立一个新的类,重复此操作直到满足停止条件;得到层次化的类别。分裂聚类开始将 所有样本分到一个类;之后将已有类中相距 最远的样本分到两个新的类,重复此操作直到满足停止条件;得到层次化的类别。本书只介绍聚合聚类。

聚合聚类的具体过程如下:对于给定的样本集合,开始将每个样本分到一个类;然后按照一定规则,例如类间距离最小,将最满足规则条件的两个类进行合并;如此反复进行,每次减少一个类,直到满足停止条件,如所有样本聚为一类。

由此可知,聚合聚类需要预先确定下面三个要素:

  1. 距离或相似度;
  2. 合并规则;
  3. 停止条件。

根据这些要素的不同组合,就可以构成不同的聚类方法。距离或相似度可以是闵可夫斯基距离、马哈拉诺比斯距离、相关系数、夹角余弦。合并规则一般是类间距离最小,类间距离可以是最短距离、最长距离、中心距离、平均距离。停止条件可以是类的个数达到阈值(极端情况类的个数是1)、类的直径超过阈值。

如果采用 欧氏距离为样本之间距离;类间距离最小为合并规则,其中最短距离为类间距离;类的个数是1,即所有样本聚为一类,为停止条件,那么聚合聚类的算法如下。

2.1 算法描述

算法14.1 (聚合聚类算法)
输入:nnn 个样本组成的样本集合及样本之间的距离;
输出:对样本集合的一个层次化聚类。
(1)计算 nnn 个样本两两之间的欧氏距离 dij{d_{ij}}dij​,记作矩阵 D=[dij]n×nD = [d_{ij}]_{n×n}D=[dij​]n×n​。
(2)构造 nnn 个类,每个类只包含一个样本。
(3)合并类间距离最小的两个类,其中最短距离为类间距离,构建一个新类。
(4)计算新类与当前各类的距离。若类的个数为 1,终止计算,否则回到步(3)。
可以看出聚合层次聚类算法的复杂度是 O(n3m)O(n^3m)O(n3m),其中 m 是样本的维数, n 是样本个数。

2.3 例题

例: 给定5个样本的集合,样本之间的欧氏距离由如下矩阵 DDD 表示:

D=[dij]5×5=[0729370546250819480536150]D = [d_{ij}]_{5×5} = \left[\begin{matrix}0&7&2&9&3\\7&0&5&4&6\\2&5&0&8&1\\9&4&8&0&5\\3&6&1&5&0\end{matrix}\right]D=[dij​]5×5​=⎣⎢⎢⎢⎢⎡​07293​70546​25081​94805​36150​⎦⎥⎥⎥⎥⎤​

其中 djd_jdj​表示第 iii 个样本与第 jjj 个样本之间的 欧氏距离。显然 DDD 为对称矩阵。应用聚合层次聚类法对这5个样本进行聚类。

三.K均值聚类

k均值聚类是基于 样本集合划分 的聚类算法。k 均值聚类将样本集合划分为 k 个子集,构成 k个类,将 n 个样本分到 k 个类中,每个样本到其所属类的中心的距离最小。每个样本只能属于一个类,所以 k 均值聚类是硬聚类。下面分别介绍 k 均值聚类的模型、策略、算法,讨论算法的特性及相关问题。

3.1 模型

给定 nnn 个样本的集合 X=x1,x2,...,xnX = {x_1,x_2,... ,x_n}X=x1​,x2​,...,xn​ 每个样本由一个特征向量表示,特征向量的维数是 mmm。kkk 均值聚类的目标是将 nnn 个样本分到 kkk 个不同的类或簇中,这里假设k < n。kkk 个类G1,G2,...,GkG_1,G_2,... ,G_kG1​,G2​,...,Gk​形成对样本集合 XXX 的划分,其中Gi∩Gj=ϕ,∪i=1kGi=XG_i∩G_j = \phi,∪_{i = 1}^kG_i = XGi​∩Gj​=ϕ,∪i=1k​Gi​=X。用 CCC 表示划分,一个划分对应着一个聚类结果。

划分 CCC 是一个多对一的函数。事实上,如果把每个样本用一个整数 i∈{1,2,..,n}i∈\lbrace{1,2,..,n\rbrace}i∈{1,2,..,n} 表示,每个类也用一个整数 l∈{1,2,..,k}l∈\lbrace{1,2,..,k\rbrace}l∈{1,2,..,k} 表示,那么划分或者聚类可以用函数 l=C(i)l=C(i)l=C(i) 表示,其中i∈{1,2,...,n},l∈{1,2,..,k}i∈\lbrace{1,2,... ,n\rbrace}, l∈\lbrace{1,2,.. ,k\rbrace}i∈{1,2,...,n},l∈{1,2,..,k}。所以 kkk 均值聚类的模型是一个从样本到类的函数。

3.2 策略

k均值聚类归结为样本集合X的划分,或者从样本到类的函数的选择问题。k均值聚类的策略是通过 损失函数的最小化选取最优的划分或函数C*。

首先,采用 欧氏距离平方(squared Euclidean distance) 作为样本之间的距离d(xi,xj) .

d(xi,xj)=∑k=1m(xki−xkj)2d(x_i,x_j)= \sum_{k = 1}^m(x_{ki} - x_{kj})^2d(xi​,xj​)=k=1∑m​(xki​−xkj​)2

=∣∣xi−xj∣∣2\quad\quad=||x_i - x_j||^2=∣∣xi​−xj​∣∣2

然后,定义样本与其所属类的中心之间的距离的总和为损失函数,即

W(C)=∑l=1k∑C(i)=l∣∣xi−x~l∣∣W(C) = \sum_{l = 1}^k\sum_{C(i) = l}||x_i - \tilde{x}_l||W(C)=l=1∑k​C(i)=l∑​∣∣xi​−x~l​∣∣

式中 x~l=(x~1l,x~2l,⋯,x~ml)\tilde{x}_{l} = (\tilde{x}_{1l} ,\tilde{x}_{2l} ,\cdots,\tilde{x}_{ml} )x~l​=(x~1l​,x~2l​,⋯,x~ml​)是第 lll 个类的均值或中心,nl=∑i=1nI(C(i)=l)n_l = \sum_{i = 1}^nI(C(i) = l)nl​=∑i=1n​I(C(i)=l),I(C(i)=l)I(C(i) = l)I(C(i)=l) 是指示函数,取值为 1或 0。函数 W(C)W(C)W(C) 也称为能量,表示相同类中的样本相似的程度。

k均值聚类就是求解最优化问题:
                                                               

3.3 算法

聚类中心的初始化

样本集DDD划分之前,先选择代表点作为初始聚类核心,再将其余样本初始分类。迭代结果与初始代表点选择有关

3.3.1 K-Means ++ 中的聚类中心初始化算法:

3.3.2 聚类数 K 的确定

通常要求事先给定聚类数K,若类别数目未知,可按如下方法确定

  • 一般根据领域先验知识确定
  • 实验确定:
    令k = 1,2,3…分别进行聚类,得 Je(k)J_e(k)Je​(k),绘制Je(k)−kJ_e(k)-kJe​(k)−k曲线图;找出拐点,对应聚类数目为最终类别数。

3.3.3 K均值聚类算法描述

3.4.例题

例: 给定含有5 个样本的集合
X=[0015520002]X = \left[\begin{matrix}0&0&1&5&5\\2&0&0&0&2\end{matrix}\right]X=[02​00​10​50​52​]

试用k均值聚类算法将样本聚到2个类中。

解:

四.密度聚类(DBSCAN)

DBSCAN 算法是一种基于 高密度连通区域的、基于密度的聚类算法。能够将具有足够高密度的区域划分为簇。

4.1 相关概念

给定样本集 D={x1,⋯,xm}D = \lbrace{x_1,\cdots,x_m\rbrace}D={x1​,⋯,xm​}

4.2 算法描述

推荐文章

  • 机器学习的基本概念和相关术语
  • 机器学习入门笔记(一):模型性能评价与选择
  • 机器学习入门笔记(二):线性模型
  • 机器学习入门笔记(三):K近邻算法
  • 机器学习入门笔记(四):朴素贝叶斯分类
  • 机器学习入门笔记(五):决策树
  • 机器学习入门笔记(六):集成学习
  • 机器学习入门笔记(七):聚类

参考资料

周志华老师的《机器学习》和李航老师的《统计学习方法》。

机器学习入门笔记(七):聚类相关推荐

  1. 机器学习入门笔记总目录

    机器学习入门笔记是我参考周志华老师的<机器学习>西瓜书.李杭老师的<统计学习方法>第二版以及课程教材等资料写的. 该目录主要记录关于机器学习和算法基本概念的博客链接. ---- ...

  2. 机器学习入门笔记(五):决策树

    文章目录 一.决策树模型与学习 1.1 决策树模型 1.2 决策树与 if-then 规则 1.3 决策树与条件概率分布 1.4 决策树的学习 二.特征选择 2.1 信息增益 2.2 例题:利用信息增 ...

  3. 机器学习入门笔记(四):朴素贝叶斯分类

    文章目录 一.朴素贝叶斯法 1.1 实现原理 1.2 后验概率最大化 二.朴素贝叶斯法的参数估计 2.1 极大似然估计 2.2 学习与分类算法 2.3 朴素贝叶斯分类器例题 2.4 贝叶斯估计 推荐文 ...

  4. 机器学习入门笔记(三):K近邻算法

    文章目录 一.K近邻算法的基本概念 1.1 K近邻算法实现 二.K近邻分类三要素 2.1 距离度量 2.2 K值的选择 2.2.1 基于m-fold cross validation的 K值选择 2. ...

  5. 机器学习入门笔记(二):线性模型

    文章目录 一.基本形式 二.线性回归 2.1 离散属性连续化 2.2 最小二乘法 2.3 多元线性回归 2.4 广义线性模型 三.对数几率回归(逻辑回归) 3.1 最大似然估计 四.线性判别分析(LD ...

  6. 机器学习入门笔记(一):模型性能评价与选择

    文章目录 一.训练误差与测试误差 1.1 基本概念 1.2 训练误差 1.3 泛化误差(测试误差) 1.4 过拟合 二.模型评估方法 2.1 留出法(hold-out) 2.2 正则化 2.3 交叉验 ...

  7. 机器学习入门笔记 人工智能 黑马程序员

    机器学习入门笔记 前言 这个是根据"黑马程序员"的一套机器学习课程编写的博客.这篇博客上的案例均为课程里面的,但并没有包含所有案例,只是记录了部分. B站视频地址 文章目录 机器学 ...

  8. 十年公务员转行IT,自学AI三年,他淬炼出746页机器学习入门笔记

    整理 | Jane 编辑 | Just 出品 | AI科技大本营(ID:rgznai100) 近期,梁劲传来该笔记重大更新的消息.<机器学习--从入门到放弃>这本笔记的更新没有停止,在基于 ...

  9. 机器学习入门 笔记(二) 机器学习基础概念

    第二章 机器学习基础概念 1.机器的数据 2.机器学习的主要任务 3.监督学习和非监督学习 4.批量.在线学习.参数.非参数学习 5.哲学思考 6.环境的搭建 1.机器的数据 我们以鸢尾花的数据为例. ...

最新文章

  1. 如何超越console.log并充分利用浏览器的调试控制台
  2. 基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(一)
  3. stata安装_Stata自带的代码编辑器太丑了,那为何不使用Jupyter Notebook?
  4. mysql数据库表格怎么建立_mysql数据库表格怎么建立
  5. Python 阅读书目推荐
  6. 【51单片机快速入门指南】4.3.3: MPU6050使用Mahony AHRS算法实现六轴姿态融合获取四元数、欧拉角
  7. ajax上传多行数据及数组循环添加对象
  8. c语言2048代码linux,C语言2048小游戏课设(附源码).doc
  9. main方法中调用spring注入bean
  10. 微信dat文件用什么软件打开方式_2020微信dat文件解密工具怎么获取软件
  11. 黑马java架构师课_【黑马精品】Java架构师实战训练营
  12. 尚硅谷微服务分布式电商项目《谷粒商城》基础篇学习总结
  13. 【嗅探工具】Dns劫持Ettercap使用
  14. 苹果电脑mp3转gif_用苹果电脑做gif动图的方法终于找到了...
  15. 入门人工智能历程,学习西瓜书的体验心得
  16. Cloudera Manager拓展SPARK2-2.3.0.cloudera3-1.cdh5.6.0.p0.1-el6.parcel
  17. 计算2个拼音的相似度 PHP版本
  18. 关于jmp指令的机器码
  19. Linux——认识系统与服务
  20. 常用分割评价指标Dice、Hausdorff_95、IOU、PPV等 + Python实现

热门文章

  1. Codeforces Round #236 (Div. 2) C. Searching for Graph(水构造)
  2. java项目打war包
  3. SQL Server Report Server 报表用户权限T-SQL查询
  4. 高性能分布式锁-redisson
  5. Django中Form组件的使用
  6. Listener 快速开始
  7. DllRegisterServer的调用失败的问题解决方法
  8. 51单片机 | 模拟PWM调制控制实验
  9. free store VS heap(自由存储区VS堆)
  10. ORM Model查询页生成