博客
关于我
[552]python实现聚类算法(6种算法)
阅读量:621 次
发布时间:2019-03-13

本文共 1448 字,大约阅读时间需要 4 分钟。

Mean-shift 算法

概述

Mean-shift 是一种基于均值迁移的无监督学习聚类算法,由 Fukunage 在 1975 年提出。该算法通过迭代优化聚类中心,最终确定数据密度最大的区域。Yizong Cheng 在 1983 年扩展了该算法,引入核函数和权重系数,使其在图像处理、聚类等领域得到了广泛应用。

核心思想

算法核心在于不断寻找新的圆心坐标,直到密度最大的区域确定。此外,圆心的选择和半径的确定将直接影响算法效率。

算法函数

在 Scikit-learn 中,sklearn.cluster Meanshift 提供了该算法的实现。主要参数包括:

  • bandwidth:初始化若未给出,默认使用 sklearn.cluster.estimate_bandwidth 计算。
  • seeds:可选初始化圆心,默认为空。
  • bin_seeding:布尔值,默认为 False,可加速算法。

主要属性:

  • cluster_centers_:聚类中心坐标数组。
  • labels_:分类标签数组。

Spectral Clustering (谱聚类)

概述

Spectral Clustering 是一种基于图论的聚类方法,其核心思想是通过特征向量进行聚类,能够识别任意形状的样本空间。该算法将样本看作顶点,样本间的相似度作为边权重,帮助找到最优图分割。

核心思想

将样本间的相似度转换为图的边权重,然后通过特征分解得到特征向量,最终确定聚类中心。


Hierarchical Clustering (层次聚类)

概述

Hierarchical Clustering 再次分解数据,将其分类到不同的层次,直到满足终止条件(如数据收敛或达到预定聚类数)。主要分为两类:

  • 凝聚:从底层逐渐合并点群,直到形成大层次聚类。
  • 分裂:从顶层逐步细分,最终形成单个点群。

核心步骤

  • 初始化所有样本为独立群。
  • 找到最接近的两个群,合并为一个新群。
  • 重新计算新群与其余群的距离。
  • 重复上述步骤,直到满足终止条件。

  • DBSCAN (基于密度的聚类)

    概述

    DBSCAN 是一种基于密度的空间聚类算法,定义一个核心点组为一个聚类。核心点需满足点密度超过设定阈值(通常通过 epsmin_samples 确定)。

    核心步骤

  • 遍历所有样本,寻找核心点。
  • 连通核心点,扩展到包含足够多样本。
  • 标记噪声点(未能满足密度条件的点)。
  • 主要参数:

    • eps:密度计算的最大距离。
    • min_samples:核心点需包含的最小样本数。

    Birch (基于层次的聚类)

    概述

    Birch 算法通过层次聚类,逐层减少数据量,找到聚类结构。其核心思想是构建特征树,叶子节点即聚类中心。

    核心思想

  • 构建特征树,叶子节点为聚类。
  • 通过内部节点的聚类特征确定聚类数量。
  • 主要参数:

    • threshold:确定聚类数量。
    • branches_factor:每个节点最多包含的子群数。

    GaussianMixtureModel (GMM) (混合高斯模型)

    概述

    GMM 不是传统聚类算法,而是概率模型,基于多高斯分布近似数据分布。每个高斯分布代表一个聚类。

    核心思想

    • 数据分布由多个高斯分布组成,每个高斯分布代表一个聚类。
    • 通过 EM 算法估计高斯分布参数。

    主要参数:

    • n_components:高斯模型数量。
    • covariance_type:协方差类型,默认为 full

    总结

    以上算法各具特色,适用于不同应用场景。选择哪种方法需根据具体需求考量。

    转载地址:http://toaaz.baihongyu.com/

    你可能感兴趣的文章
    opencv里用calcCovarMatrix计算协方差矩阵
    查看>>
    OpenCV错误:在setSize中断言失败(s&>;=0)-尝试将图像放置在网络摄像头提要上时
    查看>>
    opencv面向对象设计初探
    查看>>
    OpenCV(1)读写图像
    查看>>
    OpenCV:不规则形状区域中每种颜色的像素数?
    查看>>
    OpenCV:概念、历史、应用场景示例、核心模块、安装配置
    查看>>
    OpenDaylight融合OpenStack架构分析
    查看>>
    OpenERP ORM 对象方法列表
    查看>>
    openEuler Summit 2022 成功举行,开启全场景创新新时代
    查看>>
    openEuler 正式开放:推动计算多样化时代的到来
    查看>>
    OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_openeuler切换root用户_su:拒绝权限_passwd: 鉴定令牌操作错误---国产瀚高数据库工作笔记001
    查看>>
    OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_踩坑_安装以后系统无法联网_启动ens33网卡---国产瀚高数据库工作笔记002
    查看>>
    OpenFeign 入门与实战
    查看>>
    OpenFeign源码学习
    查看>>
    OpenFeign的使用方式成功解锁
    查看>>
    OpenFeign组件声明式服务调用
    查看>>
    openfeign远程调用不起作用解决_使用Spring Boot的spring.factories进行注入---SpringCloud Alibaba_若依微服务框架改造---工作笔记007
    查看>>
    openfire开发(四)消息拦截器
    查看>>
    openfire源码解读之将cache和session对象移入redis以提升性能
    查看>>
    Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)
    查看>>