KNN與K-MEANS的區別


1. k-means聚類算法過程與原理

k-means算法(k-均值聚類算法)是一種基本的已知聚類類別數的划分算法。它是很典型的基於距離的聚類算法,采用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度就越大。它是使用歐氏距離度量的(簡單理解就是兩點間直線距離,歐氏距離只是將這個距離定義更加規范化,擴展到N維而已)。它可以處理大數據集,且高效。聚類結果是划分為k類的k個數據集。根據聚類結果的表達方式又可以分為硬 k-means(H CM)算法、模糊k-means算法(F CM)和概率k-means算法(P CM)。

1.1.基本思想

它是基於給定的聚類目標函數,算法采用迭代更新的方法,每一次迭代過程都是向目標函數減小的方向進行,最終聚類結果使得目標函數取得極小值,達到較好的分類效果

1.2 原理

原始的k-means算法首先隨機選取k個點作為初始聚類中心,然后計算各個數據對 象到各聚類中心的距離,把數據對象歸到離它最近的那個聚類中心所在的類; 調整后的新類計算新的聚類中心,如果相鄰兩次的聚類中心沒有任何變化,說明 數據對象調整結束,聚類准則函數f已經收斂。在每次迭 代中都要考察每個樣本的分類是否正確,若不正確,就要調整。在全部數據調整 完后,再修改聚類中心,進入下一次迭代。如果在一次迭代算法中,所有的數據 對象被正確分類,則不會有調整,聚類中心也不會有任何變化,這標志着f已 經收斂,算法結束。

1.3 算法流程圖

1.4 算法初始點怎么選擇?

1) 選擇批次距離盡可能遠的K個點

首先隨機選擇一個點作為第一個初始類簇中心點,然后選擇距離該點最遠的那個點作為第二個初始類簇中心點,然后再選擇距離前兩個點的最近距離最大的點作為第三個初始類簇的中心點,以此類推,直至選出K個初始類簇中心點。

2) 選用層次聚類或者Canopy算法進行初始聚類,然后利用這些類簇的中心點作為K-Means算法初始類簇中心點。

1.5算法中的k如何選取?

只要我們假設的類簇的數目等於或者高於真實的類簇的數目時,該指標上升會很緩慢,而一旦試圖得到少於真實數目的類簇時,該指標會急劇上升。類簇指標 作為一個重要的參考指標。

類簇的直徑是指類簇內任意兩點之間的最大距離。

類簇的半徑是指類簇內所有點到類簇中心距離的最大值。

1.6 優缺點以及如何改進?

使用簡單,是因為它使用了一個隨機的元素,所以它不能保證找到最佳的類。 無需要一個合理初始化要聚類的個數:即要初始化K 。

2. K-最近鄰分類算法(K N N)

2.1 問題引入

K N N的思想: 從上圖中我們可以看到,圖中的數據集是良好的數據,即都打好了label,一類是藍色的正方形,一類是紅色的三角形,那個綠色的圓形是我們待分類的數據。 如果K=3,那么離綠色點最近的有2個紅色三角形和1個藍色的正方形,這3個點投票,於是綠色的這個待分類點屬於紅色的三角形 如果K=5,那么離綠色點最近的有2個紅色三角形和3個藍色的正方形,這5個點投票,於是綠色的這個待分類點屬於藍色的正方形 即如果一個樣本在特征空間中的k個最相鄰的樣本中,大多數屬於某一個類別,則該樣本也屬於這個類別。我們可以看到,K N N本質是基於一種數據統計的方法!其實很多機器學習算法也是基於數據統計的。

2.2 K N N算法

  • 介紹

    K N N即K-Nearest Neighbor,是一種memory-based learning,也叫instance-based learning,屬於lazy learning。即它沒有明顯的前期訓練過程,而是程序開始運行時,把數據集加載到內存后,不需要進行訓練,就可以開始分類了。 K N N也是一種監督學習算法,通過計算新數據與訓練數據特征值之間的距離,然后選取K(K>=1)個距離最近的鄰居進行分類判(投票法)或者回歸。若K=1,新數據被簡單分配給其近鄰的類。

  • 步驟

    1)計算測試數據與各個訓練數據之間的距離;可以使用歐式距離的公式來進行計算。

    2)按照距離的遞增關系進行排序;

    3)選取距離最小的K個點(k值是由自己來確定的)

    4)確定前K個點所在類別的出現頻率;

    5)返回前K個點中出現頻率最高的類別作為測試數據的預測分類。

  • 特點

    非參數統計方法:不需要引入參數 K的選擇: K = 1時,將待分類樣本划入與其最接近的樣本的類。 K = |X|時,僅根據訓練樣本進行頻率統計,將待分類樣本划入最多的類。 K需要合理選擇,太小容易受干擾,太大增加計算復雜性。 算法的復雜度:維度災難,當維數增加時,所需的訓練樣本數急劇增加,一般采用降維處理。

2.3 算法的優缺點

優點:簡單、有效

缺點:計算量較大。輸出的可解釋性不強。需要存儲全部的訓練樣本。

3. K N N與k-means的區別

img

相似點: 雖然兩者有很大且別,但兩者也有共同之處。都包含了一個過程:給定一個點,在數據集找離它最近的點,即都用到了N N(Nearest Neighbor)算法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM