1. 程式人生 > 其它 >邏輯迴歸常見面試問題

邏輯迴歸常見面試問題

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. 連續特徵離散化?為什麼?特徵交叉?為什麼?