本文主要K-means聚类算法的原理、优缺点及其改进,以及如何用R语言实现K-means聚类算法。
一、概述
K-means是一种较为经典的划分聚类算法,由于该算法的效率高,所以在对大规模数据进行聚类时被广泛应用。
1.算法原理
k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。k-means算法的处理过程如下:首先,随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心;对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。通常,采用平方误差准则,其定义如下:
这里 E 是数据库中所有对象的平方误差的总和,