K-Means

时间:2020-05-11 19:35:55   收藏:0   阅读:51

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12870414.html

 

K-Means

K-Means 是一种无监督学习,解决的是聚类问题。K 代表的是 K 类,Means 代表的是中心,这个算法的本质是确定 K 类的中心点,当找到了这些中心点,也就完成了聚类。

 

K-Means 的工作原理:

  1. 选取 K 个点作为初始的类中心点,这些点一般都是从数据集中随机抽取的;
  2. 将每个点分配到最近的类中心点,这样就形成了 K 个类,然后重新计算每个类的中心点;
  3. 重复第二步,直到类不发生变化,或者你也可以设置最大迭代次数,这样即使类中心点发生变化,但是只要达到最大迭代次数就会结束。

 

sklearn 中的 K-Means 算法

技术分享图片

在 K-Means 类创建的过程中,有一些主要的参数:

 

Summary

如何确定 K 类的中心点

其中包括了初始的设置,以及中间迭代过程中中心点的计算。在初始设置中,会进行 n_init 次的选择,然后选择初始中心点效果最好的为初始值。在每次分类更新后,都需要重新确认每一类的中心点,一般采用均值的方式进行确认。

 

如何将其他点划分到 K 类中

这里实际上是关于距离的定义,距离有多种定义的方式,在 K-Means 和 KNN 中,都可以采用欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离等。对于点的划分,就看它离哪个类的中心点的距离最近,就属于哪一类。

 

如何区分 K-Means 与 KNN

首先,这两个算法解决数据挖掘的两类问题。K-Means 是聚类算法,KNN 是分类算法。
这两个算法分别是两种不同的学习方式。K-Means 是无监督学习,也就是不需要事先给出分类标签,而 KNN 是有监督学习,需要给出训练数据的分类标识。
最后,K 值的含义不同。K-Means 中的 K 值代表 K 类。KNN 中的 K 值代表 K 个最接近的邻居。

 

监督学习和无监督学习区别

监督学习

无监督学习

 

Reference

https://time.geekbang.org/column/article/81390

https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

 

原文:https://www.cnblogs.com/agilestyle/p/12870414.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!