1、引言
k-means算法主要是用来解决什么问题呢?主要是用来解决类似于这样的问题:聚类,如一次班级聚餐,平时玩的好的同学,就会自动的聚集在一起愉快的玩耍。那么什么样才算平时玩的好呢?请看k-means算法。
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。
2、以一个实例来描述k-means算法:
题目:使用K-均值算法把表5-3中的8个点聚为3个簇,假设第一次迭代选择序号1、序号4和序号7当作初始点,请给出第一次执行后的3个聚类中心以及聚类最终的3个簇。
解:
假设每个对象有m个属性,可以把一个对象视为m维空间的一个点,n个对象就是m维空间的n个点。
k-means(n=8,k=3)主要步骤:
第一次迭代:假设第一次选择序号1、序号4和序号7,分别找到离三点最近的对象,并产生三个簇{1}、{3,4,5,6,8}和{2,7},具体计算见下表:
对于产生的簇分别计算平均值,得到平均值点(将属性值直接平均即可):
{1}->{2,10}
{3,4,5,6,8}->{6,6}
{2,7}->{1.5,3.5}
第二次迭代:以{2,10},{6,6},{1.5,3.5}为中心值,再次执行第一次迭代步骤。
第三次迭代:…..一直到最后一次迭代后产生的簇与上一次的相同,停止迭代,则该簇为最终簇。
3、Word文档下载
(1)http://download.csdn.net/detail/u012339743/8827581
原文作者:Joe Chael
原文地址:http://blog.csdn.net/qingdujun/article/details/46591701