IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 《模式识别导论》第2章(聚类分析)学习笔记 -> 正文阅读

[人工智能]《模式识别导论》第2章(聚类分析)学习笔记

第2章 聚类分析

2.1 距离聚类的概念

理解为什么使用距离进行聚类

能从给定的例子中找出可用于分类的距离

  • 什么是聚类分析?
    • 根据模式样本之间的相似性对模式样本进行分类
  • 聚类分析的前提条件
    • 样本所属类别未知
  • 聚类分析的目标
    • 将相似的样本归为一类
    • 将不相似的样本归为不同类
  • 聚类分析的例子
    • 将班上同学分类为男同学和女同学
  • 什么是相似性?
    • 每个样本由多个特征组成X=[x1,x2,…,xn]
    • X可以看成是n维空间的一个点
    • 点之间的距离代表着样本的相似性
  • 聚类分析的关键问题
    • 特征选择:略去多余的特征,选择合适的特征
    • 特征量化:连续量的量化、数量级标准化、特征权重、归一化

2.2.1 常用的距离

会使用各种距离公式计算样本间的距离

能指出各种距离的优缺点

  • 欧氏距离(Euclid,欧几里德)用于计算任意两样本的距离

    • 输入:两个n维模式样本X1,X2
      X 1 = [ x 11 , x 12 , … , x 1 n ] T X 2 = [ x 21 , x 22 , … , x 2 n ] T X_1=[x_{11},x_{12},\dots,x_{1n}]^T\\ X_2=[x_{21},x_{22},\dots,x_{2n}]^T X1?=[x11?,x12?,,x1n?]TX2?=[x21?,x22?,,x2n?]T

    • 计算公式:
      D ( X 1 , X 2 ) = ∣ ∣ X 1 ? X 2 ∣ ∣ = ( X 1 ? X 2 ) T ( X 1 ? X 2 ) = ( x 11 ? x 21 ) 2 + ? + ( x 1 n ? x 2 n ) 2 D(X_1,X_2)=||X_1-X_2||=\sqrt{(X_1-X_2)^T(X_1-X_2)}=\sqrt{(x_{11}-x_{21})^2+\dots+(x_{1n}-x_{2n})^2} D(X1?,X2?)=X1??X2?=(X1??X2?)T(X1??X2?) ?=(x11??x21?)2+?+(x1n??x2n?)2 ?

    • 输出(标量):
      D ( X 1 , X 2 ) = ∣ ∣ X 1 ? X 2 ∣ ∣ D(X_1,X_2)=||X_1-X_2|| D(X1?,X2?)=X1??X2?

    • 要求:

      • 各维度上是相同的物理量
      • 各维度上的物理量单位相同
    • 问题:

      • 单位或物理量不同时会出现不同的聚类结果
    • 解决办法:

      • 标准化、归一化
        归 一 化 公 式 : x ′ = ( x ? x m i n ) / ( x m a x ? x m i n ) 归一化公式:x'=(x-x_{min})/(x_{max}-x_{min}) x=(x?xmin?)/(xmax??xmin?)
    • 优点:

      • 多个维度为同一个物理量且单位相同时,效果很好
    • 缺点:

      • 多个维度为不同物理量时,需要归一化
      • 多个维度为不同单位时,需要标准化
  • 马氏距离(Maharanobis)用于计算样本偏离总体的程度

    • 输入:一个n维模式样本X,样本总体的均值向量M,样本总体的协方差矩阵C
      X = [ x 1 ? x n ] ???? M = [ m 1 ? m n ] C = E { ( X ? M ) ( ( X ? M ) ) T } = E { [ ( x 1 ? m 1 ) ( x 2 ? m 2 ) ? ( x n ? m n ) ] [ ( x 1 ? m 1 ) ( x 2 ? m 2 ) … ( x n ? m n ) ] } = [ E ( x 1 ? m 1 ) ( x 1 ? m 1 ) E ( x 1 ? m 1 ) ( x 2 ? m 2 ) ? E ( x 1 ? m 1 ) ( x n ? m n ) E ( x 2 ? m 2 ) ( x 1 ? m 1 ) E ( x 2 ? m 2 ) ( x 2 ? m 2 ) ? ? ? ? ? ? E ( x n ? m n ) ( x 1 ? m 1 ) ? ? E ( x n ? m n ) ( x n ? m n ) ] = [ σ 11 2 σ 12 2 ? σ 1 n 2 σ 21 2 ? σ j k 2 ? ? ? σ k k 2 ? σ n 1 2 ? ? σ n n 2 ] X=\begin{bmatrix} {x_1}\\ {\vdots}\\ {x_n}\\ \end{bmatrix}\ \ \ \ M=\begin{bmatrix} m_1\\ \vdots\\ m_n\\ \end{bmatrix}\\ C=E\{(X-M)((X-M))^T\}=E\{ \begin{bmatrix} {(x_1-m_1)}\\ {(x_2-m_2)}\\ \vdots\\ {(x_n-m_n)}\\ \end{bmatrix} [(x_1-m_1)(x_2-m_2)\dots(x_n-m_n)] \}\\ =\begin{bmatrix} {E(x_1-m_1)(x_1-m_1)}&{E(x_1-m_1)(x_2-m_2)}&{\cdots}&{E(x_1-m_1)(x_n-m_n)}\\ {E(x_2-m_2)(x_1-m_1)}&{E(x_2-m_2)(x_2-m_2)}&{\cdots}&{\cdots}\\ {\vdots}&{\vdots}&{\vdots}&{\vdots}\\ {E(x_n-m_n)(x_1-m_1)}&{\cdots}&{\cdots}&{E(x_n-m_n)(x_n-m_n)} \end{bmatrix}\\ =\begin{bmatrix} {\sigma_{11}^2}&{\sigma_{12}^2}&{\cdots}&{\sigma_{1n}^2}\\ {\sigma_{21}^2}&{\ddots}&{\sigma_{jk}^2}&{\vdots}\\ {\vdots}&{\vdots}&{\sigma_{kk}^2}&{\vdots}\\ {\sigma_{n1}^2}&{\cdots}&{\cdots}&{\sigma_{nn}^2}\\ \end{bmatrix} X=????x1??xn??????????M=????m1??mn??????C=E{(X?M)((X?M))T}=E{??????(x1??m1?)(x2??m2?)?(xn??mn?)???????[(x1??m1?)(x2??m2?)(xn??mn?)]}=??????E(x1??m1?)(x1??m1?)E(x2??m2?)(x1??m1?)?E(xn??mn?)(x1??m1?)?E(x1??m1?)(x2??m2?)E(x2??m2?)(x2??m2?)????????E(x1??m1?)(xn??mn?)??E(xn??mn?)(xn??mn?)???????=???????σ112?σ212??σn12??σ122??????σjk2?σkk2???σ1n2???σnn2?????????

      1. E表示平均值,C计算公式中的X代表所有样本,而不是单个!!!
      2. C表示样本总体在各维上的分散情况,越大越分散
    • 计算公式:
      D 2 = ( X ? M ) T C ? 1 ( X ? M ) D^2=(X-M)^TC^{-1}(X-M) D2=(X?M)TC?1(X?M)
      公式含义:某个样本点到均值向量的距离的平方,表示样本偏离总体模式类的程度。距离越大与该模式类越不相似

    • 输出(标量):
      D 2 D^2 D2

    • 马氏距离与欧氏距离之间的关系
      D ( X 1 , X 2 ) = ∣ ∣ X 1 ? X 2 ∣ ∣ = ( X 1 ? X 2 ) T ( X 1 ? X 2 ) D 2 = ( X ? M ) T C ? 1 ( X ? M ) D(X_1,X_2)=||X_1-X_2||=\sqrt{(X_1-X_2)^T(X_1-X_2)}\\ D^2=(X-M)^TC^{-1}(X-M) D(X1?,X2?)=X1??X2?=(X1??X2?)T(X1??X2?) ?D2=(X?M)TC?1(X?M)

      1. 马氏距离依赖于总体样本

      2. 当C=I时,马氏距离为欧氏距离

      3. 到均值向量的欧氏距离相等的点A和B在同一个圆上;

        到均值向量的马氏距离相等的点A和B依赖于样本的分布(C代表了分布)

    • 要求:

      • 各维度上可以是不同的物理量
      • 各维度上的物理量单位可以不同
    • 优点:

      • 可以消除量纲的影响
      • 可以排除多个维度特征之间的关联
    • 缺点:

      • 要求总体样本数量大于每个样本的维数,否则协方差矩阵不存在逆矩阵(一般能满足)
  • 明氏距离(Minkowaki)用于计算任意两样本的距离

    • 输入:
      两 个 n 维 模 式 样 本 X i , X j X i = [ x i 1 , x i 2 , … , x i n ] T X j = [ x j 1 , x j 2 , … , x j n ] T 两个n维模式样本X_i,X_j\\ X_i=[x_{i1},x_{i2},\dots,x_{in}]^T\\ X_j=[x_{j1},x_{j2},\dots,x_{jn}]^T nXi?,Xj?Xi?=[xi1?,xi2?,,xin?]TXj?=[xj1?,xj2?,,xjn?]T

    • 计算公式:
      D m ( X i , X j ) = [ ∑ k = 1 n ∣ x i k ? x j k ∣ m ] 1 / m D_m(X_i,X_j)=[\sum_{k=1}^n|x_{ik}-x_{jk}|^m]^{1/m} Dm?(Xi?,Xj?)=[k=1n?xik??xjk?m]1/m

    • 输出(标量):
      D m ( X i , X j ) D_m(X_i,X_j) Dm?(Xi?,Xj?)

    • 公式含义:明氏距离是欧氏距离、曼哈顿距离、切比雪夫距离的推广与统一

      1. 当m=2时,明氏距离为欧氏距离

      2. 当m=1时,
        D 1 ( X i , X j ) = ∑ k = 1 n ∣ x i k ? x j k ∣ D_1(X_i,X_j)=\sum_{k=1}^n|x_{ik}-x_{jk}| D1?(Xi?,Xj?)=k=1n?xik??xjk?
        称为“街坊”距离(又称为曼哈顿距离)

      3. 当m→∞时,明氏距离为切比雪夫距离
        D ∞ = m a x ( ∣ x i k ? x j k ∣ ) , k = 1 , 2 , . . . , n D_\infty=max(|x_{ik}-x_{jk}|),k=1,2,...,n D?=max(xik??xjk?),k=1,2,...,n
        起最大作用的分量

    • 要求:

      • 各维度上是相同的物理量
      • 各维度上的物理量单位相同
    • 问题:

      • 单位或物理量不同时会出现不同的聚类结果
    • 解决办法:

      • 标准化、归一化
    • 优点:

      • 多个维度为同一个物理量且单位相同时,效果很好
    • 缺点:

      • 多个维度为不同物理量时,需要归一化
      • 多个维度为不同单位时,需要标准化
  • 汉明距离(Hamming)用于计算任意两二值样本的距离

    • 输入:
      两 个 n 维 二 值 ( 1 或 ? 1 ) 模 式 样 本 X i , X j X i = [ x i 1 , x i 2 , … , x i n ] T X j = [ x j 1 , x j 2 , … , x j n ] T 两个n维二值(1或-1)模式样本X_i,X_j\\ X_i=[x_{i1},x_{i2},\dots,x_{in}]^T\\ X_j=[x_{j1},x_{j2},\dots,x_{jn}]^T n1?1Xi?,Xj?Xi?=[xi1?,xi2?,,xin?]TXj?=[xj1?,xj2?,,xjn?]T

    • 计算公式:
      D h ( X i , X j ) = 1 2 ( n ? ∑ k = 1 n x i k ? x j k ) D_h(X_i,X_j)=\frac{1}{2}(n-\sum_{k=1}^{n}x_{ik}·x_{jk}) Dh?(Xi?,Xj?)=21?(n?k=1n?xik??xjk?)

    • 输出(标量):
      D h ( X i , X j ) 两 个 模 式 向 量 的 各 分 量 取 值 均 不 同 : D h ( X i , X j ) = n ; 两 个 模 式 向 量 的 各 分 量 取 值 全 相 同 : D h ( X i , X j ) = 0 D_h(X_i,X_j)\\ 两个模式向量的各分量取值均不同:D_h(X_i,X_j)=n;\\ 两个模式向量的各分量取值全相同:D_h(X_i,X_j)=0 Dh?(Xi?,Xj?)Dh?(Xi?,Xj?)=n;Dh?(Xi?,Xj?)=0

    • 要求:

      • 各维度上是二值数据[1,-1]
    • 问题:

      • 不是二值数据
      • 不是1和-1
    • 解决办法:

      • 二值化、码型变换
    • 优点:

      • 能很好的反映两个二值样本的相似程度
      • 与单位无关
      • 与物理量无关
    • 缺点:

      • 维度数据不是二值时,需要二值化
      • 维度数据不是1和-1时,需要码型转换
  • 角度相似性函数 用于计算任意两个样本的夹角

    • 输入:
      两 个 n 维 模 式 样 本 X i , X j X i = [ x i 1 , x i 2 , … , x i n ] T X j = [ x j 1 , x j 2 , … , x j n ] T 两个n维模式样本X_i,X_j\\ X_i=[x_{i1},x_{i2},\dots,x_{in}]^T\\ X_j=[x_{j1},x_{j2},\dots,x_{jn}]^T nXi?,Xj?Xi?=[xi1?,xi2?,,xin?]TXj?=[xj1?,xj2?,,xjn?]T

    • 计算公式:
      S ( X i , X j ) = X i T X j ∣ ∣ X i ∣ ∣ ? ∣ ∣ X j ∣ ∣ S(X_i,X_j)=\frac{X_i^TX_j}{||X_i||·||X_j||} S(Xi?,Xj?)=Xi??Xj?XiT?Xj??

    • 输出(标量):
      S ( X i , X j ) S(X_i,X_j) S(Xi?,Xj?)

    • 要求:

      • 各维度上是相同的物理量
      • 各维度上的物理量单位相同
    • 问题:

      • 单位或物理量不同时会出现不同的聚类结果
    • 解决办法:

      • 标准化、归一化
    • 优点:

      • 多个维度为同一个物理量且单位相同时,效果很好
      • 具有旋转不变性(向量旋转)
      • 二值情况下与汉明距离有点相似,也是点积
    • 缺点:

      • 多个维度为不同物理量时,需要归一化
      • 多个维度为不同单位时,需要标准化
  • 其它距离

    • 卡方距离:反映实际值与理论值的偏离程度
    • DTW距离:可用于比较两个长短不一的时间序列之间的相似度
    • 皮尔森相关系数:反映两个样本的相关性
  • 距离公式汇总表

    描述单位物理量
    欧氏两个样本向量距离
    马氏样本向量偏离中心的距离不同不同
    明氏欧氏、街坊、曼氏、卡氏推广
    汉明两个二值样本距离
    角度两个样本向量夹角

