k-means 聚类
一、概述
当前人工智能技术实现的一种主要手段是机器学习,而机器学习能够解决的问题主要有
三种:分类、聚类、回归,有监督的是分类,无监督的是聚类。所谓聚类,就是以一定的方
法将一堆样本依它们本身的数据特性划分成不同的簇类,以达成不同的技术目的,k-means
就是这样一种基础聚类算法。
二、算法原理
对给定的样本集,k-means 基于迭代的思想,由聚集中心点划定簇集,簇集反过来确定
新的聚集中心点,周而复始,最终获得最佳划分的簇集。k-means 中的 k 即想要划定的簇
数,它是一个超参数,需由人工事先指定。样本的簇集划归由它与各个聚集中心点的距离来
确定,划归到距离最近的那一个,其中距离的计算一般采用欧氏距离;新划定的簇集则进一
步计算质心作为新的聚集中心,质心即样本向量的均值
.
算法描述
输入:样本集
,簇数 k
输出:质心集合
,划分样本集
(1) 任意选定 k 个样本作为初始聚集中心。
(2) 划分簇类
1)对 T 中数据,计算与各个聚集中心的距离.样本 x 与聚集中心 c 的距离为
2)将样本划归到离得最近的聚集中心,形成簇类。
(3)计算质心作为聚集中心
对簇 S,质心
其中
,
.
(4)重复(2)-(3)步,直至质心不发生偏移或达到指定的迭代次数。