KNN的主要優(yōu)點有:
1.理論成熟,思想簡單,既可以用來做分類又可以做回歸
2.可以用于非線性分類
3.訓練時間復雜度比支持向量機之類的算法低
3.和樸素貝葉斯之類的算法比,對數(shù)據(jù)沒有假設,準確度高,對異常點不敏感
4.由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬的類別,因此對于類域的交叉或重疊較多的待分類樣本集來說,KNN方法較其他方法更為適合
5.該算法比較適用于樣本容量比較大的類域的自動分類,而那些樣本容量比較小的類域采用這種算法比較容易產(chǎn)生誤分類情況
KNN的主要缺點:
1.計算量大,尤其是特征數(shù)非常多的時候
2.樣本不平衡的時候,對稀有類別的預測準確率低
3.KD樹,球樹之類的模型建立需要大量的內(nèi)存
4.是慵懶散學習方法,基本上不學習,導致預測時速度比起邏輯回歸之類的算法慢
5.相比決策樹模型,KNN模型的可解釋性不強
KNN算法介紹:
KNN,k-NearestNeighborK ,又稱K最近鄰。所謂K最近鄰,就是k個最近的鄰居的意思。
說的是每個樣本都可以用它最接近的k個鄰居來代表,是一種分類算法,用于參考已知的數(shù)據(jù),對未知實例的類別進行判斷。
算法步驟:
將每個樣本視作一個點
1. 載入數(shù)據(jù)集,對數(shù)據(jù)進行必要的預處理
2. 設置參數(shù)K,K最好選擇奇數(shù),因為后續(xù)進行歸類的策略是少數(shù)服從多數(shù),設置K為奇數(shù)的話總會有結果。
3. 計算待預測點與已知點之間的關系,這里的關系可以有多種方式來體現(xiàn),常用如下:
??①歐式距離(應用較廣,其他及其算法也有廣泛應用),其計算方法:
②余弦值
③相關度
④曼哈頓距離
⑤…
4. 之前確定了參數(shù)K,計算了待預測點與已知點之間的距離衡量,將計算的結果進行從小到大排序,取前K個點
5. 將待預測點歸類為多數(shù)的那一個類別,這便是對于未知點的類別預測結果了。
算法優(yōu)點:
1.簡單,易于理解,易于實現(xiàn),無需估計參數(shù),無需訓練;
2. 適合對稀有事件進行分類;
3.特別適合于多分類問題(multi-modal,對象具有多個類別標簽), kNN比SVM的表現(xiàn)要好。
算法缺點:
需要大量的空間來存儲已知的實例,再一個是算法復雜度較高。
算法理解:
我們根據(jù)一張圖來理解這個算法吧。
未知點X延伸出的5個箭頭,表示我們的K為5,也就是我們選取了5個已知點用于對X進行歸類預測
特殊情況:
對于未知點Y不使用算法,我們會將未知點Y歸類為W1這一類,運行了算法后,會將Y歸類為W2類,這明顯是錯誤的歸類結果。
這是由于樣本分布不平衡造成的。我們可以通過給計算后的距離加上權重來控制不同距離的點對結果的貢獻程度,離未知點越近的,權重大,對結果貢獻度大,反之離未知點遠的,權重小,對結果的貢獻度小。
knn就是當預測一個新的值x的時候,根據(jù)它距離最近的K個點是什么類別來判斷x屬于哪個類別。
釋義:
近鄰算法;最近鄰;近鄰法
例句:
KNN nearest neighbors is one of the best text categorization algorithms based on Vector Space Model.
近鄰算法是基于向量空間模型的最好的文本分類算法之一.
網(wǎng)絡:
KNN classifier KNN分類器;分類器
feature weighted KNN 特征加權算法;的特征加權算法
knn algorithm knn算法
KNN是通過測量不同特征值之間的距離進行分類。它的思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別。優(yōu)點:
① 訓練時間復雜度比支持向量機之類的算法低,僅為O(n)
② 和樸素貝葉斯之類的算法比,對數(shù)據(jù)沒有假設,準確度高,對異常點不敏感
③ KNN主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合缺點① 計算復雜性高;空間復雜性高; ② 樣本不平衡的時候,對稀有類別的預測準確率低 ③ 可解釋性差,無法給出決策樹那樣的規(guī)則。
這是新加坡的臟話 翻譯過來是gan ni niang
KNN 原理
KNN是一種即可用于分類又可用于回歸的機器學習算法。
對于給定測試樣本,基于距離度量找出訓練集中與其最靠近的K個訓練樣本,然后基于這K個“鄰居”的信息來進行預測。
在分類任務中可使用投票法,選擇這K個樣本中出現(xiàn)最多的類別標記作為預測結果;
在回歸任務中可使用平均法,將這K個樣本的實值輸出標記的平均值作為預測結果。當然還可以基于距離遠近程度進行加權平均等方法。
KNN 優(yōu)點
1、理論成熟,思想簡單,既可以用來做分類也可以用來做回歸
2、可用于非線性分類
3、訓練時間復雜度比支持向量機之類的算法低,僅為O(n)
4、和樸素貝葉斯之類的算法比,對數(shù)據(jù)沒有假設,準確度高,對異常點不敏感
5、對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合
6、比較適用于樣本容量比較大的類域的自動分類。
KNN 缺點
1、計算量大,尤其是特征數(shù)非常多的時候。
2、樣本不平衡的時候,對稀有類別的預測準確率低
3、KD樹,球樹之類的模型建立需要大量的內(nèi)存。
4、使用懶散學習方法,基本上不學習,導致預測時速度比起邏輯回歸之類的算法慢。
5、相比決策樹模型,KNN模型可解釋性不強。
KNN(K-Nearest Neighbor)K-近鄰算法,是一種最簡單常用的監(jiān)督學習算法,屬于“懶惰學習”,即在訓練階段僅僅是把樣本保存起來,訓練時間開銷為0,待收到測試樣本后再進行處理。而那些在訓練階段就對樣本進行學習處理的方法,稱為“急切學習”。
懶惰學習是一種訓練集處理方法,其會在收到測試樣本的同時進行訓練,與之相對的是急切學習,其會在訓練階段開始對樣本進行學習處理。
作為一種非參數(shù)的分類算法,K-近鄰(KNN)算法是非常有效和容易實現(xiàn)的。它已經(jīng)廣泛應用于分類、回歸和模式識別等。
在應用KNN算法解決問題的時候,要注意兩個方面的問題——樣本權重和特征權重。利用SVM來確定特征的權重,提出了基于SVM的特征加權算法(FWKNN,featureweightedKNN)。實驗表明,在一定的條件下,F(xiàn)WKNN能夠極大地提高分類準確率。
KNN(K-Nearest Neighbor)是最簡單的機器學習算法之一,可以用于分類和回歸,是一種監(jiān)督學習算法。它的思路是這樣,如果一個樣本在特征空間中的K個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別。
也就是說,該方法在定類決策上只依據(jù)最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。