聚类-k均值(k-means)算法

聚类

聚类是指将数据集的样本划分为不同的子集,这些子集互不相交,且总和为整个数据集。

一个常用的距离
  • 明可夫斯基距离(Minkowski distance):是欧式距离(Euclidean distance)和曼哈顿距离(Manhattan distance) 的推广
    在这里插入图片描述
  • 欧式距离(p=2时):
    在这里插入图片描述
  • 曼哈顿距离(p=1时):
    在这里插入图片描述

k均值算法

用了欧式距离,通过优化迭代求近似解,算法如下:
在这里插入图片描述
首先在数据集中随机抽取k个值作为初始均值,然后定义k个空列表用来盛放后面分好类的数据。用欧式距离考察每个向量与每个均值的距离,与哪个均值最接近就划分到哪个类中。当遍历完所有的向量后,得到一组分好的类。这时计算此时的各类的均值向量,再次重复距离考察,不断重复这个过程,直至均值向量不再更新,便认为最终分好了类别。但k-means对初值敏感,不同的初值会得到不同的结果。
实现代码:https://github.com/ethan-sui/k-means (代码很傻,仅仅实现,后期有时间会改)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值