K-means算法是最简单的一种聚类算法。算法的目的是使各个样本与所在类均值的误差平方和达到最小(这也是评价K-means算法最后聚类效果的评价标准) K-means聚类算法的一般步骤:
举一个简单的例子来说明问题: 设有一组数据集x1=(2,1),x2=(1,3),x3=(6,7),x4=(4,7) (1)选取聚类中心,该中心可以任意选取,也可以通过直方图进行选取,还可以通过取前2个值进行选取。我们选择两个聚类中心。 (2)计算每一个样本值到聚类中心的距离;并划分新的聚类中心;
评价标准:
假设有M个数据源,C个聚类中心。μc为聚类中心。该公式的意思也就是将每个类中的数据与每个聚类中心做差的平方和,J最小,意味着分割的效果最好。
参考资料 [1]http://v.163.com/movie/2008/1/O/T/M6SGF6VB4_M6SGKGMOT.html 斯坦福大学关于K-means的讲解 [2]http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html [3] http://www.csdn.net/article/2012-07-03/2807073-k-means
C++代码: |
|