逻辑回归模拟器 返回
机器学习模拟器

逻辑回归(2D 二分类)模拟器

通过梯度下降最小化 Sigmoid 模型的交叉熵损失。调节学习率、迭代次数与 L2 正则化,直观感受线性决策边界与训练精度的变化。

参数设置
学习率 η
迭代次数
L2 正则化 λ
数据种子

数据由指定种子的 LCG 确定性生成(每类 30 点,共 60 点,σ=1.2)。梯度下降按整批次更新权重。

计算结果
训练精度
最终交叉熵损失
权重 w₁
偏置 b
散点图、决策边界与概率等高线

红 = 类 0/蓝 = 类 1/绿线 = 决策边界(p=0.5)/浅色填充 = 概率等高线(p=0.3, 0.5, 0.7)/左下角 =(w₁, w₂, b)

理论与主要公式

逻辑回归是一种线性分类器:先用 Sigmoid 函数把线性分数 $z = \mathbf{w}\cdot\mathbf{x} + b$ 映射为概率,再用梯度下降最小化交叉熵损失。

Sigmoid 函数给出的预测概率:

$$p(y=1 \mid \mathbf{x}) = \sigma(z) = \frac{1}{1 + e^{-z}}$$

交叉熵损失(n 为样本数,$y_i \in \{0,1\}$):

$$L = -\frac{1}{n}\sum_{i=1}^{n}\bigl[y_i \log p_i + (1 - y_i)\log(1 - p_i)\bigr]$$

梯度与权重更新(含 L2 正则化 $\lambda$):

$$\frac{\partial L}{\partial \mathbf{w}} = \frac{1}{n}\mathbf{X}^{\top}(\mathbf{p}-\mathbf{y}) + \lambda\mathbf{w}, \quad \mathbf{w} \leftarrow \mathbf{w} - \eta\frac{\partial L}{\partial \mathbf{w}}$$

决策边界(p=0.5 等值线)即直线 $\mathbf{w}\cdot\mathbf{x}+b=0$,亦即 $w_1 x_1 + w_2 x_2 + b = 0$。

逻辑回归模拟器简介

🙋
大家都说「逻辑回归」,可它明明是用来分类的。到底算回归还是分类啊?我有点迷糊。
🎓
这是大家都会卡的一个点。简单说,逻辑回归回归的是「属于类 1 的概率」这个连续值,然后用 0.5 阈值把概率切成两个类别——这就是「分类」的一面。看上面的画布,绿色的线就是决策边界,正好是 p=0.5 的位置。红蓝两色的点就是两个类。
🙋
绿线周围还有淡淡的红蓝渐变,那是什么?
🎓
那是「概率等高线」。Sigmoid 函数 $\sigma(z) = 1/(1+e^{-z})$ 把线性分数 $z$ 映射到 0 到 1 的概率。点线分别标出 p=0.3(红侧)和 p=0.7(蓝侧)。越靠近绿色边界,颜色越淡,说明分类器对这块区域的「信心」越低。
🙋
我把「学习率」拉到 0.001,发现线几乎不动了。
🎓
学习率决定梯度下降「一步」的大小。太小,500 次迭代也走不到最优解,权重几乎还是 0;太大(比如 1.0),步子迈得太大会越过最优解甚至振荡。实务里通常从 0.01 到 0.1 之间起步,再看损失下降曲线调整。可以盯着「最终交叉熵损失」卡片,扫一遍 η 找最佳值。
🙋
把「L2 正则化 λ」开到 1.0 时,权重 w₁ 大幅缩小,边界倾斜也变缓了。
🎓
观察得好。L2 正则化是在损失上加 $\lambda\|\mathbf{w}\|^2$ 来惩罚过大的权重。数据线性可分时 Sigmoid 会拼命放大权重以追求「更自信」的预测,这就是过拟合的来源。L2 能抑制这个倾向。实务里只要测试集精度上升,哪怕训练精度略降,也会把 λ 调大。

常见问题

