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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 阅读笔记:《机器学习》西瓜书(9)——聚类 -> 正文阅读

[人工智能]阅读笔记:《机器学习》西瓜书(9)——聚类

聚类任务

无监督学习中,由于训练样本并没有标签,一般使用聚类来揭示训练样本数据中的内在规律,为进一步的数据分析提供基础。聚类试图将训练样本在属性空间(特征空间、样本空间)中划分出若干个通常不相交的子集(簇)。这样,每个簇就对应于一些潜在的类别。
为了保证聚类过程的正确性,需要使用一种定量的指标进行描述,这种指标称为性能度量,用于评估聚类结果的好坏。在聚类过程中,为了将潜在的同类样本分在一类,一般会采用一种方法来描述不同样本间的距离,这种方法称作距离计算,显然需要使潜在的同类样本其距离越紧越好。

性能度量

通过构造某种性能度量,我们可以描述聚类结果的好坏。一般来说,我们希望聚类结果的簇内相似度高且簇间相似度低。
聚类的性能度量一般分为两种,一种是外部指标,即将聚类结果与某一个参考模型进行比较;另一种是内部指标,即不使用任何参考模型,直接考察聚类结果。

外部指标

对于数据集 D = x 1 , x 2 , … , x m D={\boldsymbol{x_1},\boldsymbol{x_2},\dots,\boldsymbol{x_m}} D=x1?,x2?,,xm?,若通过聚类给出簇划分KaTeX parse error: Undefined control sequence: \C at position 28: …{C_1,C_2,\dots,\?C?_k},参考模型给出的簇划分为 C ? = C 1 ? , C 2 ? , … , C s ? \mathcal{C}^*={C_1^*,C_2^*,\dots,C_s^*} C?=C1??,C2??,,Cs??,令 λ \lambda λ λ ? \lambda^* λ?分别表示待评价聚类和参考模型对应的簇标记。定义:
在这里插入图片描述
这里,有 a + b + c + d = m ( m ? 1 ) 2 a+b+c+d=\frac{m(m-1)}{2} a+b+c+d=2m(m?1)?成立。
常用的聚类性能度量的外部指标如下:
在这里插入图片描述
在这里插入图片描述
上述性能度量的结果在 [ 0 , 1 ] [0,1] [0,1]之间,且值越大越好。

内部指标

在这里插入图片描述
其中, dist ( ? , ? ) \text{dist}(\cdot,\cdot) dist(?,?)用于计算两个样本间的距离, μ \boldsymbol{\mu} μ表示簇 C C C的中心点 μ = 1 C ∑ 1 ≤ i ≤ ∣ C ∣ \boldsymbol{\mu}=\frac{1}{C}\sum_{1\leq i\leq |C|} μ=C1?1iC? avg ( C ) \text{avg}(C) avg(C)表示簇 C C C内个样本间的平均距离, diam ( C ) \text{diam}(C) diam(C)表示簇 C C C内样本的最大距离, d min ? ( C i , C j ) d_{\min}(C_i,C_j) dmin?(Ci?,Cj?)表示两簇样本彼此的最近距离, d den ( C i , C j ) d_{\text{den}}(C_i,C_j) dden?(Ci?,Cj?)表示两簇样本中心点的距离。
常用的聚类性能度量的内部指标如下:
在这里插入图片描述
显然, DBI 的值越小越好,而DI 则相反,值越大越好。

距离计算

函数 dist ( ? , ? ) \text{dist}(\cdot,\cdot) dist(?,?)用于计算两个样本间的距离。一般来说,我们习惯于将样本的各属性表示在一个向量中,然后通过某种距离的定义计算两个向量间的距离。然而在实际应用过程中,并不是所有的属性值都能直接定量进行表示。我们一般称能够定量表示的属性为有序属性,反之为无序属性

有序属性的距离计算

对给定的样本 x i = ( x i 1 ; x i 2 ; … ? ; x i n ) \boldsymbol{x_i}=(x_{i1};x_{i2};\dots;x_{in}) xi?=(xi1?;xi2?;;xin?) x j = ( x j 1 ; x j 2 ; … ? ; x j n ) \boldsymbol{x_j}=(x_{j1};x_{j2};\dots;x_{jn}) xj?=(xj1?;xj2?;;xjn?),最常用的距离计算方法为闵可夫斯基距离(Minkowski distance)
dis m k ( x i , x j ) = ( ∑ u = 1 n ∣ x i u ? x j u ∣ p ) 1 p \text{dis}_{mk}(\boldsymbol{x_i},\boldsymbol{x_j})={\Bigg( \sum_{u=1}^n{{|x_{iu}-x_{ju}|}^p}\Bigg)}^{\frac{1}{p}} dismk?(xi?,xj?)=(u=1n?xiu??xju?p)p1?

无序属性的距离计算