2.2.2 聚类准则

理解聚类准则要解决的问题

会根据实际应用确定合适的阈值和聚类准则函数

  • 聚类准则概念

    • 定义:根据相似性测度确定的,衡量模式之间是否相似的标准。即把不同模式聚为一类还是归为不同类的准则
    • 目标:样本间距离小到什么程度时,可归为一类?聚类准则确定
    • 聚类准则的确定方法:
      • 阈值准则:根据规定的距离阈值进行分类的准则
      • 函数准则:利用聚类准则函数进行分类的准则
  • 聚类准则函数

    • 定义:在聚类分析中,表示模式类间相似或差异性的函数

    • 准则函数讨论:

      1. 它应是模式样本集{X}和模式类别{Sj, j=1,2,…,c}的函数

        着眼于整体,而不是个体

      2. 可使聚类分析转化为寻找准则函数极值的最优化问题

    • 聚类准则函数例子:误差平方和函数
      J = ∑ j = 1 c ∑ X ∈ S j ∣ ∣ X ? M j ∣ ∣ 2 式 中 : c 为 聚 类 类 别 的 数 目 , M j = 1 N j ∑ X ∈ S j X 为 属 于 S j 集 的 样 本 的 均 值 向 量 , N j 为 S j 中 样 本 数 目 J=\sum_{j=1}^c\sum_{X\in S_j}||X-M_j||^2\\ 式中:c为聚类类别的数目,M_j=\frac{1}{N_j}\sum_{X\in S_j}X为属于S_j集的样本的均值向量,\\ N_j为S_j中样本数目 J=j=1c?XSj??X?Mj?2cMj?=Nj?1?XSj??XSj?Nj?Sj?

    • 适用范围:

      • 样本类数给定
      • 各类样本密集且相差不多,而不同类间的样本又明显分开的情况
  • 误差平方和函数的例子1

    • **最好结果示例(a):**类内误差平方和很小,类间距离很远

    在这里插入图片描述

    • **不好结果示例(b):**W1类长轴两端距离中心很远,J值较大

    在这里插入图片描述

  • 误差平方和函数的例子2

    有时可能把样本数目多的一类分拆为二,造成错误聚类

    原因:这样分开,J值会更小

    在这里插入图片描述

