K-means算法原理及功能介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K-means聚类算法
一、K-means聚类原理
1.1 聚类算法的原理
我们经常接触到的聚类分析,一般都是数值聚类,一种常见的做法是同时提取N 种特征,将它们放在一起组成一个N 维向量,从而得到一个从原始数据集合到N 维向量空间的映射——总是需要显式地或者隐式地完成这样一个过程,然后基于某种规则进行分类,在该规则下,同组分类具有最大的相似性。
聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y 的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x,比如假设宇宙中的星星可以表示成三维空间中的点集。聚类的目的是找到每个样本x潜在的类别y,并将同类别y的样本x放在一起。比如上
面的星星,聚类后结果是一个个星团,星团里面的点相互距离比较近,星团间的星星距离就比较远了。
1.2 K-means聚类原理
假设我们提取到原始数据的集合为(x
1, x
2
, …, x n),并且每个x i为d维
的向量(d维向量由原始数据的d个特征组成),K-means聚类的目的就是,在给定分类组数k(k≤n)值的条件下,将原始数据分成k类
S = {S1, S2, …,S k},
1.3 K-means聚类步骤
算法步骤一般如下:
1、从D中随机取k个元素,作为k个簇的各自的中心。
2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。
3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。
4、将D中全部元素按照新的中心重新聚类。
5、重复第4步,直到每个簇的中心基本不再变化。
6、将结果输出。
1.4 K-means聚类简单实例
对数据点进行聚类,详细步骤如下所示:
首先3 个中心点被随机初始化,所有的数据点都还没有进行聚类,默认全部都标记为红色,如下图所示:
然后进入第一次迭代:按照初始的中心点位置为每个数据点着上颜色,重新计算3 个中心点,结果如下图所示:
可以看到,由于初始的中心点是随机选的,这样得出来的结果并不是很好,接下来是下一次迭代的结果:
可以看到大致形状已经出来了。再经过两次迭代之后,基本上就收敛了,最终结果如下:
二、k-means聚类算法的应用
聚类就是按照一定的标准将事物进行区分和分类的过程,该过程是无监督的,即事先并不知道关于类分的任何知识。聚类分析又称为数据分割,它是指应用数学的方法研究和处理给定对象的分类,使得每个组内部对象之间的相关性比其他对象之间的相关性高,组间的相异性较高。
聚类算法被用于许多知识领域,这些领域通常要求找出特定数据中的“自然关联”。自然关联的定义取决于不同的领域和特定的应用,可以具有多种形式。典型的应用例如:
1.商务上,帮助市场分析人员从客户基本资料库中发现不同的客户群,并用购
买模式来刻画不同客户群的特征;
2.聚类分析是细分市场的有效工具,同时也可用于研究消费者行为,寻找新的
潜在市场、选择实验的市场,并作为多元分析的预处理。
3.生物学上,用于推导植物和动物的分类,对基因进行分类,获得对种群固有
结构的认识;
4.地理信息方面,在地球观测数据库中相似区域的确定、汽车保险单持有者的
分组,及根据房子的类型、价值和地理位置对一个城市中房屋的分组上可以发挥作用;
5.聚类也能用于在网上进行文档归类来修复信息;
6.在电子商务网站建设数据挖掘中的应用,通过分组聚类出具有相似浏览行为
的客户,并分析客户的共同特征,可以更好的帮助电子商务的用户了解自己的客户,向客户提供更合适的服务。
7.聚类分析可以作为其它数据挖掘算法的预处理步骤,便于这些算法在生成的
簇上进行处理。