k-means原理
输入:k(簇的数目)、要进行分类的数据集D
输出:k个簇的集合
过程:
1)从D中以某种规则选择k个样本或者k个在值域范围内点作为初始簇的中心;
2)计算簇中心之外的每个样本和每个簇中心的距离,将样本归属于最近的簇;
3)计算簇内平均值,将均值作为簇的中心;
4)训练2和3,知道簇中心的变化小于一定的阈值或者即便簇中心变动,但是簇内样本不变动。
k-means的优缺点:
优点:
1)能够比较快速的收敛。
2)在大数据集上是相对可伸缩和有效的。
3)当无法计算均值时,可以通过定义一些簇中心(比如众数簇心)来改写算法。
缺点:
1)严重依赖于k值的确定。
2)不适合发现非球形簇或者大小差别非常大的簇。
3)对噪声和离群点非常的敏感。