2.3 基于距离阈值的聚类算法

会使用各种聚类算法进行聚类

能指出各种聚类算法的优缺点

  • 基于距离阈值的聚类:近邻聚类法

    将样本按照距离阈值T分类到若干模式类中

    • 输入:
      N 个 待 分 类 的 模 式 样 本 { X 1 , X 2 , … , X N } N个待分类的模式样本\{X_1,X_2,\dots,X_N\} N{X1?,X2?,,XN?}

    • 输出:
      以 Z 1 , Z 2 , … 为 聚 类 中 心 的 若 干 模 式 类 以Z_1,Z_2,\dots为聚类中心的若干模式类 Z1?,Z2?,

    • 算法描述:

      步骤1:
      任 取 样 本 X i 作 为 第 一 个 聚 类 中 心 的 初 始 值 , 如 令 Z 1 = X 1 任取样本X_i作为第一个聚类中心的初始值,如令Z_1=X_1 Xi?Z1?=X1?
      步骤2:
      计 算 样 本 X 2 到 Z 1 的 欧 氏 距 离 D 21 = ∣ ∣ X 2 ? Z 1 ∣ ∣ , 若 D 21 > T , 定 义 一 新 的 聚 类 中 心 Z 2 = X 2 ; 否 则 X 2 ∈ 以 Z 1 为 中 心 的 聚 类 计算样本X_2到Z_1的欧氏距离D_{21}=||X_2-Z_1||,若D_{21}>T,定义一新的聚类中心Z_2=X_2;\\ 否则X_2\in 以Z_1为中心的聚类 X2?Z1?D21?=X2??Z1?D21?>T,Z2?=X2?;X2?Z1?
      步骤3:
      假 设 已 有 聚 类 中 心 Z 1 , Z 2 , 计 算 D 31 = ∣ ∣ X 3 ? Z 1 ∣ ∣ 和 D 32 = ∣ ∣ X 3 ? Z 2 ∣ ∣ , 若 D 31 > T 且 D 32 > T , 则 建 立 第 三 个 聚 类 中 心 Z 3 = X 3 ; 否 则 X 3 ∈ 离 Z 1 和 Z 2 中 最 近 者 ( 最 近 邻 的 聚 类 中 心 ) 。 . . . . . . 依 此 类 推 , 直 到 将 所 有 的 N 个 样 本 都 进 行 分 类 假设已有聚类中心Z_1,Z_2,计算D_{31}=||X_3-Z_1||和D_{32}=||X_3-Z_2||,\\ 若D_{31}>T且D_{32}>T,则建立第三个聚类中心Z_3=X_3;\\ 否则X_3\in 离Z_1和Z_2中最近者(最近邻的聚类中心)。......\\ 依此类推,直到将所有的N个样本都进行分类 Z1?,Z2?,D31?=X3??Z1?D32?=X3??Z2?D31?>TD32?>TZ3?=X3?;X3?Z1?Z2?......N

    • 优点:

      • 计算简单、快速
    • 缺点:

      • 依赖于距离阈值T的大小
      • 依赖于第一个聚类中心的位置选择
      • 依赖于待分类模式样本的排列次序
      • 依赖于样本分布的几何性质
    • 图示:阈值T、中心Z、样本顺序的影响

      用先验知识指导阈值T和起始点Z1的选择,可获得合理的聚类结果。否则只能选择不同的初值重复试探,并对聚类结果进行验算,根据一定的评价标准,得出合理的聚类结果

      在这里插入图片描述

  • 基于距离阈值的聚类:最大最小距离算法

    将样本按照距离阈值T分类到若干模式类中

    • 输入:
      N 个 待 分 类 的 模 式 样 本 { X 1 , X 2 , … , X N } N个待分类的模式样本\{X_1,X_2,\dots,X_N\} N{X1?,X2?,,XN?}

    • 输出:
      以 Z 1 , Z 2 , … 为 聚 类 中 心 的 若 干 模 式 类 以Z_1,Z_2,\dots为聚类中心的若干模式类 Z1?,Z2?,

    • 算法描述:

      步骤1:
      选 任 意 一 模 式 样 本 做 为 第 一 聚 类 中 心 Z 1 选任意一模式样本做为第一聚类中心Z_1 Z1?
      步骤2:
      选 择 离 Z 1 距 离 最 远 的 样 本 作 为 第 二 聚 类 中 心 Z 2 选择离Z_1距离最远的样本作为第二聚类中心Z_2 Z1?Z2?
      步骤3:
      逐 个 计 算 各 模 式 样 本 与 已 确 定 的 所 有 聚 类 中 心 之 间 的 距 离 , 并 选 出 其 中 的 最 小 距 离 。 例 当 聚 类 中 心 数 k = 2 时 , 计 算 D i 1 = ∣ ∣ X i ? Z 1 ∣ ∣ 和 D i 2 = ∣ ∣ X i ? Z 2 ∣ ∣ m i n ( D i 1 , D i 2 ) , i = 1 , … , N ( N 个 最 小 距 离 ) 逐个计算各模式样本与已确定的所有聚类中心之间的距离,并选出其中的最小距离。\\ 例当聚类中心数k=2时,计算D_{i1}=||X_i-Z_1||和D_{i2}=||X_i-Z_2||\\ min(D_{i1},D_{i2}),i=1,\dots,N(N个最小距离) k=2Di1?=Xi??Z1?Di2?=Xi??Z2?min(Di1?,Di2?),i=1,,N(N)
      步骤4:
      在 所 有 最 小 距 离 中 选 出 最 大 距 离 , 如 该 最 大 值 达 到 ∣ ∣ Z 1 ? Z 2 ∣ ∣ 的 一 定 分 数 比 值 ( 阈 值 T ) 以 上 ( 即 T = θ ∣ Z 1 ? Z 2 ∣ ) , 则 相 应 的 样 本 点 取 为 新 的 聚 类 中 心 , 返 回 步 骤 3 ; 否 则 聚 类 中 心 的 工 作 结 束 例 k = 2 时 , 若 m a x { m i n ( D i 1 , D i 2 ) , i = 1 , 2 , … , N } > θ ∣ ∣ Z 1 ? Z 2 ∣ ∣ , 0 < θ < 1 则 Z 3 存 在 。 ( θ : 用 试 探 法 取 为 一 固 定 分 数 , 如 1 / 2 ) 在所有最小距离中选出最大距离,如该最大值达到||Z_1-Z_2||的一定分数比值(阈值T)以上\\ (即T=\theta|Z_1-Z_2|),则相应的样本点取为新的聚类中心,返回步骤3;\\ 否则聚类中心的工作结束\\ 例k=2时,\\ 若max\{min(D_{i1},D_{i2}),i=1,2,\dots,N\}>\theta||Z_1-Z_2||,0<\theta<1\\ 则Z_3存在。(\theta:用试探法取为一固定分数,如1/2) Z1??Z2?TT=θZ1??Z2?,3k=2max{min(Di1?,Di2?),i=1,2,,N}>θZ1??Z2?,0<θ<1Z3?θ1/2
      步骤5:

      重复步骤3、4,直到没有新的聚类中心出现为止

      步骤6:
      将 样 本 { X i , i = 1 , 2 , … , N } 按 最 近 距 离 划 分 到 相 应 聚 类 中 心 对 应 的 类 别 中 将样本\{X_i,i=1,2,\dots,N\}按最近距离划分到相应聚类中心对应的类别中 {Xi?,i=1,2,,N}
      思路总结:*

      先找出两个初始类(步骤1、2);

      再确定更多的聚类中心(步骤3、4、5);

      最后分类(步骤6)

      关键:确定聚类中心(步骤3、4、5)

    • 优点:

      • 计算简单、快速(比近邻聚类慢些)
      • 不依赖于待分类模式样本的排列次序
    • 缺点:

      • 依赖于距离阈值T的大小
      • 依赖于第一个聚类中心的位置选择
      • 依赖于样本分布的几何性质
  • 基于距离阈值的聚类汇总

    基于距离阈值计算速度依赖于阈值T依赖于第一聚类中心依赖于样本排列次序依赖于几何分布
    近邻聚类
    最大最小距离聚类较快

