機器學習相關知識點面試總結

2022-06-23 14:09:14 字數 2503 閱讀 6090

博主近日參加了導師實驗室的面試,因為對機器學習比較感興趣,所以簡歷上寫了目前已實現svm,adaboost等演算法,然後接下來的二十多分鐘面試基本問svm了。很多知識點其實以前也有遇到,只是沒有詳細總結,此處博主班門弄斧,不到位的地方還請大家指正。

1)樸素貝葉斯的平滑處理過程是什麼?

這點其實在andrew ng的《machine learning》課程裡面有講,簡單來說就是拉普拉斯平滑處理。即在最後分類的概率部分分母加上類別總數,分子加1,主要是為了防止新的單詞在詞集中從未出現的情況。詳細原因可參考:

2)svm與感知機的聯絡與區別?

先說聯絡:

①svm與感知機本質上都是判別式模型,即直接學習p(y|x)

②感知機是svm的基礎,svm不引入核函式的話和感知機一樣都是線性分類器

再說區別:

①分類原理不一樣。svm的原理主要是幾何間隔最大化,而且分類平面存在且唯一;感知機的思想是分類正確不調整權重,分類錯誤會對權重做進一步更新,這樣造成的結果是每次分類完成後確定的分類平面不唯一。

②適用範圍不一樣,主要針對近似線性可分資料集和線性不可分資料集。對於svm而言,最基本的是線性可分支援向量機,這隻針對資料集完全線性可分時適用,當然感知機此時也適用;對於近似線性可分資料集,svm對函式間隔引入鬆弛條件(軟間隔最大化,直接表現就是在完全線性可分時的目標函式上加上懲罰項),而單層感知機對於這類資料集不能收斂,不能得到最後的分類平面;最後對於線性不可分資料集,svm引入核函式,將線性不可分資料對映到高維,然後再採用線性可分時的思想來解決,然而單層感知機不能處理這類問題,典型的如異或問題。

③損失函式不一樣。這部分與①有重疊,但還是想提出來說。我們知道二類分類的損失函式即為0-1損失,但他有個缺點就是不可導,沒辦法進一步進行優化。svm的損失函式是hinge loss(合頁損失),可以看做是對0-1損失的上界,對0-1損失函式不可導的一種優化;其次svm的損失函式可看做是感知機損失函式(虛線部分)沿函式間隔軸向右平移一個單位的結果,這說明svm對相對於感知機對分類間隔的要求更高。

0-1 損失 vs 感知機損失 vs hinge loss

3)svm是個二分類演算法,其本身是否可以由二分類問題轉化為多分類問題,如果可以,請問怎麼轉?常見的由二分類到多分類問題的轉化方法有哪些?

參考自:

問題一:svm本身是可以直接轉換為多分類的,即將多個分類面的引數整合到一個最優化問題中,但往往求解困難。

one against one採用一對一的方式,最後每輪兩兩比較的投票總數排序,決定所屬的類別;one against all採用一對多的方式,最後直接比較所有輪的最大結果,決定目標所屬分類。

各自缺點分析:

對於one against one而言,需要訓練

個分類器,代價相對較高;對於one against all而言,需訓練n個分類器,但這種方法存在bias可能性(如下圖,左側為one against one,右側為one against all,綠色部分為分類歧義區)

one against one vs one against all

4)svm與logistic迴歸的區別,其適用資料集大小範圍各是哪些?

區別:

①損失函式。svm是hinge loss,logistic regression是對數損失。

②離群點對分類平面的影響。svm的分類平面只考慮支援向量部分,logistic regression的分類面會考慮所有點的影響。

③正則化。svm目標函式自帶正則化,logistic regression需要自己新增正則函式。

兩者適用的資料集範圍:

參考自andrew ng的《machine learning》

假設m是樣本數,n是特徵的數目 :

1、如果n相對於m來說很大,則使用logistic迴歸或者不帶核函式的svm(線性分類) 

2、如果n很小,m的數量適中(n=1-1000,m=10-10000),使用帶核函式的svm演算法 

3、如果n很小,m很大(n=1-1000,m=50000+),增加更多的特徵,然後使用logistic迴歸或者不帶核函式的svm。

5)adaboost演算法的誤差上界?

adaboost演算法最終分類器的訓練誤差上界為:

此處給出簡單的證明:

如果分類器分類正確,則左邊式子為0,而右邊

,即;如果分類器分類錯誤,則左邊式子為1,而右邊

,此時。故原等式成立。

李航,《統計學習方法》

andrew ng,《machine learning》