MSBS7102 Lecture 3 · 逻辑回归与分类评估

本讲介绍逻辑回归:sigmoid/logit 函数、最大似然与梯度下降优化、PIMA 糖尿病实例与特征选择,以及分类性能评估(训练/测试划分、交叉验证、混淆矩阵指标、ROC 曲线与 AUC)。

一、本讲信息

  • 课程:SBMS7202/MSBS7102 Foundations in Biomedical Data Science(生物医学数据科学基础)
  • 讲次:Lecture 3 — Logistic regression(逻辑回归)
  • 日期:2026 年 9 月 18 日,地点 LT2
  • 主讲:Prof. Yuanhua Huang(黄渊華,Rm 1-05E, 1/F, JCBIR, 5 Sassoon Road;email: yuanhua@hku.hk);开场课程安排部分由 Dr. Ray Hsu 说明(课堂录音)
  • 课件版本说明:本讲 Materials 下有两份 PDF,SBMS7202 Lecture 3 (Dr Huang)-Sep18_v2p30_33_34.pdf 为最新版本(34 页,更新第 30 页链接、新增第 33~34 页课程安排),本笔记以该版为准;另一份 32 页 PDF 为旧版本。

二、学习目标

依据课件第 2 页的目标清单:
  1. 理解逻辑回归(logistic regression)模型:sigmoid / logit 函数的含义与相互关系;
  1. 掌握基于梯度的优化(gradient-based optimization)方法,理解为什么逻辑回归没有解析解;
  1. 理解特征选择(feature selection)在逻辑回归中的作用;
  1. 掌握分类性能评估:泛化(generalization)、测试集(test set)、交叉验证(cross-validation);
  1. 能够使用混淆矩阵(confusion matrix)、各项评分指标(scoring metrics)与 ROC 曲线评价分类模型。

三、核心内容

3.1 分类问题与逻辑回归的定位

分类(classification)是机器学习与数据挖掘的核心任务:基于一组类别标签已知的训练数据,判断一个新观测属于哪个类别。课件引用估计:约 60~80% 的数据分析问题本质上是分类问题。常见的分类方法包括 k 近邻(k-nearest neighbour)、支持向量机(SVM)、深度神经网络(deep neural networks)、随机森林(random forests)等;逻辑回归是其中常用、高效且高度可解释的一种(课堂录音:可解释性指能直接查看每个特征对预测的贡献;深度神经网络的流行得益于算力与大规模数据的出现,而逻辑回归可看作只有一层的最简单神经网络,sigmoid 函数即其激活函数 activation function)。
二分类(binary classification)的典型例子(课件第 4 页):
  • 垃圾邮件过滤:特征为群发特征、广告内容、发件人等,判断是否为垃圾邮件;
  • 研究生录取预测:特征为本科背景、GPA、科研经历、英语水平等,判断是否录取;
  • 皮肤病变检测:特征为 256×256 图像的像素值(图像即数值矩阵),判断是否来自皮肤癌;课堂录音提到此类医学影像分类模型在临床上已较成熟。

3.2 线性分类器与决策边界

对两个特征(二维)的问题,线性分类器(linear classifier)先学习一个打分函数(课件第 5~6 页):
$
  • 是从数据中学习的参数(parameters): 为截距, 为权重(weights);
  • 分数表示样本与正类(y=1)的一致程度:分数 > 0 判为 y=1,否则判为 y=0;
  • 决策边界(decision boundary)为 ,二维空间中是一条直线。
对 p 维特征(p>2),决策边界是 p−1 维超平面(hyperplane)。向量形式(课件第 7 页):令 ,,则
$
决策边界为 ; 判为正类。

3.3 从分数到概率:sigmoid 与 logit 函数

线性打分函数的取值范围是 ,不能直接当作概率(概率必须在 0 到 1 之间)。因此需要在外面套一个函数 ,把整个实数轴"压缩"(squash)到 [0, 1] 区间(课件第 8 页):
$
这个 就是逻辑函数(logistic function),也称 sigmoid 函数(课件第 9 页):
$
  • 时分母极大,; 时 ;
  • 时 ;课件给出的数值例子:,,;
  • 分类规则: 时判为 y=1。
logit 函数是 logistic 函数的反函数(课件第 10 页)。先定义优势(odds / odds ratio):正类与负类的概率之比 ;则
$
  • 增加 意味着优势扩大 倍;
  • logit 把 [0, 1] 的概率映射回整个实数轴。
课堂录音补充:logit 变换对取值在 0~1 之间的变量(如组织中癌细胞比例)建模时很有用——与其直接对比例建模,不如对比例的 logit 建模,使取值范围变为整个实数轴。

3.4 逻辑回归模型与决策边界