2.4 层次聚类法

按照距离准则逐步合并,减少类别数

又称(系统聚类法、分级聚类法)

  • 输入:N个待分类的模式样本,各自为一类
    G 1 ( 0 ) , G 2 ( 0 ) , … , G N ( 0 ) G_1(0),G_2(0),\dots,G_N(0) G1?(0),G2?(0),,GN?(0)

  • 算法描述:

    步骤1:

    计算各样本间距离,得N×N维距离矩阵D(0)。“0”表示初始状态

    步骤2:
    假 设 已 求 得 距 离 矩 阵 D ( n ) ( n 为 逐 次 聚 类 合 并 的 次 数 ) , 找 出 D ( n ) 中 的 最 小 元 素 , 将 其 对 应 的 两 类 合 并 为 一 类 。 得 新 分 类 : G 1 ( n + 1 ) , G 2 ( n + 1 ) , … 假设已求得距离矩阵D(n)(n为逐次聚类合并的次数),找出D(n)中的最小元素,将其对应的两类合并为一类。\\ 得新分类:G_1(n+1),G_2(n+1),\dots D(n)(n)D(n)G1?(n+1),G2?(n+1),
    步骤3:

    计算合并后新类之间的距离,得D(n+1)

    步骤4:

    跳至步骤2,重复计算及合并

  • 输出:

    1. 取距离阈值T,当D(n)的最小分量超过给定值T时,算法停止。所得即为聚类结果
    2. 或不设阈值T,一直将全部样本聚成一类为止,输出聚类的分级树
  • 类间距计算方法

    • 最短距离法

      使用最短距离作为类间距离

      • 输入:两个聚类H、K

      • 输出(标量):最短距离

      • 计算公式:
        D H K = m i n { D ( X H , X K ) } ???? X H ∈ H , X K ∈ K D ( X H , X K ) : H 类 中 样 本 X H 和 K 类 中 样 本 X K 之 间 的 欧 氏 距 离 D H K : H 类 中 所 有 样 本 与 K 类 中 所 有 样 本 之 间 的 最 小 距 离 D_{HK}=min\{D(X_H,X_K)\}\ \ \ \ X_H\in H,X_K\in K\\ D(X_H,X_K):H类中样本X_H和K类中样本X_K之间的欧氏距离\\ D_{HK}:H类中所有样本与K类中所有样本之间的最小距离 DHK?=min{D(XH?,XK?)}????XH?H,XK?KD(XH?,XK?)HXH?KXK?DHK?HK
        在这里插入图片描述

      • 简化计算:

        如果K类由 I 和 J 两类合并而成,则,因为
        D H I = m i n { D ( X H , X I ) } ???? X H ∈ H , X I ∈ I D H J = m i n { D ( X H , X J ) } ???? X H ∈ H , X J ∈ J 所 以 : D H K = m i n { D H I , D H J } D_{HI}=min\{D(X_H,X_I)\}\ \ \ \ X_H\in H,X_I\in I\\ D_{HJ}=min\{D(X_H,X_J)\}\ \ \ \ X_H\in H,X_J\in J\\ 所以:D_{HK}=min\{D_{HI},D_{HJ}\} DHI?=min{D(XH?,XI?)}????XH?H,XI?IDHJ?=min{D(XH?,XJ?)}????XH?H,XJ?JDHK?=min{DHI?,DHJ?}
        在这里插入图片描述

      • 优点:

        • 计算简单、快速
      • 缺点:

        • 易受个别异常点影响
    • 最长距离法

      使用最长距离作为类间距离

      • 输入:两个聚类H、K

      • 输出(标量):最长距离

      • 计算公式:
        D H K = m a x { D ( X H , X K ) } ???? X H ∈ H , X K ∈ K D_{HK}=max\{D(X_H,X_K)\}\ \ \ \ X_H\in H,X_K\in K DHK?=max{D(XH?,XK?)}????XH?H,XK?K

      • 简化计算:若K类由 I , J 两类合并而成,则,因为
        D H I = m a x { D ( X H , X I ) } ???? X H ∈ H , X I ∈ I D H J = m a x { D ( X H , X J ) } ???? X H ∈ H , X J ∈ J D_{HI}=max\{D(X_H,X_I)\}\ \ \ \ X_H\in H,X_I\in I\\ D_{HJ}=max\{D(X_H,X_J)\}\ \ \ \ X_H\in H,X_J\in J\\ DHI?=max{D(XH?,XI?)}????XH?H,XI?IDHJ?=max{D(XH?,XJ?)}????XH?H,XJ?J
        所以: D H K = m a x { D H I , D H J } D_{HK}=max\{D_{HI},D_{HJ}\} DHK?=max{DHI?,DHJ?}

      • 优点:

        • 计算简单、快速
      • 缺点:

        • 易受个别异常点影响
    • 中间距离法

      使用中间距离作为类间距离

      • 输入:两个聚类H、K,其中类K由类 I 和 J 组成

      • 输出(标量):中间距离

      • 计算公式:
        D H K = D H I 2 / 2 + D H J 2 / 2 ? D I J 2 / 4 D_{HK}=\sqrt{D_{HI}^2/2+D_{HJ}^2/2-D_{IJ}^2/4} DHK?=DHI2?/2+DHJ2?/2?DIJ2?/4 ?
        如果类 K 是单个元素,则按照最长或最短距离法计算

      • 优点:

        • 可降低个别异常点的影响
      • 缺点:

        • 计算复杂
    • 重心法

      使用重心距离作为类间距离

      • 输入:两个聚类H、K,其中若 I 类中有 n I n_I nI? 个样本,J 类中有 n J n_J nJ? 个样本

      • 输出(标量):重心距离

      • 计算公式:
        D H K = n I n I + n J D H I 2 + n J n I + n J D H J 2 ? n I n J ( n I + n J ) 2 D I J 2 D_{HK}=\sqrt{\frac{n_I}{n_I+n_J}D_{HI}^2+\frac{n_J}{n_I+n_J}D_{HJ}^2-\frac{n_In_J}{(n_I+n_J)^2}D_{IJ}^2} DHK?=nI?+nJ?nI??DHI2?+nI?+nJ?nJ??DHJ2??(nI?+nJ?)2nI?nJ??DIJ2? ?
        如果类 K 是单个元素,则按照最长或最短距离法计算

      • 重心法与中间距离法区别

        • 用样本数作为权重系数,而不是固定系数
        • 好处:大类权重大,从而避免了小类的个别样本占权重太大
      • 优点:

        • 可以降低少数异常点的影响
      • 缺点:

        • 计算复杂
    • 类平均距离法

      使用重心距离作为类间距离

      • 输入:两个聚类H、K

      • 输出(标量):类平均距离

      • 计算公式:
        D H K = 1 n H n K ∑ i ∈ H ? j ∈ K d i j 2 D_{HK}=\sqrt{\frac{1}{n_Hn_K}\sum_{i\in H\ j\in K}d_{ij}^2} DHK?=nH?nK?1?iH?jK?dij2? ?
        d i j 2 d_{ij}^2 dij2? :H类任一样本 X i X_i Xi? 和 K 类任一样本 X j X_j Xj? 之间的欧氏距离平方

        n H n_H nH? :H 类的样本数量;

        n K n_K nK? :K 类的样本数量

      • 简化计算:若 K 类由 I 类和 J 类合并产生,则递推式为
        D H K = n I n I + n J D H I 2 + n J n I + n J D H J 2 D_{HK}=\sqrt{\frac{n_I}{n_I+n_J}D_{HI}^2+\frac{n_J}{n_I+n_J}D_{HJ}^2} DHK?=nI?+nJ?nI??DHI2?+nI?+nJ?nJ??DHJ2? ?

    • 距离计算公式汇总

      公式优点缺点
      最短距离法 D H K = m i n { D ( X H , X K ) } ???? X H ∈ H , X K ∈ K D_{HK}=min\{D(X_H,X_K)\}\ \ \ \ X_H\in H,X_K\in K DHK?=min{D(XH?,XK?)}????XH?H,XK?K计算简单对异常点敏感
      最长距离法 D H K = m a x { D ( X H , X K ) } ???? X H ∈ H , X K ∈ K D_{HK}=max\{D(X_H,X_K)\}\ \ \ \ X_H\in H,X_K\in K DHK?=max{D(XH?,XK?)}????XH?H,XK?K计算简单对异常点敏感
      中间距离法 D H K = D H I 2 / 2 + D H J 2 / 2 ? D I J 2 / 4 D_{HK}=\sqrt{D_{HI}^2/2+D_{HJ}^2/2-D_{IJ}^2/4} DHK?=DHI2?/2+DHJ2?/2?DIJ2?/4 ?能降低异常点的影响计算复杂
      重心法 D H K = n I n I + n J D H I 2 + n J n I + n J D H J 2 ? n I n J ( n I + n J ) 2 D I J 2 D_{HK}=\sqrt{\frac{n_I}{n_I+n_J}D_{HI}^2+\frac{n_J}{n_I+n_J}D_{HJ}^2-\frac{n_In_J}{(n_I+n_J)^2}D_{IJ}^2} DHK?=nI?+nJ?nI??DHI2?+nI?+nJ?nJ??DHJ2??(nI?+nJ?)2nI?nJ??DIJ2? ?能降低异常点的影响计算复杂
      类平均距离法 D H K = 1 n H n K ∑ i ∈ H ? j ∈ K d i j 2 D_{HK}=\sqrt{\frac{1}{n_Hn_K}\sum_{i\in H\ j\in K}d_{ij}^2} DHK?=nH?nK?1?iH?jK?dij2? ?能降低异常点的影响计算复杂

