kmeans算法的缺陷:
1.聚类中心的数量k需要事先给定,但在实际中这个k值的选定是非常难以进行估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才更合适。
2.kmeans需要初始化聚类中心,不同的初始聚类中心可能导致完全不同的聚类效果。
针对第2个缺陷,可以使用kmeans++算法来解决。
knn
knn本质上是基于一种数据统计的方法!其实很多机器学习算法也是基于数据统计的。
kmeans++
kmeans选取初始聚类中心的基本思想就是:初始的聚类中心之间的相互距离要尽可能远。
1.从输入的数据点集合中随机选择一个点作为第一个聚类中心;
2.对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x);
3.选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大;
4.重复2和3直到k个聚类中心被选出来;
5.利用这k个初始的聚类中心来运行标准的k-means算法;
knn常见距离计算方法: