邏輯迴歸常見面試問題
1. 簡單介紹邏輯迴歸(一句話)
答:邏輯迴歸假設資料服從伯努利分佈,通過極大化似然函式,運用梯度下降來求解引數,來達到將資料二分類的目的。
2. 邏輯迴歸的假設
第一個假設:資料服從伯努利分佈
第二個假設:正類的概率由sigmoid的函式計算
樣本的標籤:
預測樣本的概率:
3. 邏輯迴歸的損失函式
為什麼要對似然函式求極值?
極大似然估計:利用已知的樣本資訊(x,y),反推最具有可能導致這些樣本(x,y)出現的模型引數(模型已定,引數未知)
模型是否已定?
(1)
x,y 是我們已知的樣本資訊
引數未知,是
舉個例子:我們已經知道了一個樣本,是正類,那麼我們把它丟入這個模型後,它預測的結果一定得是正類啊,正類才是我們所期望的,我們要儘可能的讓(1)式最大。反過來一樣的,如果你丟的是負類,那這個式子計算的就是負類的概率,同樣我們要讓(1)式最大。
綜上,一個樣本,不分它的標籤是正是負,丟入模型,多的不說,就是一個字,讓(1)式大。。。
對於整個訓練集,我們當然是期望所有樣本的概率都達到最大,聯合概率,樣本獨立性假設,目標函式:
(2)
沒有損失函式,叫目標函式就非常合適。。。
對(2)式求極值,取對數化簡得到對數形式 純屬數學技巧。。。感覺沒有所謂的log損失函式這一說:
然後為了迎合一般要最小化損失函式,所以加個負號:
至此也沒覺得這個式子有損失方式的味道。。。
為什麼要對似然函式求極值?
sigmoid函式結合平方損失函式會是一個非凸的函式,不易求解,會得到區域性解,用對數似然函式得到高階連續可導凸函式,存在得到最優解。
其次,是因為對數似然函式更新起來很快,因為只和x,y有關,和sigmoid本身的梯度無關。
4. 邏輯迴歸的求解方法
對上述負的對數似然函式採用梯度下降法即可。
5. 邏輯迴歸在訓練過程中,如果有很多特徵高度相關,會有什麼影響?為什麼將高度相關的特徵剔除?
做預測,效果無影響;
模型的可解釋性,不行;
降低訓練速度;
剔除高度相關的特徵:提高訓練速度;提高可解釋性。
6. 邏輯迴歸的優缺點
優點:
模型效果工程上還可以接受;
形式簡單,模型的可解釋性好:從特徵的權重可以看到不同特徵對最後結果的影響;某個特徵的權重值比較高,那麼這個特徵最後對結果的影響會比較大。
缺點:
容易欠擬合,精度不高,形式太簡單;
無法處理資料不平衡的問題:舉個例子:如果我們對於一個正負樣本非常不平衡的問題比如正負樣本比 10000:1.我們把所有樣本都預測為正也能使損失函式的值比較小。但是作為一個分類器,它對正負樣本的區分能力不會很好;
無法處理非線性資料。邏輯迴歸在不引入其他方法的情況下,只能處理線性可分的資料,或者進一步說,處理二分類的問題 。
7. 連續特徵離散化?為什麼?特徵交叉?為什麼?