2.5 动态聚类法

  • 基本思路:

    在这里插入图片描述

  • 主要算法:

    • K-均值算法(或C-均值算法)
    • 迭代自组织的数据分析算法(ISODATA)

2.5.1 K-均值算法

  • 条件及约定:

    • 设待分类的模式特征矢量集为 { x 1 , x 2 , … , x N } \{x_1,x_2,\dots,x_N\} {x1?,x2?,,xN?}
    • 类的数目 K 是事先取定的
  • 基本思想:

    • 首先任意选取 K 个聚类中心,按最小距离原则将各模式分配到 K 类的某一类
    • 动态调整聚类中心各模式的类别,最终使准则函数取极小值
  • 准则函数:聚类集中每一样本点到该类中心的距离平方和

  • 准则函数数学公式

    1. 单个聚类集准则函数:

      对于第 j 个聚类集,准则函数定义为
      J i = ∑ i = 1 N j ∣ ∣ X i ? Z j ∣ ∣ 2 , X i ∈ S j S j : 第 j 个 聚 类 集 ( 域 ) , 聚 类 中 心 为 Z j N j : 第 j 个 聚 类 集 S j 中 所 包 含 的 样 本 个 数 J_i=\sum_{i=1}^{N_j}||X_i-Z_j||^2,X_i\in S_j\\ S_j:第j个聚类集(域),聚类中心为Z_j\\ N_j:第j个聚类集S_j中所包含的样本个数 Ji?=i=1Nj??Xi??Zj?2,Xi?Sj?Sj?:jZj?Nj?:jSj?

    2. 总体准则函数:

      对所有 K 个模式类有
      J = ∑ j = 1 K ∑ i = 1 N j ∣ ∣ X i ? Z j ∣ ∣ 2 , X i ∈ S j J=\sum_{j=1}^{K}\sum_{i=1}^{N_j}||X_i-Z_j||^2,X_i\in S_j J=j=1K?i=1Nj??Xi??Zj?2,Xi?Sj?

  • 聚类准则:聚类中心的选择应使准则函数 J 极小,即使 J j J_j Jj? 的值极小

    对于某一个聚类 j ,应有 ? J j ? Z j = 0 \frac{\partial J_j}{\partial Z_j}=0 ?Zj??Jj??=0

    ? ? Z j ∑ i = 1 N j ∣ ∣ X i ? Z j ∣ ∣ 2 = ? ? Z j ∑ i = 1 N j ( X i ? Z j ) T ( X i ? Z j ) = 0 \frac{\partial}{\partial Z_j}\sum_{i=1}^{N_j}||X_i-Z_j||^2=\frac{\partial}{\partial Z_j}\sum_{i=1}^{N_j}(X_i-Z_j)^T(X_i-Z_j)=0 ?Zj???i=1Nj??Xi??Zj?2=?Zj???i=1Nj??(Xi??Zj?)T(Xi??Zj?)=0

    可解得 Z j = 1 N j ∑ i = 1 N j X i , X i ∈ S j Z_j=\frac{1}{N_j}\sum_{i=1}^{N_j}X_i,X_i\in S_j Zj?=Nj?1?i=1Nj??Xi?,Xi?Sj?

    上式表明, S j S_j Sj? 类的聚类中心应选为该类样本的均值

  • 算法描述:

    • 步骤1:确定初始聚类中心

      任选 K 个模式特征矢量作为初始聚类中心:

      z 1 ( 1 ) , z 2 ( 1 ) , … , z k ( 1 ) z_1(1),z_2(1),\dots,z_k(1) z1?(1),z2?(1),,zk?(1)。其中括号内的序号表示迭代次数

    • 步骤2:根据聚类中心分类

      将待分类的样本集按最小距离原则分划给 K 类中的某一类:

      如果 D j ( k ) = m i n { ∣ ∣ x ? z i ( k ) ∣ ∣ } ?? ( i = 1 , 2 , … , K ) D_j(k)=min\{||x-z_i(k)||\} \ \ (i=1,2,\dots,K) Dj?(k)=min{x?zi?(k)}??(i=1,2,,K),则 x ∈ S j ( k ) x\in S_j(k) xSj?(k)

    • 步骤3:确定新的聚类中心

      以各类的均值向量为新的聚类中心 z j ( k + 1 ) z_j(k+1) zj?(k+1),即:
      z j ( k + 1 ) = 1 N j ∑ x ∈ S j ( k ) x , ??? j = 1 , 2 , … , K z_j(k+1)=\frac{1}{N_j}\sum_{x\in S_j(k)}x,\ \ \ j=1,2,\dots,K zj?(k+1)=Nj?1?xSj?(k)?x,???j=1,2,,K

    • 步骤4:结束条件

      如果 z j ( k + 1 ) = z j ( k ) ( j = 1 , 2 , … , K ) z_j(k+1)=z_j(k)(j=1,2,\dots,K) zj?(k+1)=zj?(k)(j=1,2,,K),则结束;否则,k=k+1,转(2)

  • 优点:

    • 算法简单高效
  • 缺点:

    • 结果受初始聚类中心位置影响
    • 结果受聚类中心个数影响
    • 结果受模式样本几何性质影响
    • 结果受样本顺序影响
  • 解决办法:

    • 试探不同的 K 值
    • 选择不同的初始聚类中心
  • 如何试探 K 值?

    根据聚类准则函数特点(下图)

    在这里插入图片描述

  • 准则函数特点:

    • 准则函数 J 随 K 值增大而减小
    • 准则函数到达合理 K 值前会急剧下降
    • 准则函数到达合理 K 值后会平缓下降
  • 试探 K 值的方法:

    逐步增加 K 值试探

  • 如何避免初始聚类中心数的影响?只有笨办法:多试试

    • 多次运行 K 均值算法,例如50~1000次,每次随机选取不同的初始聚类中心
    • 聚类结束后计算准则函数值
    • 选取准则函数值最小的聚类结果为最后的结果
    • 该方法一般适用于聚类数目小于10的情况

