这节课咱们来聊聊 逻辑回归(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