knn和kmeans的区别
收藏
1、kmeans算法是一种无监督学习算法
其算法流程如下:
(1)在一堆没有标签的数据中,我们选择k个数据作为聚类中心,k是人为选择的,中心点也是人为播撒的。
(2)使用某种距离度量方式,比如欧氏距离,计算其他所有点离这k个点的距离,比如a点算完之后距离k1点最近,那么就把a归类为k1类。
(3)计算聚类之后的各个类的中心,使其作为新的聚类中心。
(4)重复(2)到(3)步,直到新的中心与原来的中心距离小于某个阈值就停止。这样我们就完成了数据聚类。
2、KNN算法是一种监督学习算法
其算法流程如下:
(1)当出现新的测试样本时,计算其与训练样本中每个样本的距离。
(2)根据距离选择与测试样本最接近的k个样本,k是人为进行选择的。
(3)基于这k个训练样本的类别来划分新样本的类别,通常选择这k个训练样本中出现次数最多的标签作为新样本的类别。比如这k个训练样本中有十个猫一个狗,那么可以人为测试样本就是猫。
3、他们之间的区别
(1)KMeans是无监督学习算法,KNN是监督学习算法。
(2)KMeans算法的训练过程需要反复迭代的操作(寻找新的中心),但是KNN不需要。
(3)KMeans中的K代表的是聚类中心的个数,KNN的K代表的是选择与新测试样本距离最近的前K个训练样本。
0
收藏
请登录后评论