2.5.2 ISODATA

  • K-均值算法的问题

    • 类别数 K 不能改变
    • 结果受初始聚类中心影响
  • ISODATA 算法的改进

    • 动态改变类别数目

      • 通过类别的合并与分裂来实现
    • 合并

      • 如下两种情况合并:
        1. 类内样本个数太少
        2. 两聚类中心之间距离太小
    • 分裂

      • 如下情况分裂:

        某一类的类内方差过大时,宜分裂成两类,以维持合理的类内方差

  • 基本步骤和思路

    1. 初始化

      选择初始控制参数和聚类中心

    2. 分类

      按照最近邻(即最短距离)规则进行分类

    3. 分裂与合并

      根据参数分裂和合并,并获得新聚类中心

    4. 结果评估

      评估结果是否符合要求。不符则返回(2)

  • 初始化(第一步)

    设置控制参数、聚类数和初始聚类中心(见下表)

    参数描述
    K K K希望的聚类中心数目
    θ N \theta_N θN?每个聚类中最少的样本数。用于控制合并
    θ C \theta_C θC?两聚类中心间的最短距离。用于控制合并
    θ S \theta_S θS?标准差阈值。所有分量中的最大值应小于 θ s \theta_s θs?,否则分裂
    L L L每次迭代允许合并的最大聚类对数
    N c N_c Nc?初始聚类数(可不等于 K )
    z i , i = 1 , 2 , … , N c z_i,i=1,2,\dots,N_c zi?,i=1,2,,Nc?预设的初始聚类中心(也可在样本中选择)
    I I I允许迭代的最大次数
  • 分类(第二步)

    按最小距离聚类
    若 D j = m i n ( ∣ ∣ x ? z i ∣ ∣ ) , i = 1 , 2 , … , N c , 则 x ∈ S j 若D_j=min(||x-z_i||),i=1,2,\dots,N_c,\\ 则x\in S_j Dj?=min(x?zi?),i=1,2,,Nc?,xSj?

  • 初步合并(第三步)

    若有任何一个类 S j S_j Sj? ,其样本数 N j < θ N N_j<\theta_N Nj?<θN?,则舍去 S j S_j Sj?,令 N c = N c ? 1 N_c=N_c-1 Nc?=Nc??1,将原样本分配至其它类

  • 合并/分裂预处理(第四、五、六步)

    • 修正各聚类中心值(第四步)
      Z j = 1 N j ∑ X ∈ S j X , j = 1 , 2 , … , N c Z_j=\frac{1}{N_j}\sum_{X\in S_j}X,j=1,2,\dots,N_c Zj?=Nj?1?XSj??Xj=1,2,,Nc?

    • 计算类内平均距离(第五步)
      D ~ j = 1 N j ∑ x ∈ S j ∣ ∣ x ? z j ∣ ∣ , j = 1 , 2 , … , N c \widetilde{D}_j=\frac{1}{N_j}\sum_{x\in S_j}||x-z_j||,j=1,2,\dots,N_c D j?=Nj?1?xSj??x?zj?,j=1,2,,Nc?

    • 计算全体样本平均距离(第六步)
      D ~ = 1 N ∑ j = 1 N c N j D ~ j \widetilde{D}=\frac{1}{N}\sum_{j=1}^{N_c}N_j\widetilde{D}_j D =N1?j=1Nc??Nj?D j?

  • 合并/分裂判决(第七步)

    • 如这是最后一次迭代(取决于 I ),则不再合并分裂,转第十一步,善后处理;并设置 θ c = 0 \theta_c=0 θc?=0 ,防止合并发生
    • 如果 N c ≤ K / 2 N_c≤K/2 Nc?K/2 (类数远小于期望值),则转向第八步,分裂;
    • 如果此时迭代运算次数是偶数次,或 N c ≥ 2 K N_c≥2K Nc?2K ,则转至第十一步,合并;否则转至第八步,分裂
    • 基本判断步骤:
      • 先判断是否要结束
      • 再根据期望中心数判断分裂或合并
  • 分裂(第八、九、十步)

    • 计算类内标准差向量(第八步)。对每个聚类 j ,求其标准差向量
      σ j = ( σ j 1 σ j 2 ? σ j n ) t σ j i = 1 N j ∑ y k ∈ S j ( y k i ? z j i ) 2 \sigma_j=\begin{pmatrix} {\sigma_{j1}}&{\sigma_{j2}}&{\cdots}&{\sigma_{jn}} \end{pmatrix}^t\\ \sigma_{ji}=\sqrt{\frac{1}{N_j}\sum_{y_k\in S_j}(y_{ki}-z_{ji})^2} σj?=(σj1??σj2????σjn??)tσji?=Nj?1?yk?Sj??(yki??zji?)2 ?
      其中,

      σ j i \sigma_{ji} σji? 是第 j 个聚类第 i 个分量的标准差,

      y k i y_{ki} yki? 是第 j 类中第 k 个样本的第 i 分量,

      z j i z_{ji} zji? 是均值向量 z j z_j zj? 的第 i 个分量,

      n 是样本特征维数,

      j = 1 , 2 , … , N c j=1,2,\dots,N_c j=1,2,,Nc? 是聚类数,

      i = 1 , 2 , … , n i=1,2,\dots,n i=1,2,,n 是维数

    • 计算每个类的标准差向量最大分量(第九步)
      σ j ? m a x , j = 1 , 2 , … , c \sigma_{j\ max},j=1,2,\dots,c σj?max?,j=1,2,,c

    • 执行分裂(第十步)

      若任一个 σ j ? m a x , j = 1 , 2 , … , c \sigma_{j\ max},j=1,2,\dots,c σj?max?,j=1,2,,c σ j ? m a x > θ s \sigma_{j\ max}>\theta_s σj?max?>θs? ,并且有

      (a) D ~ j > D ~ \widetilde{D}_j>\widetilde{D} D j?>D N j > 2 θ N + 1 N_j>2\theta_N+1 Nj?>2θN?+1

      或有

      (b) N c ≤ K / 2 N_c≤K/2 Nc?K/2

      则把 S j S_j Sj? 分裂成两个聚类,其中心相应为 z j + z_j^+ zj+? z j ? z_j^- zj??,把原来的 S j S_j Sj? 取消,且令 N c = N c + 1 N_c=N_c+1 Nc?=Nc?+1

      转第二步进行下一轮。

      其中 z j + z_j^+ zj+? z j ? z_j^- zj?? 计算方法如下:

      给定一 k 值,0<k<1,令 r j = k σ j ? m a x r_j=k\sigma_{j\ max} rj?=kσj?max? z j + = z j + r j z_j^+=z_j+r_j zj+?=zj?+rj? z j ? = z j ? r j z_j^-=z_j-r_j zj??=zj??rj?

      其中 k 值应使 S j S_j Sj? 中的样本到 z j + z_j^+ zj+? z j ? z_j^- zj?? 的距离不同,但又应使 S j S_j Sj? 中的样本仍然在分裂后的新样本类中

  • 合并(第十一、十二、十三步)

    • 计算类间聚类中心距离(第十一步)

      i 类与 j 类的类间距离为
      D i j = ∣ ∣ z i ? z j ∣ ∣ , i = 1 , 2 , … , N c ? 1 , j = i + 1 , i + 2 , … , N c D_{ij}=||z_i-z_j||,i=1,2,\dots,N_c-1,j=i+1,i+2,\dots,N_c Dij?=zi??zj?,i=1,2,,Nc??1,j=i+1,i+2,,Nc?

    • 列出类间距离过近者(第十二步)

      比较 D i j D_{ij} Dij? θ c \theta_c θc? 并将小于 θ c \theta_c θc? 的按上升次序排列如下(该队列最大个数是控制合并对数的参数L)
      D i 1 j 1 < D i 2 j 2 < ? < D i l j l , l ≤ L D_{i1j1}<D_{i2j2}<\dots<D_{iljl},l≤L Di1j1?<Di2j2?<?<Diljl?,lL

    • 执行合并(第十三步)

      从类间距离最小的两类开始执行合并过程,此时需将 z k l z_{kl} zkl? z j l z_{jl} zjl? 合并,同时执行 N c = N c ? 1 N_c=N_c-1 Nc?=Nc??1

      新中心的计算公式如下:
      z l = 1 N i l + N j l [ N i l z i l + N j l z j l ] z_l=\frac{1}{N_{il}+N_{jl}}[N_{il}z_{il}+N_{jl}z_{jl}] zl?=Nil?+Njl?1?[Nil?zil?+Njl?zjl?]

  • 结束(第十四步)

    • 如是最后一次迭代则终止
    • 否则可根据需要转第一步或第二步(转第一步是为了更改控制数),同时迭代计数加 1
  • 算法流程图

    在这里插入图片描述

  • 优点:

    • 聚类中心个数可调
    • 初始聚类中心位置对结果影响较小
  • 缺点:

    • 结果受模式样本几何性质影响
    • 算法复杂
  • ISODATA 与 K-均值算法比较

    K-均值算法ISODATA算法
    聚类中心通过样本均值迭代运算决定
    聚类中心数可变
    结果受初始聚类中心影响
    算法复杂度简单复杂
    结果受模式样本几何性质影响

