机器学习入门(五)聚类算法

前面介绍的线性回归、逻辑回归和决策树都是监督算法,这篇文章将介绍聚类算法,它是一个无监督的算法。

聚类算法会根据对象某些属性得相似度,将其自动划分为不同得类别。常用的聚类算法有 KMeans(K-均值)Mean-shift(均值漂移聚类算法)DBSCAN(基于密度的空间聚类算法)

KMeans(K-均值)

KMeans(K-均值)的算法流程:

  1. 确定当前数据有多少个类型(或者叫做簇),假设为 k 个
  2. 从数据中随机选取 K 个点,作为初始的聚类中心
  3. 分别计算每个样本点到各个聚类中心的距离,并逐个分配到距离其最近的簇中
  4. 所有点分配完成后,更新K个类中心位置,类中心定义为簇内所有点在各个维度的均值;
  5. 与前一次计算得到的K个聚类中心比较,如果聚类中心点发生变化,转至步骤3;如果聚类中心点不变化,则停止迭代

效果如下图所示:

Mean-shift(均值漂移算法)

Mean-shift(均值漂移算法)的算法流程:

  1. 随机选择未分类点作为中心点
  2. 找出离中心点距离在带宽(我们来设置)之内的点,记作集合S
  3. 计算从中心点到集合S中每个元素的偏移向量M
  4. 中心点以向量M移动
  5. 重复步骤2-4,直到收敛
  6. 重复1-5直到所有的点都被归类
  7. 分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类

效果如下图所示:

DBSCAN(基于密度的空间聚类算法)

DBSCAN 的算法流程:

  1. 寻找核心点形成临时聚类簇。扫描全部样本点,如果某个样本点R半径范围内点数目>=MinPoints,则将其纳入核心点列表,并将其密度直达的点形成对应的临时聚类簇。
  2. 合并临时聚类簇得到聚类簇。对于每一个临时聚类簇,检查其中的点是否为核心点,如果是,将该点对应的临时聚类簇和当前临时聚类簇合并,得到新的临时聚类簇。
  3. 重复2的操作,直到当前临时聚类簇中的每一个点要么不在核心点列表,要么其密度直达的点都已经在该临时聚类簇,该临时聚类簇升级成为聚类簇。继续对剩余的临时聚类簇进行相同的合并操作,直到全部临时聚类簇被处理。

效果如下图所示:

总结

KMeans(K-均值) Mean-shift(均值漂移算法) DBSCAN(基于密度的空间聚类算法)
特点 1. 实现简单,收敛快;2. 需要指定类别数量 1. 自动发现类别数量,不需要人工选择;2. 需要选择区域半径 1. 过滤噪声数据;2. 不需要人为选择类别数量;3. 数据密度不同时影响结果
缺点 1. 对初始点敏感,算法的输出可能会受到初始中心点选择的影响,这可能导致局部最优而非全局最优解;2. KMeans更适用于凸形状(例如圆形、球形)的集群,对于非凸形状(例如环形)的集群处理能力较差。 1. 缺乏模板更新机制。;2. 跟踪过程中窗口宽度保持不变,目标尺度变化时跟踪效果不佳;3. 目标速度较快时,跟踪效果不好 1. 不能很好反映高维数据。2. 该算法难以适应密度不均匀的数据集
应用场景 文档分类;客户分类 图形分割、目标跟踪 异常检测;图形处理

参考

相关推荐
لا معنى له3 小时前
目标检测的内涵、发展和经典模型--学习笔记
人工智能·笔记·深度学习·学习·目标检测·机器学习
齐齐大魔王7 小时前
COCO 数据集
人工智能·机器学习
式5169 小时前
线性代数(八)非齐次方程组的解的结构
线性代数·算法·机器学习
Coding茶水间9 小时前
基于深度学习的非机动车头盔检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
brave and determined10 小时前
CANN训练营 学习(day9)昇腾AscendC算子开发实战:从零到性能冠军
人工智能·算法·机器学习·ai·开发环境·算子开发·昇腾ai
brave and determined11 小时前
CANN训练营 学习(day8)昇腾大模型推理调优实战指南
人工智能·算法·机器学习·ai实战·昇腾ai·ai推理·实战记录
源于花海12 小时前
迁移学习的第一类方法:数据分布自适应(1)——边缘分布自适应
人工智能·机器学习·迁移学习·数据分布自适应
科士威传动12 小时前
丝杆支撑座同轴度如何安装?
人工智能·科技·机器学习·自动化
_Li.13 小时前
机器学习-集成学习
人工智能·机器学习·集成学习
极度畅想13 小时前
脑电模型实战系列(三):基于 KNN 的 DEAP 脑电情绪识别 KNN 算法与 Canberra 距离深度剖析(三)
机器学习·knn·脑机接口·情绪识别·bci·canberra距离