K-means原理与Opencv实现

K均值(K-Means)算法是一种无监督的聚类学习算法,他尝试找到样本数据的自然类别,分类是K由用户自己定义,K均值在不需要任何其他先验知识的情况下,依据算法的迭代规则,把样本划分为K类。K均值是最常用的聚类技术之一,通过不断迭代和移动质心来完成分类,与均值漂移算法的原理很相似。

K均值算法的实现过程:

1. 对于一组未知分类的数据集合,指定其分类数K;
2. 随机分配K个类别的中心点位置,分配的原则是各个类别的中心点距离彼此越远越好。
3.将数据集中的每一个点进行类别划分,划分的距离N个初始的类别中心点中哪一个的距离最近,就划入哪一类;
4.根据上一步中初步划分的N个类别,分别计算当前每一类的样品中心,并移动初始中心点到当前集合所在的中心。
5.去除数据集合中每个点的归类属性,依据上边产生的中心点,转到第3步,迭代执行,直到中心点收敛。
K均值的核心就是不断移动类别划分的中心点,直到该点稳定下来或者达到所设置的最大迭代次数,这时当前中心点所划分的类别就是最终的K均值对样本数据的聚类。


参考:[1] https://blog.csdn.net/dcrmg/article/details/53014023 
[2] OpenCV实现最大最小距离聚类算法https://blog.csdn.net/guyuealian/article/details/80255524

发布了64 篇原创文章 · 获赞 19 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/wwwsssZheRen/article/details/89001736