2.X 补充聚类算法

  • 基于密度的聚类算法

    • 基本思想:

      • 区域内点的密度大于某个阈值时,把它加到邻近的聚类中
      • 在一个给定半径 ε \varepsilon ε 的邻域中,至少要包含最小数目个对象
    • 优点:

      • 可发现任意形状的聚类
      • 对噪声不敏感
    • 代表算法:

      DBSCAN、OPTICS、DENCLUE

  • DBSCAN

    • 密度的定义:

      数据集中特定点的密度通过该点Eps半径之内的点计数(包括本身)来估计

    • 点的类型:

      1. 稠密区域内部的点(核心点):

        在半径Eps内含有超过MinPts数目的点,则该点为核心点

      2. 稠密区域边缘上的点(边界点):

        在半径Eps内点的数量小于MinPts,但是在核心点的邻居

      3. 稀疏区域中的点(噪声或背景点):

        任何不是核心点或边界点的点

      在这里插入图片描述

    • 各种点示例:

      • 核心点:Core point
      • 边界点:Border point
      • 噪声点:Noise point

      在这里插入图片描述

    • DBSCAN算法概念与名词解释

      • Eps邻域:给定对象半径Eps内的邻域称为该对象的Eps邻域,我们用 N E p s ( p ) N_{Eps}(p) NEps?(p) 表示点 p 的Eps半径内的点的集合,即:
        N E p s ( p ) = { q ∣ q 在 数 据 集 D 中 , d i s t a n c e ( p , q ) ≤ E p s } N_{Eps}(p)=\{q|q在数据集D中,distance(p,q)≤Eps\} NEps?(p)={qqDdistance(p,q)Eps}

      • 核心对象:如果对象的Eps邻域至少包含最小数目MinPts的对象,则称该对象为核心对象

      • 边界点:边界点不是核心点,但落在某个核心点的邻域内

      • 噪音点:既不是核心点,也不是边界点的任何点

      • 直接密度可达:给定一个对象集合D,如果 p 在 q 的Eps邻域内,而 q 是一个核心对象,则称对象 p 从对象 q 出发时是直接密度可达的(directly density-reachable)

      • 密度可达:如果存在一个对象链 p 1 , p 2 , … , p n , p 1 = q , p n = p p_1,p_2,\dots,p_n,p_1=q,p_n=p p1?,p2?,,pn?,p1?=q,pn?=p ,对于 p i ∈ D ( 1 ≤ i ≤ n ) p_i\in D(1≤i≤n) pi?D(1in) p i + 1 p_{i+1} pi+1? 是从 p i p_i pi? 关于Eps和MinPts直接密度可达的,则对象 p 是从对象 q 关于Eps和MinPts密度可达的(density-reachable)。q 是核心对象。

      • 密度相连:如果存在对象 O ∈ D O\in D OD ,使对象 p 和 q 都是从 O 关于Eps和MinPts密度可达的,那么对象 p 到 q 是关于Eps和MinPts密度相连的(density-connected)

    • DBSCAN算法原理

      • DBSCAN通过检查数据集中每点的Eps邻域来搜索簇,如果点 p 的Eps邻域包含的点多于MinPts个,则创建一个以 p 为核心对象的簇
      • 然后,DBSCAN迭代地聚集从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并
      • 当没有新的点添加到任何簇时,该过程结束
    • DBSCAN算法描述

      • 输入:包含 n 个对象的数据库,半径 ε \varepsilon ε ,最少数目MinPts
      • 输出:所有生成的簇,达到密度要求
      1. REPEAT
      2. 从数据库中抽取一个未处理过的点
      3. IF抽出的点是核心点 THEN找出所有从该点密度可达的对象,形成一个簇
      4. ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一点
      5. UNTIL 所有点都被处理
    • DBSCAN允许效果

      • 对噪音不敏感
      • 可以处理不同形状和大小的数据
    • 优点

      • 基于密度定义,相对抗噪音,能处理任意形状和大小的簇
    • 缺点

      • 当簇的密度变化太大时,会有麻烦
      • 对于高维问题,密度定义是个比较麻烦的问题
      • 参数的确定需要尝试或者先验知识

