K-Means是无监督聚类算法,实现简单且效果不错。只看名字容易与可以分类回归的K-近邻搞混。
原理
它将样本按照距离的大小,将其划分为K个簇。簇内的点尽量紧密,簇间距离越大越好。
假设簇有k个,分别为,
为簇Ci的均值向量,称为质心或者簇心,表示为:
于是我们的目标可以设为,使所有簇内数据到它对应的簇心的距离最小:
求E的最小值是一个NP难问题,于是采用迭代方法如下图,红点和蓝点分别对应两个簇的簇心,随着簇心的迭代更新,每个簇对应的数据在发生改变,直到最后收敛
K-Means是无监督聚类算法,实现简单且效果不错。只看名字容易与可以分类回归的K-近邻搞混。
它将样本按照距离的大小,将其划分为K个簇。簇内的点尽量紧密,簇间距离越大越好。
假设簇有k个,分别为,
为簇Ci的均值向量,称为质心或者簇心,表示为:
于是我们的目标可以设为,使所有簇内数据到它对应的簇心的距离最小:
求E的最小值是一个NP难问题,于是采用迭代方法如下图,红点和蓝点分别对应两个簇的簇心,随着簇心的迭代更新,每个簇对应的数据在发生改变,直到最后收敛