機器學習 邏輯回歸常見面試題整理

2021-10-25 11:38:36 字數 1991 閱讀 2913

1.介紹

邏輯回歸假設資料服從伯努利分布,通過極大化似然函式的方法,運用梯隊下降來求解引數,來達到將資料二分類的目的。

2.邏輯回歸的損失函式和梯度下降引數迭代方法

3.邏輯回歸為什麼使用對數損失而不用平方損失

損失函式一般有四種,平方損失函式,對數損失函式,hingeloss0-1損失函式,絕對值損失函式。

將極大似然函式取對數以後等同於對數損失函式。在邏輯回歸這個模型下,對數損失函式的訓練求解引數的速度是比較快的。至於原因大家可以求出這個式子的梯度更新

這個式子的更新速度只和xij,yi相關。和sigmod函式本身的梯度是無關的。這樣更新的速度是可以自始至終都比較的穩定。

為什麼不選平方損失函式的呢?

其一是因為如果你使用平方損失函式,你會發現梯度更新的速度和sigmod函式本身的梯度是很相關的。sigmod函式它在定義域內的梯度都不大於0.25,這樣訓練會非常的慢。

4.邏輯回歸在訓練的過程中,如果有很多的特徵高度相關或者說有乙個特徵重複了很多遍,會造成怎樣的影響

如果在損失函式最終收斂的情況下,其實就算有很多特徵高度相關也不會影響分類器的效果。 但是對特徵本身來說的話,假設只有乙個特徵,在不考慮取樣的情況下,你現在將它重複 100 遍。訓練完以後,資料還是這麼多,但是這個特徵本身重複了 100 遍,實質上將原來的特徵分成了 100 份,每乙個特徵都是原來特徵權重值的百分之一。如果在隨機取樣的情況下,其實訓練收斂完以後,還是可以認為這100個特徵和原來那乙個特徵扮演的效果一樣,只是可能中間很多特徵的值正負相消了。

5.為什麼在訓練過程中將高度相關的特徵去掉

6.邏輯回歸為什麼要對特徵進行離散化

在工業界,很少直接將連續值作為特徵餵給邏輯回歸模型,而是將連續特徵離散化為一系列0、1特徵交給邏輯回歸模型,這樣做的優勢有以下幾點:

稀疏向量內積乘法運算速度快,計算結果方便儲存,容易scalable(擴充套件)。

離散化後的特徵對異常資料有很強的魯棒性:比如乙個特徵是年齡》30是1,否則0。如果特徵沒有離散化,乙個異常資料「年齡300歲」會給模型造成很大的干擾。

邏輯回歸屬於廣義線性模型,表達能力受限;單變數離散化為n個後,每個變數有單獨的權重,相當於為模型引入了非線性,能夠提公升模型表達能力,加大擬合。

離散化後可以進行特徵交叉,由m+n個變數變為m*n個變數,進一步引入非線性,提公升表達能力。

7.邏輯回歸模型中,為什麼常常要做特徵組合(特徵交叉)

邏輯回歸模型屬於線性模型,線性模型不能很好處理非線性特徵,特徵組合可以引入非線性特徵,提公升模型的表達能力。另外,基本特徵可以認為是全域性建模,組合特徵更加精細,是個性化建模,但對全域性建模會對部分樣本有偏,對每乙個樣本建模又會導致資料**,過擬合,所以基本特徵+特徵組合兼顧了全域性和個性化。

8.邏輯回歸和線性回歸

9.正則化

上圖中的模型是線性回歸,有兩個特徵,要優化的引數分別是w1和w2,左圖的正則化是l2,右圖是l1。藍色線就是優化過程中遇到的等高線,一圈代表乙個目標函式值,圓心就是樣本觀測值(假設乙個樣本),半徑就是誤差值,受限條件就是紅色邊界(就是正則化那部分),二者相交處,才是最優引數。可見右邊的最優引數只可能在座標軸上,所以就會出現0權重引數,使得模型稀疏。

10.梯度下降法

11.工程上,怎麼實現lr的並行化?有哪些並行化的工具

邏輯回歸的並行化最主要的就是對目標函式梯度計算的並行化。

演算法的並行化有兩種:

基於batch的演算法(batch-gd, lbfgs, owlqn)都是可以進行無損的並行化的。而基於sgd的演算法(ad predictor, ftrl-proximal)都只能進行有損的並行化。

並行化的工具mpi和openmp

12.邏輯回歸的優缺點

缺點 13.lr與svm的關係

不同點

機器學習常見面試題

判別方法 由資料直接學習決策函式 y f x 或者由條件分布概率 p y x 作為 模型,即判別模型。生成方法 由資料學習聯合概率密度分布函式 p x,y 然後求出條件概率分布p y x 作為 的模型,即生成模型。由生成模型可以得到判別模型,但由判別模型得不到生成模型。常見的判別模型有 k近鄰 sv...

機器學習面試題 邏輯回歸

q1 邏輯回歸在訓練的過程當中,如果有很多的特徵高度相關或者說有乙個特徵重複了很多遍,會造成怎樣的影響 如果在損失函式最終收斂的情況下,其實就算有很多特徵高度相關也不會影響分類器的效果。但是對特徵本身來說的話,假設只有乙個特徵,在不考慮取樣的情況下,你現在將它重複 n 遍。訓練以後完以後,資料還是這...

常見面試題整理

題目 如下為型別cmystring的宣告,請為該型別新增賦值運算子函式。class cmystring 注意點 1.返回值是否為該型別的引用。如果為該型別引用則可連續賦值。如果返回void,則無法通過編譯 2.傳入引數是否宣告為常量引用。如果傳入引數不是常量引用,則會有一次非必要的拷貝構造函式呼叫 ...