簡介
迴歸預測連續數,而分類預測標籤。邏輯迴歸是最好的入門分類模型,因為它簡單、快速、易於解釋,並且在實踐中仍然非常有用。
課程目標
- 了解邏輯迴歸與線性迴歸有何不同。
- 讀取模型的輸出機率。
- 知道如何使用閾值將機率轉換為預測標籤。
從直線到機率
線性迴歸可以產生從負無窮到正無窮的任何值。二元分類需要0到1之間的機率。 Logistic迴歸透過sigmoid函數解決了這個問題:
$$ \sigma(z) = \frac{1}{1 + e^{-z}} $$
其中 $z = w_1x_1 + ... + w_nx_n + b$。
閾值並不是固定的事實
許多新用戶預設閾值 = 0.5。只有當假陽性和假陰性的成本相等時,這才是正確的。
例如,疾病預測通常優先考慮回憶;客戶流失可能會接受多餘的電話,而不是錯過即將離開的客戶。
程式碼範例
從 sklearn.linear_model 導入 LogisticRegression
從 sklearn.metrics 導入分類報告
模型=邏輯迴歸(max_iter=1000)
model.fit(X_train, y_train)
機率 = model.predict_proba(X_test)[:, 1]
preds = (proba >= 0.5).astype(int)
列印(分類報告(y_test,preds))
優點和缺點
優點:快速、易於基線、易於解釋。
缺點:當類別邊界過於非線性時效果不佳,對特徵工程和尺度敏感。
常見錯誤
- 僅當資料超出類別時才查看準確度。
- 不要測試不同的閾值。
- 導致編碼或縮放步驟中的洩漏。
練習練習
- 針對流失或垃圾郵件問題訓練邏輯迴歸。
- 比較閾值 0.3、0.5 和 0.7 處的結果。
- 寫評論:哪個閾值更適合問題以及原因。
完成標準
- [ ]解釋一下sigmoid的作用。
- 了解輸出與預測標籤不同的機率。
- 了解如何根據業務目標變更閾值。
逐步練習(進階)
- 使用具有輕微類別偏差的資料集分類。
- 使用預設的class_weight和balanced訓練Logistic回歸。
- 比較閾值 0.3、0.5、0.7 處的精確度、召回率和 F1。
- 權衡精確率與召回率。
- 根據具體產品場景選擇閾值。
應提交工件
- 根據閾值的度量表。
- 清晰註釋的 FP/FN 的混淆矩陣。
- 1 頁解釋發送給 PM 進行模擬。
自測題
- 為什麼閾值 0.5 並不總是正確的?
- 在什麼情況下應優先考慮召回率而不是精確率?
- ROC-AUC 高,但業務成果仍不佳,原因可能是什麼?