1. 回归 vs 分类
之前学的线性回归解决的是回归问题:根据特征预测一个连续的数值(温度、房价、销量等)。
实际中还有另一大类问题——分类问题:根据特征判断样本属于哪一类。例如:
- 根据用户特征,判断会不会违约(会 / 不会)
- 根据花瓣的长宽,判断花的种类(山鸢尾 / 变色鸢尾 / 维吉尼亚鸢尾)
- 根据用户特征,判断会不会点击广告(点击 / 不点击)
注意:逻辑回归虽然名字里有”回归”,但它是一个分类算法。这是机器学习历史上用词不规范的地方。
2. 为什么线性回归不适合分类
以”气温与是否出门”数据为例(0 = 不出门,1 = 出门):
| 气温 | 是否出门 |
|---|---|
| -10 | 0 |
| 3 | 1 |
| -3 | 0 |
| 5 | 1 |
| -4 | 0 |
| 7 | 1 |
| -6 | 0 |
| 8 | 1 |
问题:Label 只有 0 和 1 两个值。如果用线性回归:
- 预测值会随着 x 无限延伸,突破 [0, 1] 范围
- 对于 x = 100(极端高温),线性回归可能预测出远大于 1 的值,无法解释
因此需要一个输出值天然落在 [0, 1] 之间的函数来做假设函数。
3. Sigmoid 函数登场
Sigmoid 函数的形式:
三大特性:
| 特性 | 含义 |
|---|---|
| 输出范围 (0, 1) | 天然适合表示概率 |
| x=0 附近变化剧烈,两端平坦 | 在决策边界附近敏感,远处饱和 |
| 单调递增 | x 越大,输出越大 |
把 Sigmoid 值理解为在气温 x 下,小明出门的概率:
- 气温 -10 → 概率接近 0(几乎不出门)
- 气温 0 → 概率 0.5(半对半)
- 气温 10 → 概率接近 1(几乎肯定出门)
4. 给 Sigmoid 增加缩放参数 w
标准 Sigmoid 曲线是固定的,但不同问题的数据分布不同,需要曲线能够缩放和翻转。
给 x 前面加一个权重 w:
| w 的取值 | 效果 |
|---|---|
| w > 1 | 曲线沿 x 轴压缩,更陡峭 |
| 0 < w < 1 | 曲线沿 x 轴拉伸,更平缓 |
| w < 0 | 曲线左右翻转(x 增大时输出减小) |
示例:“复习时长 vs 是否挂科”——复习越久越不容易挂科,数据是左高右低的。Sigmoid 默认左低右高,设 w < 0 即可翻转方向。
5. 给 Sigmoid 增加平移参数 b
加上 w 后可以缩放和翻转,但曲线位置还固定在原点上。需要 b 来做平移:
完整形式:
- 当 时,b > 0 使曲线向左平移;一般平移量为
- 当 时,b < 0 使曲线向右平移; 时方向相反, 时输出为常数
例如”复习时长 vs 挂科”:设 w = -2(翻转),b = 22(平移到数据区域),曲线就能完美贴合数据点。
6. 一元逻辑回归的假设函数
最终模型:
其中 w 和 b 是可训练参数,模型通过数据学习出最合适的值。
核心理解:逻辑回归就是两件事串起来——
这就是深度学习里**“全连接层(Linear) + 激活函数”**的最简原型。后面学到的每个神经网络层,本质上都是这个结构的堆叠。
7. 预测与决策
训练好的模型输出是概率值 [0, 1]:
- 越接近 1,越可能是正例(例如出门;“是否挂科”任务若挂科=1,则为挂科)
- 越接近 0,越可能是负例(例如不出门;“是否挂科”任务若挂科=1,则为不挂科)
默认决策规则:以 0.5 为临界值
阈值可以根据业务需求调整:
| 阈值调整 | 效果 | 适用场景 |
|---|---|---|
| 提高(如 0.6) | 更保守,更少误报,但可能漏掉正例 | 垃圾邮件检测(宁可漏杀不可错杀?取决于策略) |
| 降低(如 0.4) | 更激进,更少漏报,但可能多误报 | 疾病筛查(宁可多查几个,不能放过) |
8. 深度理解:线性回归 + 激活函数
一句话总结:一元逻辑回归 = 线性回归 + Sigmoid 激活函数
Sigmoid 是学习的第一个激活函数。激活函数的作用是:在线性变换的基础上引入非线性,让模型能表达更复杂的映射关系。
Sigmoid 的非线性行为很直观:
- 输入 < 0 → 抑制,输出接近 0
- 输入 > 0 → 激活,输出快速接近 1
这类似生物神经元的行为:刺激足够强时才”放电”,否则保持静默。这也是”激活函数”名称的由来。
后续还会学到其他激活函数(ReLU、Tanh 等),但它们的核心角色不变:接在线性变换后面,引入非线性。
9. 总结图
一元逻辑回归 = 输入x → [wx + b] → [Sigmoid] → 概率输出(0~1) → 与0.5比较 → 分类结果(0/1)
└─线性回归─┘ └─激活函数─┘ └─概率解释─┘ └─决策规则─┘