聚类算法:K-means和K-medoids
K-means算法
核心思想
通过迭代把数据对象划分到不同的簇中,以求目标函数最小化,从而使生成的簇尽可能地紧凑和独立。 首先,随机选取k个对象作为初始的k个簇的质心; 然后,将其余对象根据其与各个簇质心的距离分配到最近的簇;再求新形成的簇的质心。 这个迭代重定位过程不断重复,直到目标函数最小化为止。
目标函数为平方误差准则函数,采用欧几里得距离度量
1、优点:
在处理大数据集时,该算法是相对可扩展性的,并且具有较高的效率。 算法复杂度为O(nkt),其中,n为数据集中对象的数目,k为期望得到的簇的数目,t为迭代的次数。
2、应用局限性:
用户必须事先指定聚类簇的个数; 常常终止于局部最优; 只适用于数值属性聚类(计算均值有意义); 对噪声和异常数据也很敏感; 不适合用于发现非凸形状的聚类簇。
K-medoids算法
处理流程
首先,随机选择k个对象作为初始的k个簇的代表点,将其余对象按与代表点对象的距离分配到最近的簇; 然后,反复用非代表点来代替代表点,以改进聚类质量。(用一个代价函数来估计聚类质量,该函数度量对象与代表点对象之间的平均相异度。)
目标函数采用平方误差准则
1、优点:
对属性类型没有局限性; 鲁棒性强:通过簇内主要点的位置来确定选择中心点,对孤立点和噪声数据的敏感性小。
2、不足:
处理时间要比k-mean更长; 用户事先指定所需聚类簇个数k。
两者的差异:
简单理解:对于数据样本的平均值和中位数之间的差异
1、取值范围
K-means:可以是连续空间中的任意值 K-medoids:只能是数据样本范围中的样本
2、聚类中心
K-means算法:集群中的平均值 K-medoids算法:集群中位于最中心的样本
通病:
只能处理球形的簇,也就是一个聚成实心的团(这是因为算法本身计算平均距离的局限)
————————————————
版权声明:本文为CSDN博主「潜心学习的渣渣」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43868020/article/details/117078694