对于无序属性,一般采用VDM方法来量化各属性值间的距离,然后结合闵可夫斯基距离即可计算不同样本间的距离。
假设有 n c n_c nc?个有序属性, n ? n c n-n_c n?nc?个无序属性,有:
在这里插入图片描述
在这里插入图片描述
其中 m u , a m_{u,a} mu,a?表示在属性 u u u上取值为 a a a的样本数, m u , a , i m_{u,a,i} mu,a,i?表示在簇 C i C_i Ci?中在属性 u u u上取值为 a a a的样本数。
此外,当样本空间中不同属性的重要性不同时,可使用"加权距离

原型聚类

此类算法假设聚类结构能通过一组原型刻画。算法先对原型进行初始化,然后对原型进行迭代更新求解。

k均值算法

k均值算法先随机选取k(待分类类别数)个样本点作为初始均值向量,然后通过更新离均值向量更近的点为均值向量对应的类别,再重新计算各类别均值向量的方式,不断迭代直到均值向量无法再被更新。算法流程如下:
在这里插入图片描述

学习向量量化

学习向量量化也先初始化一组原型向量,然后随机选取样本点并找到离样本点最近的原型向量,根据原型向量与该样本点是否同类别来更新原型向量:相同类别则原型向量按一定步长靠近样本点,反之则远离。算法流程如下:
在这里插入图片描述

高斯混合聚类

这种方法采用概率模型而非原型向量来描述聚类原型。它假设对于每个类别来说,样本 x \boldsymbol{x} x服从高斯分布:
p ( x ) = 1 ( 2 π ) n 2 ∣ Σ ∣ 1 2 e ? 1 2 ( x ? μ ) T Σ ? 1 ( x ? μ ) p(\boldsymbol{x})=\frac{1}{{(2\pi)}^{\frac{n}{2}}{|\Sigma|}^{\frac{1}{2}}}e^{-\frac{1}{2}{(\boldsymbol{x}-\boldsymbol{\mu})^\boldsymbol{T}\Sigma^{-1}(\boldsymbol{x}-\boldsymbol{\mu})}} p(x)=(2π)2n?Σ21?1?e?21?(x?μ)TΣ?1(x?μ)
因此,对于 k k k个类别来说,对样本 x \boldsymbol{x} x,有高斯混合分布:
p M ( x ) = ∑ i = 1 k α i ? p ( x ∣ μ i , Σ i ) p_{\mathcal{M}}(\boldsymbol{x})=\sum_{i=1}^{k}{\alpha_i \cdot p(\boldsymbol{x}\mid \boldsymbol{\mu_i},\Sigma_i)} pM?(x)=i=1k?αi??p(xμi?,Σi?)
α i \alpha_i αi?为混合系数,令 ∑ i = 1 k α i = 1 \sum_{i=1}^k{\alpha_i}=1 i=1k?αi?=1
这样,只要能够确定样本 x j \boldsymbol{x_j} xj?是由哪个高斯分布生成的(这里用 z j z_j zj?表示),即可确定该样本属于哪一类。这种选择可由样本确定的条件下计算各类的后验概率得到。根据贝叶斯定理:
在这里插入图片描述
这个后验给出了样本 x j \boldsymbol{x_j} xj?是由第 i i i个高斯混合成分生成的概率,也即其属于第 i i i类的概率,将其简记为 γ j i \gamma_{ji} γji?。因此,对于每个样本 x j \boldsymbol{x_j} xj?的簇标记 λ j \lambda_j λj?,应有:
λ j = arg ? max ? i ∈ 1 , 2 , … , k γ j i \lambda_j=\mathop{\arg\max}\limits_{i\in{1,2,\dots,k}}{\gamma_{ji}} λj?=i1,2,,kargmax?γji?
从原型聚类的角度来看,高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应的后验概率确定。
为求解模型参数 ( α i , μ i , Σ i ) ∣ 1 ≤ i ≤ k {(\alpha_i,\boldsymbol{\mu_i},\boldsymbol{\Sigma_i})\mid 1\leq i\leq k} (αi?,μi?,Σi?)1ik
在这里插入图片描述
一般使用EM算法进行迭代求解。
高斯混合聚类算法流程如下:
在这里插入图片描述
其中提到的式9.30即是上述提到的样本确定的条件下其属于某一类的后验概率。

密度聚类

此类算法假设聚类结构能通过样本分布的紧密程度确定。一般通过考察样本间的可连接性,不断扩展聚类簇以得到最终结果。

DBSCAN

DBSCAN是一种著名的密度聚类算法。这种算法通过 ? \epsilon ?-邻域和邻域中的样本个数 M i n P t s MinPts MinPts来构建可连接性,并根据是否可连接进行分类。其算法流程如下:
在这里插入图片描述

层次聚类

层次聚类试图在不同层次对数据集进行划分(自底向上或自顶向下),从而形成树形的聚类结构。

AGNES

AGNES是一种采用自底向上聚合策略的层次聚类法。它先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。根据聚类簇间距离计算方式的不同,AGNES 算法被相应地称为“单链接”(最小距离)、“全链接”(最大距离)或“均链接”(平均距离)算法。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:36:04  更:2021-08-12 16:38:58 
 
开发: 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:35:13-

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