KNN算法,K聚類的優缺點

  • KNN

適用數據範圍:數值型和標稱型 (目標變量的結果只在有限目標集中取值,如真與假,標稱型目標變量主要用於分類)

優點

① 簡單,易於理解,易於實現,無需參數估計,無需訓練;
② 對異常值不敏感(個別噪音數據對結果的影響不是很大);
③ 適合對稀有事件進行分類;
④ 適合於多分類問題(multi-modal,對象具有多個類別標籤),KNN要比SVM表現要好;

缺點

① 對測試樣本分類時的計算量大,內存開銷大,因爲對每一個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本;
② 可解釋性差,無法告訴你哪個變量更重要,無法給出決策樹那樣的規則;
③ K值的選擇:最大的缺點是當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本佔多數。該算法只計算“最近的”鄰居樣本,某一類的樣本數量很大,那麼或者這類樣本並不接近目標樣本,或者這類樣本很靠近目標樣本。無論怎樣,數量並不能影響運行結果。可以採用權值的方法(和該樣本距離小的鄰居權值大)來改進;
④ KNN是一種消極學習方法、懶惰算法。

算法步驟:
1、計算已知類別數據集中的點與當前點之間的距離;
2、按照距離遞增次序排序;
3、選取與當前點距離最小的k個點;
4、確定k個點所在類別的出現頻率;
(K用於選擇最近鄰的數目,K的選擇非常敏感。K值越小意味着模型複雜度越高,從而容易產生過擬合;K值越大則 意味着整體的模型變得簡單,學習的近似誤差會增大,在實際的應用中,一般採用一個比較小的K值,用交叉驗證的 方法,選取一個最優的K值。)
5、返回前k個點出現頻率最高的類別作爲當前點的預測分類

參考:https://blog.csdn.net/wangmumu321/article/details/78576916
https://blog.csdn.net/lht_okk/article/details/70233553

  • K均值聚類

適用數據範圍:數值型

優點:容易實現
缺點:
① 簡單,易於理解,易於實現,無需參數估計,無需訓練;
② 可能收斂到局部最小值(2分 K均值);
③ 在大規模數據集上收斂較慢;
④ 對異常值敏感;

算法步驟:
1) 選取數據空間中的K個對象作爲初始中心,每個對象代表一個聚類中心(可隨機可指定);

2) 對於樣本中的數據對象,根據它們與這些聚類中心的歐氏距離,按距離最近的準則將它們分到距離它們最近的聚類中心(最相似)所對應的類;

3) 更新聚類中心:將每個類別中所有對象所對應的均值作爲該類別的聚類中心,計算目標函數的值;

4) 判斷聚類中心和目標函數的值是否發生改變,若不變,則輸出結果,若改變,則返回2)。

確定K的個數:

1、按需選擇(規定的K)
2、觀察法
3、手肘法(將K作爲自變量,每個K都會得到所有樣本到K簇的距離和,將這個和作爲因變量,畫圖,擬合,找到極值點)

參考:https://www.cnblogs.com/kevincong/p/7868640.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章