K-means算法
机器学习常用的方法分为监督学习、非监督学习(分类)
监督学习:已有的训练样本--->得到训练后的模型---->未知数据输入模型得到分类结果(KNN)
非监督学习:无训练样本---->构建分类模型(K-means)
K均值是发现给定数据集的k个簇的算法。k为手动设定(可能不是最合适的,需要调整),每个簇用其中所有点的中心表示。聚类效果用SSE(误差平方和)度量。
过程如下:
1.随机确定k个初始点作为质心(整个算法受初始质点的影响);
2.将数据集中的点按照与初始k个质心的距离分配到k个簇中;
3.每个簇的质心更新为该簇所有点的平均值;
4.计算所有点与新调整后的k个质心的距离,重新划分簇;
5.不断重复3、4直至算法收敛(即质心不变)。
缺点:
1.最适合的分类数并不一定一次就找到;
2.初始随机选取的点不同,最后分的类可能也不同;
3.可能收敛到局部最小值(非全局最小),在大规模数据集上收敛较慢;
4.对噪声和离群点敏感。
二分K-均值算法
二分K-均值算法的提出是为了克服K-均值算法收敛于局部最小值的问题。
过程:
1.将所有点看成一个簇;
2.将该簇一分为二(计算总误差,进行K-均值聚类,其中k=2);
3.计算一分为二后的总误差,选择其中一个簇继续划分(选择标准:其划分是否能降低SSE的值);
4.重复2、3至k达到指定簇数。