线性权重加 logistic 压缩函数即为逻辑回归(课件第 11 页):
$
由于 当且仅当 ,决策边界仍是 ,即 p 维问题中的 p−1 维超平面——这与 3.2 的线性分类器一致,只是额外输出了概率。
课堂录音补充(权重尺度与过度自信):所有权重同乘常数(如 10 倍)时决策边界不变,但概率更极端——原 对应 0.88,放大后接近 1,即模型可能"自信地错"。因此训练时常惩罚大权重,避免过度自信。

3.5 模型拟合:为什么用最大似然而不是最小二乘

如何确定参数 (课件第 12 页)?若沿用线性回归的误差平方和(sum of squared errors, SSE):
$
存在问题:这里的 是 0/1 类别标签而非连续数值;且平方损失对离群点(outlier)敏感——平方会放大远离模型的点的权重,使拟合结果被少量异常样本明显拉动(课件第 12 页图:绿色为最大似然法拟合的逻辑回归,紫色为最小二乘拟合,后者对离群点敏感)。
替代方案是最大似然(maximum likelihood)。似然函数(likelihood function)指在给定模型参数下观测到全部数据的联合概率(课件第 13 页)。假设各样本独立,标签概率可直接相乘(课堂录音还原推导):
$
幂次 与 的作用: 时后一项幂次为 0(等于 1),只剩前一项; 时相反。取对数得到对数似然(log-likelihood),乘积化为求和、幂次化为乘积,便于计算与优化。
课件第 14 页指出关键结论:
  • 在训练样本足够的条件下,对数似然函数是凸函数(convex),有唯一的全局最优——不存在多个局部最优(课堂录音:这一点与很多深度神经网络不同,后者的损失面常有局部最优);
  • 令所有偏导数为 0()得到 p 个方程,但这组方程没有解析解(closed-form solution)——老师让学生课后自行验证,"即使用 AI 也解不出";
  • 因此必须用数值方法(numerical procedures)迭代逼近最优解。

3.6 梯度下降

课件第 15 页把上述过程总结为学习算法的通用流程:定义任务(分类)→ 确定模型结构(逻辑回归)→ 确定评分函数(对数似然)→ 确定优化/搜索方法(数值优化)。
梯度下降(gradient descent)在每一点沿负梯度方向移动。课堂录音详细讨论了学习率(learning rate / step size)的影响:
  • 学习率过大:每次移动越过最优点,来回震荡,收敛不稳定,甚至无法接近最优;
  • 学习率过小:收敛慢,需要很多步,但最终能保证到达最优;
  • 随机梯度下降(stochastic gradient descent, SGD)是常用变体:每次只用一部分样本计算梯度,降低计算量。

3.7 实例:PIMA 印第安人糖尿病数据集

课件第 16~18 页用 PIMA Indians Diabetes Database 演示:
  • 背景:糖尿病是慢性病,身体因胰岛素分泌不足或无法利用胰岛素而不能把食物(糖)转化为能量;香港约 70 万人(约 10%)患病,且与年龄强相关(课堂录音);
  • 数据:768 名 21 岁以上、有 Pima Indian 血统的女性;8 个医学预测变量(自变量)——怀孕次数(pregnant)、血糖(glucose)、血压(pressure)、三头肌皮褶厚度(triceps)、胰岛素(insulin)、体重指数(mass/BMI)、家系(pedigree)、年龄(age),1 个二分类目标变量;
  • 模型:,在训练数据上最大化似然函数拟合参数;训练得到的最大化对数似然为 −281.90。
课堂录音补充(R 实现):用 glm() 函数、family = binomial 拟合(伯努利分布是二项分布试验数为 1 的特例);summary() 输出各特征的系数估计、标准误、z 值与 p 值。逻辑回归用 z 值(正态近似)而非线性回归的 t 值——样本量超过 30 时 t 分布与正态分布非常接近;拟合结果中 glucose、mass 等显著,而 triceps、insulin 等不显著;输出中的 null deviance 与 residual deviance 可比较"不用任何特征"与"使用全部特征"的拟合差异。

3.8 模型诊断与特征选择

