kNN與kMeans聚類算法的區別

kNN與kMeans聚類算法的區別

KNN

K-Means

目的是爲了確定一個點的分類

目的是爲了將一系列點集分成k類

KNN是分類算法

K-Means是聚類算法

監督學習,分類目標事先已知

非監督學習,將相似數據歸到一起從而得到分類,沒有外部分類

訓練數據集有label,已經是完全正確的數據

訓練數據集無label,是雜亂無章的,經過聚類後才變得有點順序,先無序,後有序

沒有明顯的前期訓練過程,屬於memory-based learning

有明顯的前期訓練過程

K的含義:“k”是用來計算的相鄰數據數。來了一個樣本x,要給它分類,即求出它的y,就從數據集中,在x附近找離它最近的K個數據點,這K個數據點,類別c佔的個數最多,就把x的label設爲c

K的含義:“k”是類的數目。K是人工固定好的數字,假設數據集合可以分爲K個簇,由於是依靠人工定好,需要一點先驗知識

K值確定後每次結果固定

K值確定後每次結果可能不同,從 n個數據對象任意選擇 k 個對象作爲初始聚類中心,隨機性對結果影響較大

時間複雜度:O(n)

時間複雜度:O(n*k*t),t爲迭代次數

相似點:都包含這樣的過程,給定一個點,在數據集中找離它最近的點。即二者都用到了NN(Nears Neighbor)算法,一般用KD樹來實現NN。

 

參考引用:

  1. http://www.tuicool.com/articles/qamYZv
  2. http://www.tuicool.com/articles/yUBBbyR
  3. http://stats.stackexchange.com/questions/56500/what-are-the-main-differences-between-k-means-and-k-nearest-neighbours
  4. k-Means:http://blog.pluskid.org/?p=17
發佈了24 篇原創文章 · 獲贊 38 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章