| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 数据挖掘与分析课程笔记(Chapter 14) -> 正文阅读 |
|
[人工智能]数据挖掘与分析课程笔记(Chapter 14) |
数据挖掘与分析课程笔记
文章目录
笔记目录Chapter 14:Hierarchical Clustering 分层聚类14.1 预备Def.1 给定数据集 D = { x 1 , x 2 , ? ? , x n } , ( x i ∈ R d ) \mathbf{D}=\{ \mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_n\},(\mathbf{x}_i\in \mathbb{R}^d) D={x1?,x2?,?,xn?},(xi?∈Rd), D \mathbf{D} D 的一个聚类是指 D \mathbf{D} D 的划分 C = { C 1 , C 2 , ? ? , C k } \mathcal{C}=\{C_1,C_2,\cdots,C_k \} C={C1?,C2?,?,Ck?} s.t. C i ? D , C i ∩ C j = ? , ∪ i = 1 k C i = D C_i\subseteq \mathbf{D},C_i \cap C_j=\emptyset, \cup_{i=1}^k C_i=\mathbf{D} Ci??D,Ci?∩Cj?=?,∪i=1k?Ci?=D; 称聚类 A = { A 1 , ? ? , A r } \mathcal{A}=\{A_1,\cdots,A_r\} A={A1?,?,Ar?} 是聚类 B = { B 1 , ? ? , B s } \mathcal{B}=\{B_1,\cdots,B_s\} B={B1?,?,Bs?} 的嵌套,如果 r > s r>s r>s,且对于 ? A i ∈ A \forall A_i \in \mathcal{A} ?Ai?∈A ,存在 B j ∈ B B_j \in \mathcal{B} Bj?∈B 使得 A i ? B j A_i \subseteq B_j Ai??Bj? D \mathbf{D} D 的分层聚类是指一个嵌套聚类序列 C 1 , ? ? , C n \mathcal{C}_1,\cdots,\mathcal{C}_n C1?,?,Cn?,其中 C 1 = { { x 1 } , { x 2 } , ? ? , { x n } } , ? ? , C n = { { x 1 , x 2 , ? ? , x n } } \mathcal{C}_1=\{ \{\mathbf{x}_1\},\{\mathbf{x}_2\},\cdots,\{\mathbf{x}_n\}\},\cdots,\mathcal{C}_n=\{\{ \mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_n\} \} C1?={{x1?},{x2?},?,{xn?}},?,Cn?={{x1?,x2?,?,xn?}},且 C t \mathcal{C}_t Ct? 是 C t + 1 \mathcal{C}_{t+1} Ct+1? 的嵌套。 Def.2 分层聚类示图的顶点集是指所有在 C 1 , ? ? , C n \mathcal{C}_1,\cdots,\mathcal{C}_n C1?,?,Cn? 中出现的元,如果 C i ∈ C t C_i \in \mathcal{C}_t Ci?∈Ct? 且 C j ∈ C t + 1 C_j \in \mathcal{C}_{t+1} Cj?∈Ct+1? 满足,则 C i C_i Ci? 与 C j C_j Cj? 之间有一条边。 事实:
14.2 团聚分层聚类算法14.1 : 输入: D , k \mathbf{D}, k D,k 输出: C \mathcal{C} C
问题:如何定义/计算 C i , C j C_i,C_j Ci?,Cj? 的距离,即 δ ( C i , C j ) \delta(C_i,C_j) δ(Ci?,Cj?) ? δ ( C i , C j ) \delta(C_i,C_j) δ(Ci?,Cj?) 有以下五种不同方式:
证明: δ ( C i , C j ) = n i n j n i + n j ∣ ∣ μ i ? μ j ∣ ∣ 2 \delta(C_i,C_j)=\frac{n_in_j}{n_i+n_j}||\boldsymbol{\mu}_i-\boldsymbol{\mu}_j|| ^2 δ(Ci?,Cj?)=ni?+nj?ni?nj??∣∣μi??μj?∣∣2 简记: C i j : = C i ∪ C j , n i j : = n i + n j C_{ij}:=C_i\cup C_j,n_{ij}:=n_i+n_j Cij?:=Ci?∪Cj?,nij?:=ni?+nj? 注意:
C
i
∩
C
j
=
?
C_i \cap C_j=\emptyset
Ci?∩Cj?=?,故
∣
C
i
j
∣
=
n
i
+
n
j
|C_{ij}|=n_i+n_j
∣Cij?∣=ni?+nj? 故:
μ
i
j
T
μ
i
j
=
1
(
n
i
+
n
j
)
2
(
n
i
2
μ
i
T
μ
i
+
2
n
i
n
j
μ
i
T
μ
j
+
n
j
2
μ
j
T
μ
j
)
\boldsymbol{\mu}_{i j}^{T} \boldsymbol{\mu}_{i j}=\frac{1}{\left(n_{i}+n_{j}\right)^{2}}\left(n_{i}^{2} \boldsymbol{\mu}_{i}^{T} \boldsymbol{\mu}_{i}+2 n_{i} n_{j} \boldsymbol{\mu}_{i}^{T} \boldsymbol{\mu}_{j}+n_{j}^{2} \boldsymbol{\mu}_{j}^{T} \boldsymbol{\mu}_{j}\right)
μijT?μij?=(ni?+nj?)21?(ni2?μiT?μi?+2ni?nj?μiT?μj?+nj2?μjT?μj?) ☆ Lance–Williams formula
Proof:
事实:算法14.1 的复杂度为 O ( n 2 log ? n ) O(n^2\log n) O(n2logn) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 20:40:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |