優點
pythonk-近鄰算法簡單,易于理解,易于實現,無需參數估計,無需訓練,即可以用來做分類也可以用來做回歸
和樸素貝葉斯算法比,對數據沒有假設,準確度高,對異常值不敏感(個別噪音數據對結果的影響不是很大)
適合對稀有事件進行分類,也可以用于非線性分類
適合于多分類問題(multi-modal,對象具有多個類別標簽),KNN要比SVM表現好
訓練時間復雜度比支持向量機之類的算法低,僅為O(n)
由于KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合
該算法比較適用于樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域采用這種算法比較容易誤分
缺點
對測試樣本分類時的計算量大,內存開銷大,因為對每個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點,目前常用的解決方法是對已知的樣本點進行剪輯,事先要去除對分類作用不大的樣本
可解析性差,無法告訴你哪個變量更重要,無法給出決策樹那樣的規則
k值的選擇:最大的缺點是當樣本不平衡時,如一個類的樣本容量很大,而其他樣本容量很小時候,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本占多數。該算法只計算“最近的”鄰居樣本,某一類的樣本數量很大的時候,那么或者這類樣本并不接近目標樣本,或者這類樣本很靠近目標樣本。無論如何,數量并不影響運行結果,可以采用權值的方法(和該樣本距離小的鄰居權重大)來改進
KNN是一種消極學習方法,懶惰算法,導致預測時速度比起邏輯回歸之類的算法慢
相對于決策樹模型,KNN模型可解釋性不強
KD樹,球樹之類的模型建立需要大量的內存
以上內容為大家介紹了Pythonk-近鄰算法的優缺點,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。