K-means聚类算法

K-means聚类算法

简介(百科)

K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。

原理

K-means算法的原理,简单来说,比如有一堆数据点,在这堆数据点中寻找聚集在一起的点。
如下图:
在这里插入图片描述
整个过程就是寻找红绿蓝三堆数据点的重心。那么,怎么寻找呢?
很简单,可以随便找三个点当做重心点,根据这三个点可以确定出三堆距离这三点距离最近的数据集合,然后有了这三个集合就可以确定集合里的重心,再重复这个过程,最终肯定会找到我们需要的重心位置,并且之后的迭代,重心就不会发生太大的变化。
上述表述很啰嗦,用数学公式就可以很简单的表示出来:
在这里插入图片描述
u就是我们过程中的那个重心,S就是上述的数据堆,也就是你分好的集合,x就是该集合的各个点。最后算出的V肯定会收敛在一个极限值里。不收敛就再确定重心,再算V,直到收敛为止。

说明

首先,很重要的一点是需要分成几个S,也就是确定K值,通过我们直观的看,如上图,很容易就确定出有三个S,但是在程序使用中,可能无法直观看出需要几个S,或者程序自动执行时,读入不同的数据,就要对应不同的S。
在论文中有很多确定S的分析方法,这里不做介绍,因为我的研究集中在点云的处理,这里说下点云处理中是如何确定S的。
在点云处理中,K-means是用来精简点云数据的,也就是将属于同一类中的数据删除,只保留重心点,这样既可以做到保留特征点的前提下,精简数据,而K值,对应的就是精简比例,K值越大,保留的重心就越多,反之,保留的就少,至于要保留多少,看使用者的设置,但是,一般会根据点云集合数据的量和所精简对象的复杂度来确定。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值