课件第 19 页对比线性回归与逻辑回归(该页为表格图,要点据课堂录音整理):
方面
线性回归
逻辑回归
目标函数
最小化 SSE
最大化(对数)似然
解的形式
有解析解
无解析解,需数值优化
特征显著性
p 值(t 分布近似)
p 值(正态近似,z 值)
拟合优度
调整 R²、F 统计量(惩罚特征数)
对数似然 / 偏差(deviance)
更直接的评估
测试集上的 R² / MSE / SSE
测试集上的预测准确率等指标
特征选择(feature selection)(课件第 20~22 页):全模型(8 个变量)中若干变量的 p 值 > 5%,表示在模型中已有其他变量的条件下它们不显著;移除这类冗余变量可能提升模型在新数据上的预测表现。课件的三步比较(准确率在 25% 留出测试集上计算):
模型
训练集 Log-L
测试集准确率
评注
全模型(8 特征)
−281.90
0.797
—
移除 triceps
−282.00
0.807
更好
再移除 insulin
−283.13
0.786
略差
注意训练集对数似然总是随特征增加而升高(对更多特征存在系统性偏好),但测试集准确率在移除 triceps 后反而提高——课堂录音强调:仅 8 个特征就已出现过拟合(overfitting)迹象;移除 insulin 后准确率略降,此时可选择第 2 个模型为最优,也可因第 3 个模型用的非显著特征更少而偏好它;一般原则是:若移除特征后性能下降不大,偏好更简单的模型。
课堂录音补充(特征选择策略):常见策略包括逐步向前(每次加入最显著的特征)与逐步向后(每次移除最不显著的特征)。在全基因组关联研究(GWAS)中,对数十万个变异通常逐个检验筛选,再对目标基因附近数百个变异用回归模型联合分析以定位主导变异,即精细定位(fine-mapping)。

3.9 泛化:训练数据、测试集与交叉验证

课件第 24~26 页讨论泛化(generalization):模型真正面对的是训练时从未见过的未来数据(future data),我们更关心模型在未来数据上的误差,而非训练数据上的误差。模型过于简单会欠拟合(under-fit),过于复杂会过拟合(over-fit)——训练误差随模型复杂度增加持续下降,但未来数据误差先降后升,需要二者平衡。
评估策略:
  • 训练/测试划分(train-test split):收集新数据成本高,通常把已有数据按 75%/25% 或 80%/20% 划分;划分前先打乱(shuffle)以避免采集顺序带来的偏差;测试集在训练中绝对不能使用;
  • 交叉验证(cross-validation, CV):数据量不大时,固定测试集(如 20%)样本太少、结果不稳定。k 折交叉验证把数据分成 k 份,轮流以 1 份做测试、其余 k−1 份做训练,重复 k 次后合并结果。常用 3、5、10 折;留一法(leave-one-out)即 n 折。折数越多每轮训练集越大,但要训练的模型越多、计算量越大(课堂录音:n 个样本就要训练 n 个模型);
  • 课堂录音补充:"留一组法"(leave-one-group-out)按班级、医院或队列分组,留出整组做测试,评估跨组/跨队列的泛化能力,例如香港队列训练、深圳队列测试。

3.10 混淆矩阵与评分指标

课件第 27~29 页在糖尿病数据上演示(75%–25% 划分:576 训练 / 192 测试,阈值 P>0.5 判为阳性)。预测与真实标签的组合产生两种错误(假阴性 FN:实际阳性判为阴性;假阳性 FP:实际阴性判为阳性)与两种正确(真阴性 TN、真阳性 TP),汇总为混淆矩阵(confusion matrix)。课堂录音将其与假设检验联系:FP 对应第 I 类错误、FN 对应第 II 类错误。主要指标(课件第 28 页,矩阵数值 TP=36、FN=26、FP=12、TN=118):
  • 真阳性率(true positive rate, TPR),又称灵敏度(sensitivity)、召回率(recall)、功效(power):,分母是全部实际阳性;
  • 真阴性率(true negative rate, TNR),即特异度(specificity),等于 1 − 假阳性率(FPR):;
  • 精确率(precision),即阳性预测值(positive predictive value),等于 1 − 假发现率(FDR):,分母是全部预测为阳性的样本;
  • 准确率(accuracy):。
指标选择(课件第 29 页):
  • 单个指标不够:全部判为阳性可得"完美灵敏度",全部判为阴性可得"完美特异度";
  • 准确率兼顾灵敏度与特异度,但样本不平衡(imbalanced)时有偏:全部预测为非糖尿病时准确率为 130/(130+62) = 67.7%,明显高于随机但毫无判别价值;
  • 需要控制假发现(false discovery)时用精确率(课堂录音:如后续验证成本高时,希望预测阳性中真阳性占多数);
  • 课堂录音(COVID 检测例子):PCR 与抗原检测在灵敏度、特异度上不同,技术改进可同时提升两者;同一技术下调整判定标准则需在两者间权衡。

3.11 ROC 曲线与 AUC

如何选择合理的判定阈值(threshold)以平衡灵敏度与特异度(课件第 30 页)?默认阈值为 0.5,但对每个可能的阈值都计算一对(1−特异度, 灵敏度),并以其为坐标画出的曲线就是受试者工作特征曲线(receiver operating characteristic curve, ROC 曲线):
  • 完美分类器的 ROC 曲线贴近左上角;
  • 随机猜测的 ROC 曲线沿对角线;
  • 曲线下面积(area under the curve, AUC)是 ROC 曲线的概括指标,AUC 越大性能越好。
