MeanShift聚类-01原理分析

Intro

  工作中用到了meanshift,不追溯太复杂的原理以及各种算法变体,原始paper等等。只从概念上,对原理做简要的总结和介绍。主要逻辑,参考sklearn的源码。

和常用k-means一样,meanshift也是一个迭代算法。我们关注的无非以下几点:

  • 迭代的逻辑,按照什么方式进行迭代
  • 迭代终止的条件
  • 怎么给样本打label

主要逻辑

sklearn的代码逻辑如下:

  • 初始化:生成bandwidth和seeds。如果没有指定bandwidth和seeds,会根据样本生成
  • 并行化完成所有seeds的迭代,每个seed相当于是一个单独的迭代过程
    • 迭代终止条件:max_iter=300或者阈值小于1e-3 * bandwidth
    • 首次迭代时,seed就是聚类中心点,获取中心点bandwidth范围内的所有样本点
    • 重新计算中心点(即求均值),再执行上一步,直到满足迭代停止条件
  • 聚类中心点合并
    • 按照每个中心点覆盖样本数排序,依次计算各个中心点之间的距离
    • 在bandwidth以内的两个中心点,保留覆盖样本数高的中心点
  • 给样本打label
    • 找到每个样本附近最近的中心点,则改样本就归属于该类
    • cluster_all=False,则bandwidth之外的点命名为-1,否则还是最近的聚类中心

Ref

[1] https://scikit-learn.org/stable/modules/generated/sklearn.cluster.MeanShift.html

                                2021-03-29 于南京市江宁区九龙湖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值