逻辑回归:疾病风险概率建模
尽管名称中含有'回归',逻辑回归(Logistic Regression)实际上是一种广泛应用于分类任务的线性模型。在医疗领域,它因简单、高效、可解释性强,且能输出概率值,成为疾病风险预测、诊断辅助及预后评估的基石算法。
算法原理
逻辑回归的核心思想是:通过线性回归的输出来估计样本属于某个类别的概率。它使用 Sigmoid 函数将线性组合的实数输出映射到 0 到 1 之间的概率值。
从线性回归到逻辑回归
线性回归试图用特征的线性组合来预测连续值:
[ z = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + … + \theta_p x_p = \theta^T x ]
其中 $\theta$ 是模型参数,$x$ 是特征向量。对于二分类问题,我们需要一个链接函数将线性输出映射到 (0,1) 区间。逻辑回归采用 Sigmoid 函数:
[ \sigma(z) = \frac{1}{1 + e^{-z}} ]
因此,逻辑回归模型表示为:
[ P(y=1|x) = \sigma(\theta^T x) = \frac{1}{1 + e^{-\theta^T x}} ]
决策边界
逻辑回归的决策边界由 $\theta^T x = 0$ 决定,是一个线性超平面。当 $\theta^T x > 0$ 时,预测为正类;反之则为负类。通过调整分类阈值,可以控制模型的灵敏度与特异度。
模型估计与优化
参数通常通过极大似然估计(MLE)求解。目标是最小化交叉熵损失函数:
[ J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} [ y^{(i)} \log(\hat{y}^{(i)}) + (1-y^{(i)}) \log(1-\hat{y}^{(i)}) ] ]
由于没有闭式解,我们使用梯度下降等迭代优化算法。为防止过拟合,常加入正则化项,如 L2 正则化或 L1 正则化(Lasso),后者有助于特征选择。
医疗应用场景
逻辑回归在医疗领域的应用极其广泛,以下是典型场景:
- 疾病风险预测:构建风险评分模型,如 Framingham 冠心病风险评分,评估个体患某种疾病的风险。
- 诊断辅助:根据症状和检验结果输出患病概率,辅助医生决策,如肺炎诊断或败血症早期识别。
- 预后预测:预测患者发生死亡、复发等结局的概率,例如术后并发症预测。
- 药物疗效预测:预测患者对特定药物的反应概率或不良反应风险。
- 资源利用预测:预测再入院风险或 ICU 入住需求,辅助床位管理。
案例实战:乳腺癌恶性程度预测
本节演示如何使用逻辑回归构建乳腺癌诊断模型。我们将使用威斯康星乳腺癌数据集,包含肿瘤的细胞核特征和良性/恶性标签。
数据加载与探索
import pandas as pd
import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
sklearn.metrics classification_report, roc_auc_score
data = load_breast_cancer()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = pd.Series(data.target)
()
()


