聚类分析

机器学习

2 min read

聚类分析

无监督学习

没有事先标记 -> 没有监督信息约束

​ -> 扩大样本量,节省人力成本

自动分类分群

应用 : 聚类分析 关联规则 维度缩减(发现关联,减少数据量)

群分析(聚类分析):

根据对象某些属性的相似度,自动划分为不同类别

应用

商业里的客户划分

生物里基因的聚类分析

新闻关联

方法

Kmeans 简介

根据数据与中心点距离划分类别

基于类别数据更新中心点

重复过程直到收敛

简单

需要指定分类数量

Meanshift 简介

在数据点周围检索

向中心移动,直至密度最高处

自动识别分类个数

需要指定范围半径

DBSCAN 简介

基于密度的空间聚类算法

特点

有效过滤噪声

不需要人为选择

密度不同对结果有影响

KMeans Mean- Shift KNN

K均值聚类 Kmeans

K均值聚类分析(最基础,最重要

数据点到中心的距离dist(xi,ujt)根据距离归类xiunearestt中心点更新ujt+1=1kxisjxi数据点到中心的距离\hspace{1cm}dist(x_i,u_j^t) \\ 根据距离归类 \hspace{1cm} x_i \in u_{nearest}^t \\ 中心点更新 \hspace{1cm} u_j^{t+1} = \frac{1}{k}\sum_{x_i \in s_j}x_i

流程

  1. 随机取n个中心点
  2. 根据点到中心距离划分类别
  3. 根据类别重新更新聚类中心
  4. 重复以上步骤 直到收敛(2,3)

优点

原理简单 实现容易 收敛速度快

参数少,方便使用

缺点

必须设置分类(簇)的数量

随机选择初始聚类中心, 可能缺乏一致性不同的初始中心得到的分类结果有偏差

KNN 算法 (监督学习)

K近邻分类 (Kmeans类似)

找K个近邻, 近邻中占主导的(多数)的标签即为该数据点的标签(同一类)

均值漂移聚类 Meanshift

均值漂移M(x)=1kxish(uxi)中心更新ut+1=Mt+utsh是一个以u为中心点,特定半径为半径的高维球均值漂移 \hspace{1cm} M{(x)}=\frac{1}{k}\sum_{x_i \in s_h}(u-x_i) \\ 中心更新 \hspace{1cm} u^{t+1}=M^t+u^t \\ s_h 是一个以u为中心点,特定半径为半径的高维球

聚类分析, 在图像捕捉中也有重要作用

算法

  1. 随机选择未分类点作为中心点
  2. 找出离中心点距离在带宽之内的点,记作集合S
  3. 计算从中心点到带宽内各个点的偏移向量
  4. 中心点向M 移动
  5. 重复2-4 直到收敛
  6. 重复1-5直到所有点都被归类

数学公式示例

欧几里得距离

两个点 x=(x1,x2,,xn)x = (x_1, x_2, \dots, x_n)y=(y1,y2,,yn)y = (y_1, y_2, \dots, y_n) 之间的欧几里得距离:

d(x,y)=i=1n(xiyi)2d(x,y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}

K-means 算法目标函数

K-means 算法的目标是最小化簇内平方和:

J=i=1kxCixμi2J = \sum_{i=1}^{k} \sum_{x \in C_i} \|x - \mu_i\|^2

其中 μi\mu_i 是第 ii 个簇的中心。

高斯混合模型

高斯混合模型的概率密度函数:

p(x)=k=1KπkN(xμk,Σk)p(x) = \sum_{k=1}^{K} \pi_k \mathcal{N}(x | \mu_k, \Sigma_k)

内联公式测试:E=mc2E = mc^2ex2dx=π\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}