這節課咱們來聊聊 邏輯回歸(Logistic Regression),別看名字里有“回歸”,它其實是用來干 分類 的活兒的!我會用最接地氣的方式,從定義講到實戰,保證你笑著學會,還能拿去忽悠朋友!
一:邏輯回歸是啥?——當回歸想不開,轉行搞分類
1.1 定義:邏輯回歸是個“概率算命先生”
問題:你想預測一個人會不會買你的產品(買 or 不買?),或者一封郵件是不是垃圾郵件(垃圾 or 正常?)。
線性回歸的尷尬:
- 線性回歸預測的是連續值(比如房價 500 萬、600 萬)。
- 但分類問題要的是 概率(比如“買”的概率是 80%,“不買”是 20%)。
邏輯回歸的解決方案:
- 它用了一個 Sigmoid 函數(也叫“S 曲線”),把線性回歸的輸出(可以是任意實數)壓縮到 0~1 之間,變成概率。
- 公式:
[
P(y=1) = \frac{1}{1 + e^{-(wX + b)}}
]
其中:- ( wX + b ) 是線性回歸的輸出(比如 5、-3、0.7 啥的)。
- Sigmoid 把它變成 0~1 的概率(比如 0.8 就是 80% 可能買)。
?? 舉個栗子:
你問邏輯回歸:“這封郵件是垃圾郵件嗎?”
它掐指一算:“嗯,Sigmoid 輸出 0.9,90% 可能是垃圾,扔了吧!”
二:實戰!用邏輯回歸過濾垃圾郵件
2.1 數據準備
假設我們有一些郵件數據,包含:
- 特征:
- 是否包含“免費”(1 or 0)
- 是否包含“點擊”(1 or 0)
- 發件人是否陌生(1 or 0)
- 標簽:1(垃圾郵件) or 0(正常郵件)
郵件 | 包含“免費” | 包含“點擊” | 陌生發件人 | 垃圾郵件? |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
2 | 0 | 0 | 0 | 0 |
3 | 1 | 0 | 1 | 1 |
2.2 訓練邏輯回歸模型
from sklearn.linear_model import LogisticRegressionX = [[1, 1, 1