- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
快速k-means聚类算法分析与实现
快速k-means 聚类算法
快速k-means 聚类算法
分析与实现
分析与实现
薛理立(006146)赵晟(006145),刘芳(006151)
摘要
k-means 是一种十分流行的聚类技术,在许多方面有着广泛的应用。K-means 算法解决
的问题是:给定d 维空间的n 个数据点和一个整数k ,寻找k 个中心点,使得每个数据点到
最近中心的平方和最小。而Lloyd 算法则是k-means 聚类的一种通行的算法。本文提出了一
个简单而快速的Lloyd 算法的实现,称之为过滤算法。该算法易于实现,和以前的传统Lloyd
算法的实现截然不同的是该算法巧妙的为数据点建立 kd_tree 而不是为中心点建立 kd-tree.
因此大大提高了聚类的效率。
介绍
聚类问题来源于许多实际的应用,如数据挖掘、图象压缩、模式识别、矢量编码等。而
k-means 是一个重要的聚类问题。
k-means 问题
在d 维欧氏空间里,给定n 个数据点,和一个整数k,求出这样的k 个中心点,使得给
定的n 个数据点到离各自最近的中心点的距离和最小。
k-means 问题和许多其它的聚类问题密切相关,如欧几里得k-medicans 问题,该问题
要求最小化距离和;k_center 问题,该问题要求最小化最大距离。
由于k-means 算法有多种变种,为清晰起见我们称为Lloyd 算法。
Lloyd 算法
输入:k 个初始中心点,设每个中心点为Ci
Vi :以Ci 为最近邻的数据点的集合。
输出:k 个中心点
[ While(收敛条件未满足)
{
for(I=0; Ik; I++)
{
求Vi 集合的质心,用Vi 集合的质心代替Ci;
}
for(I=0; Ik; I++)
{
在新C 下更新Vi ;
}
}
返回k 个中心点位置
]
该算法最后可能会收敛到一个局部最小点,因为每个局部最小点对应于一个 vorono 图的
configuration。Lloyd 算法可以和一个全局算法结合起来使用,将 Lloyd 算法作为一个后
处理阶段来提高结果的精度。
由于Lloyd 算法简单、适应性强,因此Lloyd 算法十分流行并广泛应用于统计分析。
所有k-means 算法的一个共同的问题是耗时过多而提高Lloyd算法的效率的最常用的方
法是在每次递归的初始阶段对中心点进行预处理。
在本文中我们提出了一个简单而高效的Lloyd 算法的实现,称之为过滤算法。过滤算法
和其它算法的截然不同之处在于它在预处理阶段为数据点而不是中心点建立了一棵
kd-tree。这正是该算法的出众之处。其优点是
由于在计算过程中数据点没有变化,因此在每次迭代的初始阶段没必要对 kd-tree 进行
更新。这就节省了时间。
一般来说数据点的个数远大于查询点的个数,因此处理速度大大提高。
以数据点为中心建立kd-tree 可以迅速地排除一些不可能的中心,提高算法的效率。
三种Lloyd 算法的实现
在描述算法之前现介绍一下kd-tree。
给定空间中n 个点的点集S,先构造出包含这些点的超立方体,使用平行于某一个坐标
轴的超平面(其方程为Xi = const )将此超立方体一分为二,使得超平面两边的点的数目大
致相等。递归的对左右两个新超立方体进行同样的操作,直到超立方体里的数目小于等于一
个数。很显然,这是分治思想设计的一种方法。
KD-Tree 可以用二叉树来存储。KD-Tree 具有查找方便的特点。
3 维的KD-Tree 示意图
k-means 的算法有很多种,基本上都是基于Lloyd
文档评论(0)