機器學習面試題之KNN

2021-09-18 06:31:16 字數 2075 閱讀 4139

1. 簡述一下knn演算法的原理

knn演算法利用訓練資料集對特徵向量空間進行劃分。knn演算法的核心思想是在乙個含未知樣本的空間,可以根據樣本最近的k個樣本的資料型別來確定未知樣本的資料型別。

該演算法涉及的3個主要因素是:k值選擇,距離度量,分類決策。

2. 如何理解knn中的k的取值?

選取較小的k值時,相當於用較小的領域中的訓練例項進行**,「學習」近似誤差會減小,只有與輸入例項很相近的樣本才會對**結果起作用。但是,「學習」的估計誤差會增大,**結果會對近鄰的例項點非常敏感。如果鄰近的例項點恰好是雜訊,**就會出錯。換句話說,k值的減小就意味著整體模型會變得複雜,容易過擬合。

選取較大的k值是,相當於用較大的領域中的訓練例項進行**,其優點是可以減少學習的估計誤差。但缺點是學習的近似誤差會增大,這時與輸入例項較遠的樣本也對**結果起作用,容易使**發生錯誤。k值的增大就意味著整體的模型變得簡單。

在應用中,k值一般取比較小的值,並採用交叉驗證法進行調優。

3. 在knn的樣本搜尋中,如何進行高效的匹配查詢?

線性掃瞄(資料多時,效率低)

4. knn演算法有哪些優點和缺點?

優點:演算法思想較簡單,既可以做分類也可以做回歸;可以用於非線性分類/回歸;訓練時間複雜度為o(n);準確率高,對資料沒有假設,對離群點不敏感。

缺點:計算量大;存在類別不平衡問題;需要大量的記憶體,空間複雜度高。

5. 不平衡的樣本可以給knn的**結果造成哪些問題,有沒有什麼好的解決方式?

輸入例項的k鄰近點中,大數量類別的點會比較多,但其實可能都離例項較遠,這樣會影響最後的分類。

可以使用權值來改進,距例項較近的點賦予較高的權值,較遠的賦予較低的權值。

6. 為了解決knn演算法計算量過大的問題,可以使用分組的方式進行計算,簡述一下該方式的原理。

先將樣本按距離分解成組,獲得質心,然後計算未知樣本到各質心的距離,選出距離最近的一組或幾組,再在這些組內引用knn。本質上就是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本,該方法比較適用於樣本容量比較大時的情況。

7. 什麼是歐氏距離和曼哈頓距離?

歐氏距離就是常用的平方差求和再開方;曼哈頓距離是座標差的絕對值求和。

8. 那什麼是kd樹?怎麼構建的?

kd樹是對資料點在k維空間中劃分的一種資料結構,主要用於多維空間關鍵資料的搜尋。本質上,kd樹就是一種平衡二叉樹。

9. kd樹建立過程中切分維度的順序是否可以優化?

先對各個維度計算方差,選取最大方差的維度作為候選劃分維度(方差越大,表示此維度上資料越分散);對split維度上的值進行排序,選取中間的點為node-data;按照split維度的node-data對空間進行一次劃分;對上述子空間遞迴以上操作,直到空間只包含乙個資料點。分而治之,且迴圈選取座標軸。從方差大的維度來逐步切分,可以取得更好的切分效果及樹的平衡性。

10. kd樹每一次繼續切分都要計算該子區間在需切分維度上的中值,計算量很大,有什麼方法可以對其進行優化?

在構建kd樹前,依據每一維度先排序,在之後的切分中直接使用。

11. 能簡單介紹一下kd樹的查詢,以及增、刪、改的實現流程嗎?

先二叉查詢,找到候選最近點;沿著路徑進行回溯,畫圓,是否父節點平面交割,以判斷是否需要進入另乙個平面進行查詢;依次回溯,畫圓,尋找最近點。

kd樹更適合用於訓練例項數遠大於空間維數時的k近鄰搜尋。當維數超過20維時,kd數的檢索效率急劇下降,幾乎接近貪婪的線性掃瞄。因此出現對kd樹的改進——bbf演算法,m樹,vp樹,mvp樹等高維空間索引樹。(要以後了解一下這些高維索引樹)

12. 能否大幅減少訓練樣本量,同時又保持分類精度?

濃縮技術(condensing)、編輯技術(editing)

13. k-means與knn有什麼區別

k-means是聚類演算法,knn用來分類和回歸。

機器學習面試題之KNN(六)

小狼狗的knn面試問題的總結 1.簡述一下knn演算法的原理 knn既可以用於分類,也可以用於回歸。本身沒有顯示的模型訓練,多數情況用於分類演算法。knn演算法我們主要要考慮三個重要的要素,對於固定的訓練集,只要這三點確定了,演算法的 方式也就決定了。這三個最終的要素是k值的選取,距離度量的方式和分...

機器學習面試題

答 設計乙個分類模型,首先要給它設定乙個學習目標。在支援向量機中,這個目標是max margin 在adaboost中,目標是優化乙個指數損失函式。那麼在logistic regression lr 中,這個目標是什麼呢?最大化條件似然度。考慮乙個二值分類問題,訓練資料是一堆 特徵,標記 組合,x1...

機器學習面試題之線性回歸

1.簡單介紹一下線性回歸 線性就是兩個或者多個變數之間的關係符合一次函式關係,對應到影象上就是一條直線,這叫線性關係。那如果變數之間的關係不符合一次函式,影象就不是直線,也不滿足線性關係。而回歸是指 希望通過計算回歸到真實值。線性回歸是用於 問題的有監督學習,通過學習x到y的乙個對映關係,希望利用學...