73、K-Means算法与马氏距离在聚类中的应用

K-Means算法与马氏距离在聚类中的应用

1. K-Means算法概述

K-Means算法旨在在一组向量值数据中寻找自然的聚类。用户设定所需的聚类数量,然后该算法会迅速为这些聚类中心找到合适的位置。这里的“合适”意味着聚类中心最终往往会位于数据的自然聚集中心。

K-Means算法是最常用的聚类技术之一,它与期望最大化算法有很强的相似性,也和均值漂移算法有一定相似之处。在OpenCV中实现的K-Means算法也被称为Lloyd算法或“Voronoi迭代”。

其算法步骤如下:
1. 输入数据集D和用户选择的期望聚类数量K。
2. 随机分配(充分分离)聚类中心的位置。
3. 将每个数据点与其最近的聚类中心关联。
4. 将聚类中心移动到其所属数据点的质心位置。
5. 重复步骤3,直到收敛(即质心不再移动)。

在实际应用中,该算法通常能快速收敛,但有时也需要大量迭代。

2. K-Means算法的问题与解决方案

K-Means算法虽然是一种非常有效的聚类算法,但也存在三个重要的缺点:
- 不能保证找到聚类中心的最优解,但能保证收敛到某个解。
- 无法告知应该使用多少个聚类中心。不同的聚类数量可能导致不同且可能不太直观的结果。
- 假设空间中的协方差无关紧要或已被归一化。

针对这些问题,有以下解决方案:
1. 多次运行K-Means算法,每次使用不同的聚类中心位置,然后选择结果方差最小的那次运行。在OpenCV中,可以通过 cv::kmeans attempts

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值