聚类算法

聚类算法

质量不错的聚类算法讲解视频:https://www.bilibili.com/video/BV1ST411w7De?t=1.4

相关概念

K-MEANS

需要指定簇的个数K,也就是分成几类

质心:也就是向量各个维度取平均

距离的度量:常用欧几里得距离和余弦相似度

优化的目标如下,其中C为质心,dist为距离的度量 算法流程:

  1. 随机初始化K个点,然后根据这些点进行聚类
  2. 重新计算质心,然后重新进行一轮的计算
  3. 直到所有的点不再发生变化

优点:简单快速,适合常规数据集

缺点:

  1. K值难以确定
  2. 复杂度和样本呈线性关系
  3. 很难发现任意形状的簇,比如一个圆形和圆心

一个很有趣的K-MEANS在线实验(可以可视化):https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

值得注意的是,K-MEANS若初始值选的不好,结果可能差异非常大

DBSCAN

快速了解DBSCAN的流程:https://www.bilibili.com/video/BV17L4y147W2?t=1.7

核心点:若某点P的密度达到算法设定的阈值则P为核心点

直接密度可达:若某点p在点q的r邻域内,且q是核心点则p-q直接密度可达

密度可达:若有一个点的序列比如q0,q1,q2,任意两个相邻的p都是直接密度可达的, 则q0到q2密度可达,说白了就是直接密度可达的"传播"

噪声点:不属于任何一个簇

参数的选择:

一般来说,在数据集中任选一个点p,计算p到其它点的距离,然后进行排序,寻找突变点,据此选择半径。阈值在距离中选择,一般取的比较小。

优点:

  1. 不需要指定簇的个数
  2. 可以发现任意形状的簇
  3. 擅长找到离群点
  4. 只需要两个参数

缺点:

  1. 高纬度数据优点困难
  2. 参数对结果影响非常大,难以选择
  3. 效率低

DBSCAB在线的实验(数据可视化): https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/

聚类算法评估指标

准确率accuracy

https://blog.csdn.net/qq_43498345/article/details/120271604

accuracy=

同质性Homogeneity

https://zhuanlan.zhihu.com/p/145989213

同质性用来衡量聚类结果中每个集群是否只包含一个类别的样本,也就是所有的簇中分类完全正确的比例,取值在0到1之间,0最差,1最好

完整性completeness

https://zhuanlan.zhihu.com/p/145989213

完整性用来衡量聚类结果中每个真实类别是否都分配到同一个集群中,取值在也0到1之间,0最差,1最好


聚类算法
https://d4wnnn.github.io/2023/08/04/AI/聚类算法/
作者
D4wn
发布于
2023年8月4日
许可协议