天天看點

2-4 經典機器學習算法-K近鄰算法KNN,KNN與K-means之間的差別和聯系,KNN平衡方差和偏差,Python實作KNN

1、什麼是K近鄰算法(K-NN)?

2、K-NN與K-means之間有什麼差別和聯系?

3、在K-NN算法中如何平衡方差和偏差?

4、在K-NN算法中如何選擇K值的大小?

5、請用Python實作一個簡易版本的KNN分類算法?

1、什麼是K近鄰算法(K-NN)?

KNN、Kmeans、層次聚類幾個需要注意的點_記錄與分享AI資料與學習過程-CSDN部落格

2、K-NN與K-means之間有什麼差別和聯系?

聯系:都基于樣本距離的計算以及K值的學習方式,都需要指定重要超參數K

差別:KNN監督學習 Kmeans無監督聚類,本身就是兩種不同的機器學習方法,KNN也可以用于回歸,而Kmeans隻用于聚類;KNN的K指的是K個樣本,而Kmeans中指的是K個類别與聚類中心

3、在K-NN算法中如何平衡方差和偏差?

主要通過選取合适的K值來平衡,K選的小容易受噪聲或異常值影響,結果方差大;K選的大容易受到不相幹點的影響,偏差大

4、在K-NN算法中如何選擇K值的大小?

本身就是監督學習算法,可以通過交叉驗證選擇合适的K值,然後對于K的選擇情況下的badcase,根據決策規則進一步優化

或者通過經驗設定,如基于特征數量、樣本數量的經驗設定

5、請用Python實作一個簡易版本的KNN分類算法?

(1)設定K值,定義距離公式,計算樣本點和資料集中各個樣本的距離

(2)擷取距離最近的K樣本

(3)根據決策方式投票得到結果

計算樣本點和資料集中各個樣本的距離的實作:KD樹實作最佳,不行就用最小堆,實在不行就調sort()