前言

Kmeans 算法和 KNN算法的区别是什么?

总是爱弄混这两个算法,不过这两种算法是有本质区别的。

KNN


  • 监督学习
  • KNN 算法是基于单个样本的角度考虑:
    给出某个样本,从已分类好的样本中找出距离其最近的k个样本(所以叫K近邻),然后判断这K个近邻中多数属于哪一类别,多数的那个类别就是这个类该属于的类别

kMeans算法



属于无监督算法,样本是没有标签的。所以我们在将样本集合划分【这个划分是随机划分的】成k个子集,构成k个类。
上面这个划分是随机划分,子集的样本是会随着算法的迭代而逐渐改变。



是从类别的角度考虑



属于硬编码,所谓的硬编码体现在:计算出最短的距离是谁,那么就将其分成该类,即每个样本都只能属于一个类。