聚类算法

聚类算法

  • 聚类的概念:
    • 无监督问题:我们手里没有标签了
    • 聚类:相似的东西分到一组,跟分类问题相似。
    • 刚开始的数据集上没有颜色的标记,也没有告诉我们绿色的是哪些,红色的是哪些,蓝色的是哪些,根据一种相似度度量的方式,把相似的东西归到一类。从图中可以看出,数据集明显被分为3类。
      image.png
    • 难点:如何评估,如何调参

1. K-MEANS算法

  • 基本概念:
    • 要得到簇的个数,需要指定K值,例如k=3,把数据集聚为3堆。如上图所示。
    • 质心:均值,即向量各维取平均值即可。
    • 距离的度量:常用欧几里得距离和余弦相似度(先标准化),计算两个点有多相似。
    • 步骤:
      1. 随机选择K个特征空间内的点作为初始的聚类中心
      2. 对于其他每个点计算到K个中心的距离,未知的点选择最近的一个中心作为标记类别
      3. 分别计算这K个簇群的平均值,把新的平均值与旧的中心点进行比较,结果相同:结束聚类。如果不相同:把新的平均值当做新的中心点,重复第二步。
    • 评估标准:
      • 轮廓系数
        轮廓系数公式
      • 注:对于每个点i为已聚类数据中的样本,bi为i到其他簇群的所有样本的距离最小值,ai为i到本身簇群的距离平均值(i到其他样本点的距离取平均值)。最终计算出所有样本点的轮廓系数平均值。
      • 如果sc𝑖小于0,说ai 的平均距离大于最近的其他簇。聚类效果不好
      • 如果sci越大,说明ai的平均距离小于最近的其他簇。聚类效果好。
      • 轮廓系数的值是介于[-1,1],越趋近于1,代表内聚度和分离度都相对较好。
      • 举个例子:


        例子
        • 对于上图:
          1. 计算蓝1到自身类别的点距离的平均值ai.
          2. 计算蓝1分别到红色类别,绿色类别所有的点的距离,求出平均b1,b2,取其中最小的值当做bi。
    • 总结:
      • 优势:简单,快速,适合常规数据集。
      • 劣势:
        • K值难确定
        • 复杂度与样本呈线性关系
        • 很难发现任意形状的簇

2. DBSCAN(含噪声的基于密度的空间聚类方法)

Density-Based Spatial Clustering of Applications with Noise

  • 基本概念:
    • 核心对象:若某个点的密度达到算法设定的阈值则其为核心点。(即r领域内点的数量不小于minPts)。指定一个点,以改点为中心,r为半径画圆,圆里面的点的个数超过设置的阈值,则称改点为核心对象。
    • 领域的距离阈值:设定的半径r
    • 直接密度可达:若某点p在点q的r领域内,且q是核心点则p-q直接密度可达。
    • 密度可达:若有一个点的序列q0,q1,q2,...,qk,对任意q_i - q_i-1是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的“传播”。
    • 密度相连:若从某核心点p出发,点q和点k都是密度可达的,则称q和k是密度相连的。
    • 边界点:属于某一个类的非核心点,不能发展下线了
      • 核心对象发展它的下线,下线再发展下线,知道下线圈出的点小于阈值,则该下线点为边界点。
    • 噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的。
    • 举个例子:
    • 如下如所示,首先A为核心对象,A发展它的下线,即与A相邻的3个点,这3个点又发展它的下线。
      • 从图中可以看出:A为核心对象;B,C为边界点;N为离群点。
        DBSCAN
    • 工作流程:
      • 需要输入的参数
        • D:数据集
        • 指定半径
        • MinPts:密度阈值
      • 迭代过程:
        工作流程
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 其他 这篇文章的整体排版主要是根据个人的博客来哒,如果感兴趣的话可以去我的自己搭建的个人博客看这篇文章。 正文 聚...
    DeamoV阅读 2,003评论 0 1
  • 本篇结构 简介 聚类算法的分类 K-Means聚类算法 DBSCAN聚类算法 本篇介绍了聚类算法的种类,重点关注K...
    w1992wishes阅读 7,573评论 0 14
  • 聚类算法 前面介绍的集中算法都是属于有监督机器学习方法,这章和前面不同,介绍无监督学习算法,也就是聚类算法。在无监...
    飘涯阅读 41,527评论 3 51
  • 感谢图灵社区的电子书阅读奖励计划。 作为一个前端,必须要学习 Nodejs 似乎已经是无可争议的事实了。那么学习 ...
    ltaoo阅读 338评论 0 0
  • 对小学生而言: 一次考试+一场家长的批评=一张天罗地网 一次跌倒+一场无聊的痛哭=一步成长的代价
    豆油阅读 229评论 0 2