无监督学习之K-means算法实现

本文详细介绍了K-means聚类算法的基本原理、步骤和优缺点,并通过实例展示了如何利用K-means进行数据分类。算法依赖于预先设定的类别数K,对数值型数据进行高效处理,但也存在对初始中心点敏感和难以处理非凸形状聚类的问题。通过迭代计算最小化误差平方和,找到最优聚类划分。
摘要由CSDN通过智能技术生成

1 算法说明

1.1 基本原理

1967 年MacQueen 首次提出了K 均值聚类算法(K-means算法)。到目前为止用于科学和工业应用的诸多聚类算法中一种极有影响的技术。K-means是最常用的聚类算法之一,能有效地处理规模较大和高维的数据集合,能对大型数据集进行高效分类,把数据分成几组,按照定义的测量标准,同组内数据与其他组数据相比具有较强的相似性,这就叫聚簇。它是聚类方法中一个基本的划分方法,常常采用误差平方和准则函数作为聚类准则函数。k-means算法(C均值算法)是通过迭代寻找C个聚类的一种划分方案,使得用这C个均值来代表相应各类样本时所得到的总体误差最小。

误差平方和J_{\epsilon }度量了C个聚类中心代表C个样本自己所产生的总的误差平方,对于不同的聚类J_{\epsilon }一般是不相同的。使J_{\epsilon }极小的聚类是误差平方和准则下的最优结果,这种类型的聚类通常称为最小方差划分。

误差平方和J_{\epsilon }无法用解析的方法最小化,只能采用迭代的方法,通过不断的调整样本的类归属来获得最优解。

K-means算法的效率比较高;缺点是只能处理数值型数据,不能处理分类数据,对例外数据非常敏感,不能处理非凸面形状的聚簇。

K-means算法接受输入量k:然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。

1.2 算法基本步骤

在最开始,需要对样本进行初始划分。初始化分采用“密度”法选择代表点,然后根据选择的代表点对样本进行分类。选择代表点时,通过样本间的欧氏距离,以样本点为球心做球,计算样本球内的样本个数即为样本点密度。然后根据选择的代表点和样本点间的距离来进行初始划分。

最后,通过迭代的方式计算误差平方和的增加量和减小量,不断减小误差J_{\epsilon },一直到J_{\epsilon }不再发生变化为止,则找到了最小的误差平方和,此时的聚类划分为最优划分方法。

第一步:选K个初始聚类中心,Z{_{1}^{(1)}},Z{_{2}^{(1)}},\cdots,Z{_{k}^{(1)}},其中括号内的序号为寻找聚类中心的迭代运算的次序号。聚类中心的向量值可任意设定,例如可选开始的K个模式样本的向量值作为初始聚类中心。

第二步:逐个将需分类的模式样本\{x\in X\}按最小距离准则分配给K个聚类中心中的某一个Z{_{j}^{(1)}}。对所有的i≠j,j=1,2,…,K ,则有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值