1,K值設定為多大?
K太小,分類結果易受噪聲點影響;K太大,近鄰中又可能包含太多的其他類別的點。(對距離加權,可以降低K值設定的影響)
K值通常是采用交叉檢驗來確定
經驗規則:K一般低于訓練樣本數的平方根
2,類別如何判斷最合適?
投票法沒有考慮近鄰的距離遠近,距離更近的近鄰也許更應該決定最終的分類,所以加權投票法更加恰當一些。
3,如何選擇合適的距離衡量?
高維度對距離衡量的影響:眾所周知當變量數越多,歐氏距離的區分能力就越差。
變量值域對距離的影響:值域越大的變量常常會在距離計算中占據主導作用,因此應當對變量進行標準化。
4,訓練樣本是否要一視同仁?
在訓練集中,有些樣本可能是更值得依賴的
可以給不同的樣本施加不同的權重,加強依賴樣本的權重,降低不可信賴樣本的影響。
5,性能問題?
KNN是一種懶惰算法,平時不好好學習,考試(對測試樣本分類)時才臨陣磨槍(臨時找k個近鄰)。
懶惰的后果:構造模型很簡單,但是對測試樣本分類的系統開銷很大,因為要掃描全部訓練樣本并計算距離。
已經有一些方法提高計算的效率,例如壓縮訓練樣本量等。
6,能否大幅度減少訓練樣本量,同時又保持分類精度?
濃縮技術(condensing)
編輯技術(editing)
以上內容為大家介紹了Pythonk-近鄰算法常見問題,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。