机器学习7. 常用聚类方法

  • 目录:

    • K-means
    • K-means的优化算法
    • GMM
    • MeanShift
    • 层次聚类
  • K-means:

    • 确定聚类个数,随机选择K个点作为初始聚类中心
    • 计算各样本到K个聚类中心的距离,将该样本归为距离最近的一类。距离可用欧氏距离 J = ∑ k = 1 K ∑ j = 1 n ( ∣ ∣ x i − u k ∣ ∣ 2 ) J=\sum_{k=1}^{K}{\sum_{j=1}^{n}{(||x_i-u_k||^2)}} J=k=1Kj=1n(xiuk2)
    • 对每个类别内部的样本,使用其均值作为新的聚类中心。反复迭代上述过程。
  • K-means的优化算法

    • K-means的优缺点分析(面试常考):

      • 优点:
        • 计算复杂度低为O(Nmq),N是数据总量,m是类别(即k),q是迭代次数;
        • 思想简单 。
        • 高斯分布时效果很好
      • 缺点:
        • 初始点影响大
        • 需要人为指定聚类个数
        • 不适合非凸的数据
        • 对噪声和孤立点敏感
    • K-means++:

      • 第一个聚类中心随机选一个样本点
      • 第2-K个聚类中心迭代选取:选取第k个聚类中心时,计算每个样本计算对1-k-1个聚类中心中最近的那个的距离(记为 D ( x ) D(x) D(x)),距离越远的点越容易(概率更大)被选为新的聚类中心。概率为 D ( x ) 2 ∑ D ( x ) 2 \frac{D(x)^2}{\sum D(x)^2} D(x)2D(x)2
    • ISODATA(迭代自组织数据分析法):

      • 自动确定聚类个数
      • 思想:当属于某个类别的样本数过少 小 于 N m i n 小于N_{min} Nmin时把这个类别去除(合并),当属于某个类别的样本数过多、分散程度较大时把这个类别分为两个子类别(分裂)
  • GMM:

    • 确定聚类个数,随机初始化分布的均值和协方差(也可使用其他聚类算法作为初始值)
    • 对混合概率分布做极大似然估计,在这部分需要使用EM算法。参数估计过程请见EM算法专辑。
    • 对每个样本 x x x,使用其后验概率最大的一类作为聚类结果。
  • MeanShift:【参数,半价r的大小】

    • 该方法是一种基于滑动窗口和质心的聚类算法
    • 对于高维空间上的一个点,计算在半价 r r r一定下,高维球包含的样本集合 S h S_h Sh
    • 对以上样本集合 S h S_h Sh计算均值偏移向量 M h M_h Mh
      M h = 1 K ∑ x i ∈ S h ( x i − x ) M_h=\frac{1}{K}\sum_{{x_i}\in{S_h}}{(x_i-x)} Mh=K1xiSh(xix)
    • 将当前质心移动上述距离,得到新的聚类中心
    • 特点:
      1. 无需提前决定聚类个数,因为聚类中心最终会聚集到一起
      2. 可以多聚类中心并行计算
      3. 半价大小会极大影响模型性能

在这里插入图片描述

  • 层次聚类
    • 自底向上建立聚类结果,每次寻找样本空间中距离最小的两个样本聚为一类,聚类中心就是他们的均值。删掉聚类的样本,更新聚类中心后放到数据集里面。
    • 聚类的过程其实就是样本减少的过程。直到所有样本归为一类,结束算法。然后人为的选择想要使用的聚类个数(就是右图横着切一刀,你想要几个聚类个数就切几根线。)
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值