KNN与K-Means的区别与相似点
算法性质不同:
- KNN为可监督的分类算法;
- K-Means是无监督的聚类算法;
输入数据不同:
- KNN输入的数据是带label的正确的数据;
- K-Means输入的是杂乱无章的无label的数据,经过聚类处理后数据才会有一定的规律,由无序到有序;
前期训练过程不同:
- KNN属于memony based learning,没有明显的前期练过程;
- K-Means有明显的前期训练过程;
K的含义不同:
- KNN中K的含义:来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别C占的个数最多,就把x的labe设为C;
- K-Means中K的含义:K是人为设定的数字,是根据先验知识假设数据集合可以分为K个簇。K的确定需要先险知识的配合;
两者的相似点:
- 运算过程都是给定一个点,在数据集中找离它最近的点。即二者都用到了NN(Nears Neighbor)算法,一般用KD树来实现NN过程;