把 Sigmoid 替换为 Softmax 函数 $\sigma(z_k) = e^{z_k}/\sum_j e^{z_j}$,每个类别拥有自己的权重向量 $\mathbf{w}_k$。这种方法称为「Softmax 回归」或「多项逻辑回归」。损失函数变为分类交叉熵,梯度形式与二分类基本相同。scikit-learn 中只需 LogisticRegression(multi_class='multinomial') 一行代码即可。
L2 ($\lambda\sum w_i^2$) 平滑地缩小所有权重,得到方差较低的稳定模型。L1 ($\lambda\sum|w_i|$) 可把不重要的权重直接压到 0,相当于自动特征选择。实务以 L2 为默认;在高维特征下希望剔除无用维度时用 L1 或 Elastic Net(L1+L2)。本模拟器仅实现 L2。
原始逻辑回归只能画直线,所以圆形分布、XOR 数据等无能为力。常用的两种方法:(1) 加入多项式特征如 $x_1^2, x_2^2, x_1 x_2$,把问题映射到更高维空间使其线性可分;(2) 换更强大的模型(神经网络、RBF 核 SVM、梯度提升)。本模拟器的数据近似线性可分,所以默认设置可达到 95% 以上的训练精度。
本模拟器使用批梯度下降,每次迭代用全部样本计算梯度,稳定但数据量大时偏慢。SGD 每次只用单个样本(或小批量 mini-batch)更新权重,速度更快,且引入的噪声还有助于跳出浅层局部极小。深度学习库里 mini-batch SGD 已是默认。

实际应用

医疗诊断辅助:从血压、血糖、年龄等检测指标出发,预测患病概率或治疗反应概率。线性模型让每个系数 $w_i$ 都对应一个可解释的「优势比(odds ratio)」,便于向医生与监管解释。医学统计教材在介绍优势比时通常以逻辑回归系数为切入点。

信贷评分与营销:预测贷款违约概率、客户购买概率是逻辑回归的经典用途。即便树模型或深度模型精度更高,金融、保险等强监管行业仍偏好逻辑回归,因为决策必须可解释。信贷评分卡(Scorecard)就是直接由逻辑回归系数构建出来的。

点击率预测(CTR):在线广告系统中特征维度可达数十亿,带 L1 正则化的逻辑回归长期作为可扩展的基线方案。早期 Google、Facebook 的广告系统就以分布式 L1 逻辑回归为核心,看重它的可预期推理成本与解释性。

机器学习的基线:面对新任务时,「先跑一遍逻辑回归看看精度」是数据科学家的惯例。简单模型有时就能跑出意外好的结果,所以正式上复杂模型前必须先建立逻辑回归基线。本模拟器正是用来直观展示这条「基线」的工作原理。

常见误解与注意点

最常见的误解是把逻辑回归当作「线性回归的子类」而轻视它。事实上,Sigmoid 非线性变换加上交叉熵损失,在数学上等价于神经网络的一层结构。在深度学习兴起之前,逻辑回归一直是「最可信赖的线性分类器」,至今在表格数据上只要特征工程到位,性能也能与复杂模型一较高下。模拟器在合适的 η 与 λ 下训练精度可超过 95%——「简单」并不等于「弱」。

第二个常见陷阱是盲目追求训练精度。模拟器显示的是训练数据上的精度,它只能告诉你模型「记住了多少」,真正重要的是在未见过的数据上的泛化能力。把 L2 正则化 λ 拉大时,训练精度可能略降,但在真实基准上往往换来过拟合的减少。实务必须把数据拆成训练/验证/测试三部分,分别看精度。

最后要警惕「梯度下降必然收敛到最优」的盲目自信。逻辑回归的损失函数是凸的,理论上必有全局最优解。但学习率 η 过大时迭代会振荡甚至发散,过小则 5000 次迭代后权重仍接近 0。在模拟器中把 η 设为 0.001 或 1.0,观察 w₁ 和损失的卡片就能体会。真实系统通常使用学习率调度(逐步减小 η)或 Adam、RMSProp 等自适应优化器。