课堂录音补充:提高阈值(如从 0.5 到 0.73)会减少假阳性(例中 FPR 约 0.1→0.05),代价是真阳性率下降(约 0.6→0.3);最优点取决于场景能容忍更多假阳性还是假阴性。若模型明显差于随机(ROC 在对角线下方),可能提示标签或流程有误,应先检查;关心精确率时还可使用精确率-召回率曲线(precision-recall curve)。

3.12 作业与后续安排

  • 课件第 33 页:9 月 25 日(周五,中秋节前后)停课,无面授与线上课,改为录播视频与论文自主学习;鼓励尝试 Virtual Cell Challenge(课堂录音:无论名次都值得写入 CV);

四、关键图解

二维线性分类器:红蓝两类样本,直线为决策边界 F=0
二维线性分类器:红蓝两类样本,直线为决策边界 F=0
课件第 6 页:二维空间中的线性分类器,F=0 为决策边界,一侧判正类、另一侧判负类。
sigmoid(logistic)函数曲线
sigmoid(logistic)函数曲线
课件第 9 页:sigmoid 函数把实数轴压缩到 (0,1);z=0 时取 0.5,z=±1、z=2 分别约 0.27/0.73/0.88。
最小二乘(紫)与最大似然(绿)拟合对比
最小二乘(紫)与最大似然(绿)拟合对比
课件第 12 页(图源 Bishop PRML):最小二乘(紫)对离群点敏感、边界被拉偏;最大似然(绿)更稳健。
梯度下降示意与学习率好坏对比
梯度下降示意与学习率好坏对比
课件第 15 页(图源 Murphy PML):沿负梯度方向逼近最优;学习率合适(Good)稳定收敛,过大(Bad)来回越过谷底不收敛。
欠拟合与过拟合示意
欠拟合与过拟合示意
课件第 24 页:过简单则欠拟合,过复杂则过拟合(紧贴训练点但难以泛化),需权衡。
k 折交叉验证示意
k 折交叉验证示意
课件第 26 页:数据分 k 折,轮流以 1 折测试、其余训练,重复 k 次合并评估。
糖尿病测试集的混淆矩阵与指标
糖尿病测试集的混淆矩阵与指标
课件第 28 页:192 个测试样本的混淆矩阵(TP=36、FN=26、FP=12、TN=118)及各指标计算式。
ROC 曲线与 AUC
ROC 曲线与 AUC
课件第 30 页:ROC 曲线(x 轴 1−特异度,y 轴灵敏度);完美模型贴左上角,随机沿对角线,AUC 越大越好。

五、课前思考 / 自测

  1. 为什么不能直接用 建模概率?sigmoid 函数如何解决这一问题?(提示:取值范围)
  1. 逻辑回归的对数似然函数是凸函数、有唯一最优,但为什么仍没有解析解?梯度下降中学习率过大或过小分别会发生什么?
  1. 在糖尿病实例中,全模型的训练对数似然(−281.90)高于移除 triceps 后的模型(−282.00),但测试集准确率却更低(0.797 vs 0.807)。这说明了什么问题?
  1. 若一个模型把所有样本都判为阳性,它的灵敏度、特异度、精确率、准确率分别如何?由此说明为什么不能只看单一指标。
  1. (作业题)为移除 triceps 的模型绘制 ROC 曲线并计算 AUC:与全特征模型相比是更高还是更低?

六、参考材料

  • 主课件(最新版):Materials/SBMS7202 Lecture 3 (Dr Huang)-Sep18_v2p30_33_34.pdf(34 页)
  • 主课件(旧版本,内容基本一致):Materials/SBMS7202 Lecture 3 (Dr Huang)-Sep18.pdf(32 页)
  • PIMA Indians Diabetes Database(课件致谢的数据集)
  • 课堂录音转写:Recordings/MSBS7102-0918-1.txt、Recordings/MSBS7102-0918-2.txt

七、课堂要点补充(据课堂录音整理)

以下为老师讲课中强调、正文未及展开的内容(转写文本有识别噪声,仅采用可确认的信息):
  1. 本讲多次呼应后续学习:逻辑回归是理解多层神经网络的基础,Virtual Cell Challenge 将用到这些方法。
  1. 评估模型的能力与建模能力同等重要:无论模型是自己写的还是 AI 生成的,都需要用本讲的测试集、交叉验证与指标体系独立判断好坏。
  1. 课程安排:下周五(9 月 25 日)停课过中秋,以录播与论文自学,Virtual Cell Challenge 录播在本节课后录制;10 月 2 日起进入 R 编程环节(请提前安装 R 与 RStudio);Quiz 3 已开放,下周五前提交。
上一篇
MSPH7901 Session 3 · 概率:随机事件、随机变量与概率分布
下一篇
MSBS7101 Lecture 3 · UNIX 与 bedtools 入门
Loading...