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過程;