1 K-Means
K-Means 是一种非监督学习,解决的是聚类问题。
K 代表的是 K 类,Means 代表的是中心,本质是确定 K 类的中心点,当找到了这些中心点,也就完成了聚类。
需要解决三个问题:
1 如何确定 K 类的中心点?
其中包括了初始的设置,以及中间迭代过程中中心点的计算。
在初始设置中,会进行 n_init 次的选择,然后选择初始中心点效果最好的为初始值。
在每次分类更新后都需要重新确认每一类的中心点,一般采用均值的方式进行确认。2 如何将其他点划分到 K 类中?
可以采用欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离等。
对于点的划分,就看它离哪个类的中心点的距离最近,就属于哪一类。3 如何区分 K-Means 与 KNN?
第一,这两个算法解决数据挖掘的两类问题:K-Means 是聚类算法,KNN 是分类算法。
第二,这两个算法分别是两种不同的学习方式:K-Means 是非监督学习,也就是不需要事先给出分类标签,而 KNN 是有监督学习,需要给出训练数据的分类标识。
第三,K 值的含义不同。K-Means 中的 K 值代表 K 类。KNN 中的 K 值代表 K 个最接近的邻居。
例子:Kmeans是选老大,风水轮流转,直到选出最佳中心老大;Knn则是小弟加队伍,离那个班相对近,就是那个班的
工作原理: