機器學習之邏輯回歸

2022-07-13 07:45:11 字數 3917 閱讀 4147

我們首先分析一下用線性回歸做分類為什麼不合適,如下圖的例子

這是乙個乳腺癌相關的例子,橫軸表示腫瘤的大小,縱軸上的1和0標明是或者不是惡性腫瘤。當\(h_\theta\) 大於等於0.5時,**y=1; 當\(h_\theta\)小於0.5時,**y=0,似乎這樣乙個線性模型可以很好的**。如果我們的樣本中有乙個非常大尺寸的腫瘤,我們的模型看起來會像下圖

可以看出如果繼續使用0.5作為判斷標準的話可以看出,左上方兩個紅色的點會被誤判。我們需要乙個新的模型

\[h_\theta(x) = g(\theta^tx)

\]\[h_\theta(x) = g(\theta^tx) = \frac^}\boldsymbol}}

\]函式的圖形如下所示

為了下面引數求解方便,我們先推導一下sigmoid函式的導數

\[\begin

'\left (z\right ) & = & } \right )}' \\

& = & \frac) + 1(1 + e^)'})^2} \\

& = & \frac})^2} \\

& = & \frac}\cdot \frac}} \\

& = & g(z)\cdot(1 - g(z))

\end\]

我們從最大似然估計和損失函式的角度來求解引數\(\theta\)

從概率角度考慮,由於邏輯回歸適用於二元的分類問題,實際上是二項分布,我們可以如下定義:

\[\begin

p(y=1|x;\theta) & = & h_\theta(x) \\

p(y=0|x;\theta) & = & 1 - h_\theta(x)

\end\]

可以寫成如下更簡單的形式

\[p(y|x;\theta) = h_\theta(x)^y(1 - h_\theta(x))^

\]對m個樣本,我們得到的最大似然函式:

\[\begin

l(\boldsymbol) & = & \prod_^ p\left(y^\ |\ \boldsymbol^;\boldsymbol\right) \\

& = & \prod_^ \left( h_\boldsymbol(\boldsymbol^) \right) ^}\left( 1 - h_\boldsymbol(\boldsymbol^) \right)^}

\end\]

求對數\[\begin

l(\boldsymbol) & = & \log l(\boldsymbol) \\

& = & \sum_^y^\log h_\boldsymbol(\boldsymbol^) + (1-y^)\log \left( 1-h_\boldsymbol(\boldsymbol^) \right)

\end\]

我們的目標是找出對數似然函式取最大值時\(\theta\)的取值,首先簡化一下我們的問題,假設只有乙個樣本,求梯度

使用上面給出的結論對目標函式進行替換

\[h_\theta(x) = g(\theta^tx)

\]對我們的極大似然函式求偏導

\[\begin

\fracl(\theta) & = & (y(\frac)\fracg(\theta^tx) + (1-y)(\frac)\frac(1 - g(\theta^tx))) \\

& = & (y(\frac) - (1-y)(\frac))\fracg(\theta^tx) \\

& = & (y(\frac) - (1-y)(\frac))g(\theta^tx)(1 - g(\theta^tx))\fracg(\theta^tx) \\

& = & ((y(1 - g(\theta^tx)) - (1-y)(g(\theta^tx)))x_j \\

& = & (y - g(\theta^tx))x_j \\

& = & (y - h_\theta(x))x_j

\end\]

由於求得是最大值,使用梯度上公升演算法

\[\begin

\theta_j & = & \theta_j - \alpha \frac l(\boldsymbol) \\

& = & \theta_j - \alpha \frac \sum_^ \left( h_\boldsymbol(\boldsymbol) - y^i \right) x^_j

\end\]

如果使用上篇線性回歸中的均方誤差作為損失函式,我們將得到乙個非凸的,無法利用梯度下降方法來最小化損失函式。

所以我們重新定義我們的損失:

\[cost\left( h_\boldsymbol(\boldsymbol), y \right) = \left\ - \log \left( h_\boldsymbol(\boldsymbol) \right), \quad y=1 \\

- \log \left( 1-h_\boldsymbol(\boldsymbol) \right),\quad y=0

\end\right.

\]\(h_\theta(x)\) 與 \(cost(h_\theta(x), y)\)之間的關係如下圖所示:

當實際的\(y = 1\)

\(h_\theta(x)\) = 1\(,損失為0。當實際的\)y = 1$ \(h_\theta(x)\) 不等於1時,損失隨著\(h_\theta(x)\)變小而增大。當 \(y == 0\)時同理

所以上面的損失能夠較好的評價回歸模型的好壞。

基於上面的定義,定義邏輯回歸的損失函式:

\[\beginj(\boldsymbol)&=\frac \sum_^ cost(h_\theta(x_), y_) \\

&=-\frac\left[\sum_^y_ \log h_\theta(x_)+(1-y_) \log (1-h_\theta(x_))\right]

\end

\]可以看出和我們上面使用最大似然估計得到的結果一樣,餘下的步驟和上面是重複的

前面我們已經學習了如何解決二分類任務, 給定的任務類別多於2(也即多分類任務),那麼應該怎麼解決?下面就來介紹如何使用邏輯回歸解決多分類問題。

首先我們形式化的表示我們的例子

現在我們有乙個訓練集,有3個類別,如上圖所示,我們三角形表示y=1, 方框表示y=2, 叉叉表示y=3。我們的做法是把這個訓練集分成3個二元分類問題

我們先從用三角形代表的類別 1 開始,實際上我們可以建立乙個,新的"偽"訓練集,類 型 2 和型別 3 定為負類,型別 1 設定為正類,我們建立乙個新的訓練集,如下圖所示的那

樣,我們要擬合出乙個合適的分類器

最後,在我們需要做**時,我們將所有的分類機都執行一遍,然後對每乙個輸入變數, 都選擇最高可能性的輸出變數

我們要做的就是在我們三個分類器裡面輸入 x,然後我們選擇乙個讓\(h_^x\)最大的i, 也即最大的\(\max_h_^x\)

機器學習之邏輯回歸

什麼叫邏輯回歸?簡單來講便是目標值只有,而線性回歸的目標值卻是乙個區域 0,1 可以代表得病沒得病,正確錯誤,etc.那麼怎麼才能把給定的輸入值正確的分類到呢,下面就介紹乙個特別的函式 sigmoid函式,g z 1 1 exp z 啥都不說先上圖。上圖便是sigmoid函式圖了,之所以引用這個函式...

機器學習之 邏輯回歸

邏輯回歸又稱logistic回歸,邏輯斯諦回歸,是一種廣義的線性回歸分析模型。sigmoid函式也是神經網路中常用的函式,用於把x從負無窮到正無窮壓縮到y從0到1之間。畫出來就是一條s型曲線,如下圖中的藍色曲線 它以0點為中心對稱,公式如下 當x值接近負無窮時,分母很大,s x 接近0,當x接近正無...

機器學習之邏輯回歸

邏輯回歸 logistic regression 最初是為了解決二分類問題。對於線性模型要想進行如二分類任務,最簡單的辦法就是通過階躍函式 unit step function 即將線性模型的輸出值套上乙個函式進行分割,大於z的判定為0,小於z的判定為1。如下圖左所示 但這有個問題是,分段函式不連續...