什麼是 邏輯迴歸(Logistic Regression)?
邏輯迴歸是一種廣義線性模型,用於預測二元或多元分類結果的機率。它使用 Sigmoid 函數將線性組合轉換為機率值,並透過最大似然估計來訓練模型。
核心概念
邏輯迴歸的核心在於使用 Sigmoid 函數將線性迴歸的輸出轉換為機率值。Sigmoid 函數的公式如下:
sigmoid(z) = 1 / (1 + e^(-z))
其中,z 是輸入的線性組合,通常表示為:
z = w1x1 + w2x2 + ... + wn*xn + b
這裡,x1, x2, ..., xn 是輸入特徵,w1, w2, ..., wn 是對應的權重,b 是偏差項(bias)。
Sigmoid 函數將 z 映射到 0 到 1 之間的值,這個值可以解釋為事件發生的機率。例如,如果 sigmoid(z) 的值為 0.7,則表示事件發生的機率為 70%。
關鍵概念:
- Sigmoid 函數: 將線性組合轉換為機率值。
- 線性組合: 特徵的加權和加上偏差項。
- 機率值: 預測事件發生的可能性。
運作原理
邏輯迴歸的運作原理可以分為以下幾個步驟:
- 線性組合: 對輸入特徵進行線性組合,計算
z值。 - Sigmoid 轉換: 使用 Sigmoid 函數將
z值轉換為機率值。 - 機率預測: 根據機率值判斷所屬類別。通常設定一個閾值(例如 0.5),如果機率值大於閾值,則預測為正類別,否則預測為負類別。
- 模型訓練: 使用訓練資料調整權重和偏差項,使得模型能夠準確預測。常用的訓練方法包括最大似然估計和梯度下降法。
最大似然估計 (Maximum Likelihood Estimation, MLE):
MLE 的目標是找到一組參數,使得在給定訓練資料下,觀察到這些資料的機率最大。在邏輯迴歸中,MLE 的目標是最大化似然函數,似然函數表示在給定參數下,觀察到所有訓練樣本的機率。由於直接最大化似然函數通常比較困難,因此通常會轉而最大化對數似然函數,這是一個等價的問題,但計算上更方便。
梯度下降法 (Gradient Descent):
梯度下降法是一種迭代最佳化演算法,用於尋找函數的最小值。在邏輯迴歸中,梯度下降法用於尋找使損失函數最小化的權重和偏差項。損失函數衡量了模型預測與實際值之間的差異。梯度下降法通過計算損失函數的梯度,並沿著梯度的反方向更新參數,逐步逼近最小值。
損失函數 (Loss Function):
邏輯迴歸常用的損失函數是交叉熵損失 (Cross-Entropy Loss),也稱為對數損失 (Log Loss)。對於二元分類問題,交叉熵損失的公式如下:
Loss = -[y * log(p) + (1 - y) * log(1 - p)]
其中,y 是實際標籤(0 或 1),p 是模型預測的機率值。
實際應用
邏輯迴歸在許多領域都有廣泛的應用,包括:
- 醫學診斷: 預測患者是否患有某種疾病,例如糖尿病、心臟病等。
- 金融風險評估: 評估貸款申請人的信用風險,預測其是否會違約。
- 垃圾郵件過濾: 判斷郵件是否為垃圾郵件。
- 客戶流失預測: 預測客戶是否會流失。
- 廣告點擊率預測: 預測用戶是否會點擊廣告。
- 自然語言處理: 情感分析、文本分類等。
案例:垃圾郵件過濾
在垃圾郵件過濾中,邏輯迴歸可以根據郵件的內容(例如,包含某些關鍵字、發件人地址等)來預測郵件是否為垃圾郵件。模型會學習不同特徵與垃圾郵件之間的關係,並根據這些關係來判斷新郵件的類型。
常見誤區
- 邏輯迴歸不是迴歸: 雖然名稱包含「迴歸」,但邏輯迴歸實際上是一種分類算法,用於預測類別而非連續值。
- 線性可分性: 邏輯迴歸假設資料是線性可分的,即可以使用一條直線(或超平面)將不同類別的資料分開。如果資料不是線性可分的,邏輯迴歸的性能可能會受到影響。可以使用特徵工程或非線性模型來解決這個問題。
- 多重共線性: 如果輸入特徵之間存在高度相關性(多重共線性),可能會導致模型不穩定,權重的估計值方差較大。可以使用正則化方法(例如 L1 正則化或 L2 正則化)來緩解這個問題。
- 過度擬合: 如果模型過於複雜,可能會過度擬合訓練資料,導致在測試資料上的性能下降。可以使用交叉驗證、正則化等方法來避免過度擬合。
- 樣本不平衡: 如果不同類別的樣本數量差異很大(樣本不平衡),可能會導致模型偏向於數量較多的類別。可以使用重採樣方法(例如過採樣或欠採樣)或調整類別權重來解決這個問題。
相關術語
常見問題
延伸學習
想看 邏輯迴歸 的完整影片教學?前往 美第奇 AI 學院