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