KNN的優(yōu)點(diǎn)
1、KNN算法是一個(gè)非常簡(jiǎn)單的算法,理論成熟,思想簡(jiǎn)單,既可以用來(lái)做分類(lèi)也可以用來(lái)做回歸
2、天然解決多分類(lèi)問(wèn)題,也可用于回歸問(wèn)題
3、和樸素貝葉斯之類(lèi)的算法比,對(duì)數(shù)據(jù)沒(méi)有假設(shè),準(zhǔn)確度高,對(duì)異常點(diǎn)不敏感
4、KNN在訓(xùn)練過(guò)程中實(shí)質(zhì)上不需要做任何事情,所以訓(xùn)練本身不產(chǎn)生任何時(shí)間上的消耗
5、由于KNN方法主要靠周?chē)邢薜泥徑臉颖?,而不是靠判別類(lèi)域的方法來(lái)確定所屬類(lèi)別的,因此對(duì)于類(lèi)域的交叉或重疊較多的待分樣本集來(lái)說(shuō),KNN方法較其他方法更為適合
KNN的缺點(diǎn)
1、計(jì)算量大,效率低。即使優(yōu)化算法,效率也不高。
2、高度數(shù)據(jù)相關(guān),樣本不平衡的時(shí)候,對(duì)稀有類(lèi)別的預(yù)測(cè)準(zhǔn)確率低
3、相比決策樹(shù)模型,KNN模型可解釋性不強(qiáng)
4、維度災(zāi)難:隨著維度的增加,“看似相近”的兩個(gè)點(diǎn)之間的距離越來(lái)越大,而knn非常依賴距離
| 維數(shù) | 點(diǎn)到點(diǎn) | 距離 |
|---|---|---|
| 1維 | 0到1的距離 | 1 |
| 2維 | (0,0)到(1,1)的距離 | 1.414 |
| 3維 | (0,0,0)到(1,1,1)的距離 | 1.73 |
| 64維 | (0,0,...0)到(1,1,...1) | 8 |
| 10000維 | (0,0,...0)到(1,1,...1) | 100 |