- 非负性:
dist(xi,xj)⩾0
- 同一性:
dist(xi,xj)=0 当且仅当 xi=xj
- 对称性:
dist(xi,xj)=dist(xj,xi)
- 直递性:
dist(xi,xj)⩽dist(xi,xk)+dist(xk,xj)
distmk(xi,xj)=(u=1∑n∣xiu−xju∣p)p1
VDMp(a,b)=i=1∑kmu,amu,a,i−mu,bmu,b,ip
其中, 明可夫斯基距离常用于离散有序/连续距离度量,
数值差异度量 (Value Difference Metric) 常用于离散无序距离度量.
最小化数据点到其所属簇中心的距离平方和 (即组内误差平方和 WCSS):
- 初始化: 随机选择 k 个质心 (初始聚类中心)
- 分配 (Assignment): 分配数据点给距离最近的质心所在的簇 dji=∣∣xj−μi∣∣2
- 更新 (Update): 计算各簇的数据点的均值, 设为新的质心
- 重复: 交替执行第 2 步和第 3 步, 直到收敛
密度聚类 (Density-Based Clustering) 基于样本分布紧密程度来确定聚类结构.
通过考察样本之间的可连接性, 将具有足够高密度的区域划分为簇:
- ϵ-邻域 (ϵ-Neighborhood):
距离不超过 ϵ 的样本集合
- 核心对象 (Core Object):
ϵ-邻域内至少包含 MinPts 个样本
- 密度直达 (Directly Density-Reachable):
位于核心对象 xi 的 ϵ-邻域内, xi→xj
- 密度可达 (Density-Reachable):
xi→p1→p2→⋯→pn→xj
- 密度相连 (Density-Connected):
如上序列任意两点密度相连
主成分分析 (PCA) 是一种常用的数据降维方法,
将 m 个 n 维向量降为 k 维, 保证低维子空间对样本具有最大的可分性.
其目标是选择 k 个单位 (模为 1) 正交基, 使得原始数据变换到这组基上后,
各字段两两间协方差为 0 (各字段完全独立), 各字段的方差最大 (每维特征分散),
即在正交的约束下, 取最大的 k 个方差:
C=m1XXT=m1i=1∑m(xi1)2i=1∑mxi2xi1⋮i=1∑mxinxi1i=1∑mxi1xi2i=1∑m(xi2)2⋮i=1∑mxinxi2……⋱…i=1∑mxi1xini=1∑mxi2xin⋮i=1∑m(xin)2
协方差矩阵 C 是一个对称矩阵, 其对角线分别为各字段的方差,
其第 i 行 j 列和第 j 行 i 列元素相同, 表示 i 和 j 两个字段的协方差.
将协方差矩阵对角化, 得到基于矩阵运算的 PCA 算法如下:
- 将原始数据按列组成 n 行 m 列矩阵 X.
- 将 X 的每一行 (代表一个属性字段) 进行零均值化, 即减去这一行的均值,
使得 xˉ=0, 方便方差与协方差的计算.
- 求出协方差矩阵 C=m1XXT 的特征值及对应的特征向量.
- 将特征向量按对应特征值大小从上到下按行排列成矩阵, 取前 k 行组成矩阵 P.
- Y=PX 即为降维到 k 维后的数据.
xi′=σxi−μ
变分自编码器 (VAE) 是一种生成模型, 通过学习数据的潜在分布来生成新的数据:
ZX′L=Encoder(X)=Decoder(Z)=Min Loss(X′,X)
变分自动编码器学习的是隐变量 (特征) Z 的概率分布, z∼N(0,I),x∣z∼N(μ(z),σ(z)),
通过深度网络来学习 q(z∣x) 的参数, 一步步优化 q 使其与 p(z∣x) 十分相似, 便可用它来对复杂的分布进行近似的推理:
- Feature disentangle:
voice conversion.
- Discrete representation:
unsupervised classification, unsupervised summarization.
- Anomaly detection:
face detection, fraud detection, disease detection, network intrusion detection.
- Compression and decompression.
- Generator.

生成对抗网络 (GANs) 由两个网络组成: 生成器 (Generator) 和判别器 (Discriminator).
生成器的目标是生成尽可能逼真的数据, 判别器的目标是尽可能准确地区分真实数据和生成数据.
两个网络相互对抗, 生成器生成数据 (decoder in VAE), 判别器判断数据真伪 (1/0 classification neural network),
生成器根据判别器的判断结果调整生成数据的策略, 不断提升生成数据的逼真程度.
G∗D∗=argGminDmaxV(G,D)=argDmaxV(D,G)
