【机器学习基础】机器学习入门核心算法:逻辑回归(Logistic Regression)

在这里插入图片描述

一、算法逻辑

1.1 基本概念

逻辑回归(Logistic Regression)是一种广义线性模型,主要用于解决二分类问题(也可扩展至多分类)。其核心思想是通过将线性回归的预测值映射到[0,1]区间,得到样本属于某个类别的概率。

与线性回归的本质区别

  • 线性回归:
    y = w T x + b y = w^Tx + b y=wTx+b
    (直接预测连续值)
  • 逻辑回归:
    p = σ ( w T x + b ) p = \sigma(w^Tx + b) p=σ(wTx+b)
    (预测概率值)

1.2 Sigmoid函数

使用Sigmoid函数实现概率映射
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

特性分析

  1. 值域 ( 0 , 1 ) (0,1) (0,1),符合概率定义
  2. 导数易计算
    σ ′ ( z ) = σ ( z ) ( 1 − σ ( z ) ) \sigma'(z) = \sigma(z)(1-\sigma(z)) σ(z)=σ(z)(1σ(z))
  3. 输出对称性
    1 − σ ( z ) = σ ( − z ) 1 - \sigma(z) = \sigma(-z) 1σ(z)=σ(z)

1.3 决策边界

假设取阈值为0.5时的决策规则
y ^ = { 1 if  σ ( w T x ) ≥ 0.5 0 otherwise \hat{y} = \begin{cases} 1 & \text{if } \sigma(w^Tx) \geq 0.5 \\ 0 & \text{otherwise} \end{cases} y^={10if σ(wTx)0.5otherwise

对应的线性决策边界
w T x = 0 w^Tx = 0 wTx=0

二、算法原理与数学推导

2.1 概率建模

正类概率
P ( y = 1 ∣ x ) = 1 1 + e − ( w T x + b ) P(y=1|x) = \frac{1}{1 + e^{-(w^Tx + b)}} P(y=1∣x)=1+e(wTx+b)1

负类概率
P ( y = 0 ∣ x ) = 1 − P ( y = 1 ∣ x ) = e − ( w T x + b ) 1 + e − ( w T x + b ) P(y=0|x) = 1 - P(y=1|x) = \frac{e^{-(w^Tx + b)}}{1 + e^{-(w^Tx + b)}} P(y=0∣x)=1P(y=1∣x)=1+e(wTx+b)e(wTx+b)

2.2 损失函数推导

极大似然估计
L ( w ) = ∏ i = 1 n P ( y i ∣ x i ; w ) = ∏ i = 1 n y ^ i y i ( 1 − y ^ i ) 1 − y i L(w) = \prod_{i=1}^n P(y_i|x_i;w) = \prod_{i=1}^n \hat{y}_i^{y_i}(1-\hat{y}_i)^{1-y_i} L(w)=i=1nP(yixi;w)=i=1ny^iyi(1y^i)1yi

对数似然函数
ℓ ( w ) = ∑ i = 1 n [ y i ln ⁡ y ^ i + ( 1 − y i ) ln ⁡ ( 1 − y ^ i ) ] \ell(w) = \sum_{i=1}^n \left[ y_i \ln \hat{y}_i + (1-y_i)\ln(1-\hat{y}_i) \right] (w)=i=1n[yilny^i+(1yi)ln(1y^i)]

交叉熵损失函数
J ( w ) = − 1 n ∑ i = 1 n [ y i ln ⁡ σ ( w T x i ) + ( 1 − y i ) ln ⁡ ( 1 − σ ( w T x i ) ) ] J(w) = -\frac{1}{n}\sum_{i=1}^n \left[ y_i \ln \sigma(w^Tx_i) + (1-y_i)\ln(1-\sigma(w^Tx_i)) \right] J(w)=n1i=1n[yilnσ(wTxi)+(1yi)ln(1σ(wTxi))]


2.3 梯度下降优化

梯度计算
∂ J ∂ w j = 1 n ∑ i = 1 n ( σ ( w T x i ) − y i ) x i j \frac{\partial J}{\partial w_j} = \frac{1}{n}\sum_{i=1}^n (\sigma(w^Tx_i) - y_i)x_{ij} wjJ=n1i=1n(σ(wTxi)yi)xij

参数更新公式
w j : = w j − α ∂ J ∂ w j w_j := w_j - \alpha \frac{\partial J}{\partial w_j} wj:=wjαwjJ

2.4 正则化处理

正则化类型

类型公式特点
L1 J ( w ) + = λ ∣ w ∣ 1 J(w) += \lambda |w|_1 J(w)+=λw1产生稀疏解
L2 J ( w ) + = λ 2 ∣ w ∣ 2 2 J(w) += \frac{\lambda}{2}|w|_2^2 J(w)+=2λw22平滑权重衰减

三、模型评估

3.1 常用评估指标

指标公式说明
准确率 T P + T N T P + T N + F P + F N \frac{TP+TN}{TP+TN+FP+FN} TP+TN+FP+FNTP+TN总体预测正确率
精确率 T P T P + F P \frac{TP}{TP+FP} TP+FPTP预测为正类的准确率
召回率 T P T P + F N \frac{TP}{TP+FN} TP+FNTP正类样本的覆盖率
F1 Score 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} 2Precision+RecallPrecisionRecall精确率与召回率调和平均

3.2 ROC曲线与AUC

ROC曲线绘制步骤

  1. 调整分类阈值,计算不同阈值下的TPR和FPR:
    T P R = T P T P + F N , F P R = F P F P + T N TPR = \frac{TP}{TP+FN}, \quad FPR = \frac{FP}{FP+TN} TPR=TP+FNTP,FPR=FP+TNFP
  2. 以FPR为横轴,TPR为纵轴绘制曲线

AUC值意义

  • AUC=0.5:随机猜测
  • AUC=1.0:完美分类器

四、应用案例

4.1 金融风控:贷款违约预测

数据处理流程

# Python代码示例
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler

# 特征标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 模型训练
model = LogisticRegression(penalty='l1', solver='liblinear')
model.fit(X_train, y_train)

模型输出结果

  • AUC: 0.85
  • KS值: 0.42

4.2 医疗诊断:乳腺癌检测

特征重要性分析

特征权重显著性(p值)
细胞核半径2.34<0.001
纹理均匀度-1.560.023
边缘平滑度0.890.142

五、经典面试题解析

问题1:为什么逻辑回归用交叉熵损失而不用MSE?

深度解析

  1. 损失函数曲面特性

    • MSE损失在逻辑回归中非凸,存在多个局部最小值
    • 交叉熵损失是凸函数,保证全局最优解
  2. 梯度更新效率
    ∂ J M S E ∂ w = ( y ^ − y ) y ^ ( 1 − y ^ ) x \frac{\partial J_{MSE}}{\partial w} = (\hat{y} - y)\hat{y}(1-\hat{y})x wJMSE=(y^y)y^(1y^)x

    • 当预测值接近0或1时,梯度趋于0,导致更新缓慢
    • 交叉熵梯度直接为 ( y ^ − y ) x (\hat{y} - y)x (y^y)x,更新速度稳定

问题2:逻辑回归如何处理多分类?

两种实现方式对比

方法公式优缺点
One-vs-Rest (OvR)训练K个二分类器简单但可能类别不平衡
Softmax回归 P ( y = k ) = e w k T x ∑ e w j T x P(y=k) = \frac{e^{w_k^Tx}}{\sum e^{w_j^Tx}} P(y=k)=ewjTxewkTx直接建模多分类

六、最佳实践

6.1 特征工程技巧

  1. 分箱处理
    将连续变量离散化,增强模型鲁棒性
    pd.cut(df['age'], bins=5, labels=False)
    
  2. 交互特征
    通过特征组合捕捉非线性关系
    x 3 = x 1 × x 2 x_3 = x_1 \times x_2 x3=x1×x2

6.2 超参数调优

网格搜索示例

from sklearn.model_selection import GridSearchCV

params = {
    'C': [0.1, 1, 10], 
    'penalty': ['l1', 'l2']
}
grid = GridSearchCV(LogisticRegression(), params, cv=5)
grid.fit(X, y)

七、总结与展望

核心优势

  • 输出概率解释性强
  • 训练效率高(时间复杂度O(n))
  • 可通过正则化防止过拟合

未来方向

  • 与深度学习结合(如神经网络最后一层使用逻辑回归)
  • 在线学习场景下的增量更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值