Feature transformation對logistic regression輸出的影響?

今天遇到一個關於logistic regression的面試題:

假設我們現在只有一個feature x,是個連續值。我們用logistic regression去訓練一個二類分類的模型。但是現在假設有人建議對輸入feature x做一個簡單轉換(比如取log(x))可能會提升分類準確度。於是我們把x轉換成個log(x)。那請問怎麼比較新模型和舊模型的performance。

我一開始沒有理解面試官的意思,我說就取輸出概率0.5以上為class1,以下為class0,然後比較分類之後的precision和recall。他說不是這個意思,他說主要是做了feature transformation之後,對新模型就不能再用0.5作為decision boundary了。(這段提示其實對方講得我也不確定我是否聽懂了,我覺得大概就是這個意思)

於是這題我後來還是沒答上來。請問有人知道應該怎麼答嗎?

事後我查了一下,加了log變換確實對y變化很大。。。


題主直接比較y=frac{1}{1+	ext{e}^{-x}}y = frac{1}{1 + 	ext{e}^{-log x}}的圖像,作用並不大,因為這裡忽略了兩個問題:

  • 既然特徵能取log,那麼必然本身是正的,所以應當只觀察y軸右側的圖象;
  • 擬合出來的logistic regression模型,特徵(x 或 log x)會經過一個線性變換,判決邊界並不一定在x = 0或log x = 0處。

這是我的結論:對特徵取log,相對於對坐標軸進行了不均勻的伸縮,這會讓值小的特徵分布得更分散,值大的特徵分布得更集中。受此影響,判決邊界會向小的方向移動,但移動的幅度一般不明顯。

下面舉例說明。設第一類(藍色)有5個數據點,取值分別為 1, 3, 5, 7, 9;第二類(紅色)有5個數據點,取值分別為 6, 8, 10, 12, 14。

兩類的分布是對稱的,如果直接做logistic regression,則判決邊界為7.5。

如果對特徵取對數,則藍色數據點會變得分散,紅色數據點會變得集中。

此時,如果仍把判決邊界放在log(7.5)處,則相對於藍色點來說,紅色點對應的概率值就會離1比較遠,這會推動判決邊界向左移動。實測的判決邊界為1.961,這對應於取對數前的7.11。但它與7.5相比,變換並不大。

實際中,我們希望兩類的分布是儘可能對稱的,這樣判決邊界就不會過於靠近任一類。

所以,如果你的數據分布本來就是對稱的,則完全沒有必要去做log這樣的變換。

相反,如果你的數據分布中,值比較大的那一類分布比較分散,而值比較小的那一類分布比較集中,就可以取個log使二者接近對稱。

如果值大的那一類分布比較集中,而值比較小的那一類分布比較分散,就應該用指數變換使二者接近對稱。


@王贇 Maigo 說得很清楚了。補充一點 logistic regression 是假設 p(y|x)=frac{1}{1 + e ^ {w^Tx}}, 並沒有明確說過decision boundary 必須是0.5。取哪個值作為threshold取決於decision的目的 例如是要優化classification accuracy(這個對應了decision boundary是0.5的情況), recall, precision, f1 還是expected loss等等。這些才是決定threshold的因素,與LR無關。


推薦閱讀:

TAG:數據挖掘 | 機器學習 | Logistic回歸 | 數據科學 |