k-means 聚类
聚类算法有很多种,K-Means 是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。
K-Means算法是一种很典型的基于距离的聚类算法,采用距离作为相似性的评价标准,认为两个对象的距离越近,那么相似度就越大。把簇作为距离靠近的对象组成的,最终得到的是紧凑和独立的簇。对于聚类分析来说,用于发现数据对象之间的关系。组内的相似性越大,组间的相似性越小,可以说效果越好。K个初始类聚类中心点的选取对聚类结果具有比较大的影响。在算法的第一步中随机的选取了K个初始聚类的中心,代表了一个簇。在每次迭代的过程中,对数据集中剩余的每个对象。根据每个簇中心的距离将每个对象重新赋给最近的族。
算法框架:
- 给定大小为n的数据集,令O=l,选取k个初始聚类中心 Zj(O),j=1,2,3,...,k,O代表不同迭代轮数的聚类中心
- 计算每个样本数据对象与聚合中心的距离D(xi,Zj(O)),i=1,2,3,…,并分类
- 令O=O+1,计算新的聚类中心和误差平方和准则f(目标函数)值:
- 判断:若If(O+1)-f(O)I<theta(f收敛)或者对象无类别变化,则算法结束,否则,O=O+1,返回2)步;
来源:https://blog.csdn.net/h284306976/article/details/100862376