• 【秋招基础知识】【4】常见聚类算法


    Kmeans

    流程:
    (1) 首先选取K个样本点或随机生成K个点作为K个簇的初始中心。
    (2) 计算所有样本点到K个簇中心的距离,将样本归到距离最近的簇中心簇中。
    (3) 计算每个簇的平均特征更新K个簇的中心。
    (4) 重复(2)(3)两个过程。
    优点
    (1) 简单,时间复杂度低.
    (2) 对密集的、球状或团状的区别明显的凸数据集而言聚类效果好。
    缺点
    (1) 对离群点和噪声点敏感
    (2) 需要提前指定簇数K,对K敏感
    (3) 对初始的聚类中心选择敏感
    (4) 只能聚凸(集合中的两个点,连线上的任意一点也在该集合内,即类似球形)的数据集。

    层次聚类

    层次聚类分为凝聚层次聚类和分裂层次聚类。
    分裂层次聚类为自顶而下,先认为所有样本都属于一个簇,然后不断迭代划分成更小的簇,直到每个簇中只有一个样本为止。
    凝聚层次聚类为自下而上,先认为所有样本自身为一个簇,然后不断迭代合并簇,直到最后所有的样本都只属于一个簇为止。
    优点
    (1) 无需提前制定簇数
    (2) 可以聚类成非凸形状
    缺点
    (1) 计算复杂度高
    (2) 奇异值(离群点和噪声点)会产生很大影响
    (3) 可能会聚成链状。

    DBSCAN密度聚类

    优点:
    (1) 可以对任意形状密集的数据集聚类(Kmeans只适用于凸数据集)
    (2) 对异常点不敏感,可以聚类过程中自动排除异常点;聚类结果稳定,不随初始值改变。
    缺点:
    (1) 数据集样本密度不均匀,各个簇内间距相差较大时,聚类效果较差
    (2) 调参较难,需要调节eps和minpoints
    (3) 数据集较大时聚类计算复杂度大。

    谱聚类

    谱聚类的思想来源于图论,它把待聚类的数据集中的每一个样本看做是图中一个顶点,这些顶点连接在一起,连接的这些边上有权重,权重的大小表示这些样本之间的相似程度。同一类的顶点它们的相似程度很高,在图论中体现为同一类的顶点中连接它们的边的权重很大,不在同一类的顶点连接它们的边的权重很小。谱聚类的最终目标就是找到一种切割图的方法,使得切割之后的各个子图内的权重很大,子图之间的权重很小。
    谱聚类中可以通过SVD进行降维。
    谱聚类通过将离散问题连续化,通过Rayleigh quotient将特征向量和特征值与最小割问题建立联系。
    优点:
    (1) 谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法比如K-Means很难做到.
    (2) 由于使用了降维,因此在处理高维数据聚类时的复杂度比传统聚类算法好。
    缺点:
    (1) 如果最终聚类的维度非常高,则由于降维的幅度不够,谱聚类的运行速度和最后的聚类效果均不好。
    (2) 聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不同。

  • 相关阅读:
    C++动态内存分配
    区分bug 前后端归属之后,我再也不背锅了
    WPF 3D 摄像机LookDirection属性研究
    算法基础:并查集
    多模态文档理解综述:Pix2Struct
    目标检测|边框检测框转换,交并比计算 代码实现
    Js逆向教程-02浏览器调试工具-Network面板
    java计算机毕业设计环巢湖区域旅游网站源码+mysql数据库+系统+lw文档+部署
    Java冒泡排序
    Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别
  • 原文地址:https://blog.csdn.net/qq_29380039/article/details/126070354