本文内容、数据参考周志华《机器学习》,代码部分为个人实现,如有错误还请指出。
K-means(K均值)算法是最简单的一种聚类算法,它期望最小化平方误差
E=∑i=1k∑x∈Ci∣∣x−μi∣∣22E=\sum\limits_{i=1}^k\sum\limits_{x\in C_i}||\pmb x-\pmb\mu_i||_2^2E=i=1∑kx∈Ci∑∣∣xxx−μμμi∣∣22
其中μi=1∣Ci∣∑x∈Cix\pmb\mu_i=\frac{1}{|C_i|}\sum_{x \in C_i}\pmb xμμμi=∣Ci∣1∑x∈Cixxx是簇(cluster)CiC_iCi的均值向量,∣∣x−μi∣∣2||\pmb x-\pmb\mu_i||_2∣∣xxx−μμμi∣∣2即一般意义下向量的模长。
K-means算法的一般步骤如下:
输入:样本集D={ x1,x2,...,xm};D=\{\pmb x_1,\pmb x_2,...,\pmb x_m\};D={ xxx1,xxx2,...,x