2.6 聚类结果的评价

  • 迅速评价聚类结果,在上述迭代运算中是很重要的,特别是具有高维特征向量的模式,不能直接看清聚类效果,因此,可考虑用以下几个指标来评价聚类效果:
    • 聚类中心之间的距离

      • 距离值大,通常可考虑分为不同类
    • 聚类域中的样本数目

      • 样本数目少且聚类中心距离远,可考虑是否为噪声
    • 聚类域内样本的距离方差

      • 方差过大的样本可考虑是否属于这一类
        p 1 , p 2 , … , p n , p 1 = q , p n = p p_1,p_2,\dots,p_n,p_1=q,p_n=p p1?,p2?,,pn?,p1?=q,pn?=p ,对于 p i ∈ D ( 1 ≤ i ≤ n ) p_i\in D(1≤i≤n) pi?D(1in) p i + 1 p_{i+1} pi+1? 是从 p i p_i pi? 关于Eps和MinPts直接密度可达的,则对象 p 是从对象 q 关于Eps和MinPts密度可达的(density-reachable)。q 是核心对象。

      • 密度相连:如果存在对象 O ∈ D O\in D OD ,使对象 p 和 q 都是从 O 关于Eps和MinPts密度可达的,那么对象 p 到 q 是关于Eps和MinPts密度相连的(density-connected)

    • DBSCAN算法原理

      • DBSCAN通过检查数据集中每点的Eps邻域来搜索簇,如果点 p 的Eps邻域包含的点多于MinPts个,则创建一个以 p 为核心对象的簇
      • 然后,DBSCAN迭代地聚集从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并
      • 当没有新的点添加到任何簇时,该过程结束
    • DBSCAN算法描述

      • 输入:包含 n 个对象的数据库,半径 ε \varepsilon ε ,最少数目MinPts
      • 输出:所有生成的簇,达到密度要求
      1. REPEAT
      2. 从数据库中抽取一个未处理过的点
      3. IF抽出的点是核心点 THEN找出所有从该点密度可达的对象,形成一个簇
      4. ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一点
      5. UNTIL 所有点都被处理
    • DBSCAN允许效果

      • 对噪音不敏感
      • 可以处理不同形状和大小的数据
    • 优点

      • 基于密度定义,相对抗噪音,能处理任意形状和大小的簇
    • 缺点

      • 当簇的密度变化太大时,会有麻烦
      • 对于高维问题,密度定义是个比较麻烦的问题
      • 参数的确定需要尝试或者先验知识

2.6 聚类结果的评价

  • 迅速评价聚类结果,在上述迭代运算中是很重要的,特别是具有高维特征向量的模式,不能直接看清聚类效果,因此,可考虑用以下几个指标来评价聚类效果:
    • 聚类中心之间的距离
      • 距离值大,通常可考虑分为不同类
    • 聚类域中的样本数目
      • 样本数目少且聚类中心距离远,可考虑是否为噪声
    • 聚类域内样本的距离方差
      • 方差过大的样本可考虑是否属于这一类
  • 模式聚类目前还没有一种通用的放之四海而皆准的准则,往往需要根据实际应用来选择合适的方法
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:05:55  更:2021-08-20 15:08:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:34:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码