K-means算法

一、算法概述

K-means聚类算法是一种基本的已知聚类类别数的划分算法。它以距离作为标准,认为两个对象的距离越近,它们的相似度越高。它的输入是数据集和类别数,聚类的结果是划分为k类的k个数据集合。 

基本思想:开始随机给定k个聚类中心,按照最邻近的原则把需要分类样本点分到与其最近的类中。然后按平均法重新计算各个类的质心(最初的聚类点),从而确定新的聚类中心。一直迭代,直到相邻两次的聚类中心没有任何变化。

1、步骤:
(1)为待聚类的点寻找聚类中心
(2)计算每个点到聚类中心的距离,将每个点聚类到离改点最近的聚类中
(3)计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心
重复执行第二、第三步,直到相邻两次的聚类中心没有变化

2、伪代码:
创建k个点作为起始质心
当任意一个点的数据集分配结果发生改变时
对数据集中的每个数据点
对每个质心
计算质心与数据点之间的距离
将数据点分配到距离其最近的数据集合
对每一个数据集,计算集合中所有点的均值并将均值作为质心

二、代码实现

%随机获取150个点
X = [randn(50,2)+ones(50,2);randn(50,2)-ones(50,2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值