1. 算法思想
K-Means算法,也称为K-均值算法,是一种无监督算法,即数据集无标签。一般做法是,往往先对数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,输入测试样本判断类别。
聚类就是将数据集中的样本划分到指定数量的互不相干的子集中,每个子集就是一个簇。
2. 算法流程
图片取自《机器学习》周志华
3. 算法的优缺点
优点:
1. 算法简单,易于理解和实现;
2. 当簇接近高斯分布时,聚类效果较好;
缺点:
1. 类别数,即K需要实现指定,有时难以正确估计到此值;
2. 当数据量较大时,由于需计算样本之间的距离,计算量;
3. 初始的均值向量是随机选取的,此选取情况对后续结果影响较大;
4. 当存在异常点时,使得均值向量发生偏移,导致结果精度下降;
4. 代码实现
1. 训练数据使用鸢尾花数据集
2. 计算样本的距离使用的是欧式距离法
3. 对比自编K-Means与sk