K-means算法是一种无监督的机器学习算法。无监督学习即事先不知道要寻找的内容。全自动分类,将相似对象归到同一个簇中。用户预先给的K个簇,每个簇通过“质心”来描述。
伪代码:
创建K个点作为起始质心(一般随机选择)
任意一个点所属簇的结果发生改变时
对数据集中每个点
对每个质心
计算数据与质心间的距离
将数据划分到与它最近的簇
对于每个簇,重新计算质心(所有点的均值)
求距离的方法,欧氏距离。
聚类效果的度量。一般计算SEE(误差平方和),SEE越小表示数据点越接近他们的质心。
一般误差原因:k的选取。
改进: 二分 K-均值算法
首先将所有点作为一个簇,然后将该簇一分为二。之后选择一个簇继续划分,选择哪个取决于是否可以最大程度降低SEE的值。直到取得合适的K值为止。