简单介绍:k-means 算法是一个聚类的算法 。属于无监督学习算法,也是就样本没有label(标签),然后根据某种规则进行“分割”, 把相同的或者相近的放在一起。
算法缺点:不能帮助我们自动分类,需要指定。在很多实际应用当中,很难知道数据是什么分布的,应该分成几类比较好。这也是k-means自身的一个缺陷。
在这里K就是我们想要分割的的聚类的个数。
算法步骤:
- 先定义总共有多少个类/簇(cluster)
- 将每个簇心(cluster centers)随机定在一个点上
- 将每个数据点关联到最近簇中心所属的簇上
- 对于每一个簇找到其所有关联点的中心点(取每一个点坐标的平均值)
- 将上述点变为新的簇心
- 不停重复,直到每个簇所拥有的点不变
例题:
- 假设有如下8个点:(3,1),(3,2),(4,1),(4,2),(1,3),(1,4),(2,3),(2,4)。使用K-means算法对其进行聚类。设初始聚类中心分别为(0,4)和(3,3)。请写出详细的计算过程。
- 过程如下:
- 1 数据
数据集 X