跳至主要內容

逻辑回归(LogisticRegression)

程序员李某某大约 1 分钟

逻辑回归(LogisticRegression)

逻辑回归模型,是一种常用的分类模型,该模型假设数据集的生成过程为: y = P(y=1|x) 其中,y 为目标变量,x 为特征变量。

sklearn 参数

  • C: float, default=1.0:正则化参数,越大正则化强度越小,但是可能会过拟合
  • multi_class: str, default='auto':多分类问题,可选值有:'ovr', 'multinomial',需要搭配solver参数使用
  • solver: str, default='lbfgs':优化算法,可选值有:'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'

多分类问题

使用Softmax回归解决多分类问题

Softmax概率转换

将模型输出的原始得分(未经处理的数值)通过Softmax函数转换为多分类概率值: $$ P(y=i) = \frac{e{s_i}}{\sum_{j=1} e^{s_j}} $$

  • 分子:对当前类别的得分进行指数放大(如$e{90}$和$e$差异明显增大)。
  • 分母:所有类别的指数得分之和,用于归一化得到概率值(总和为1)。

交叉熵损失函数

计算预测概率与真实标签的差异: $$ Loss = -\sum_{i=1}^{n} y_i \cdot \log(p_i) $$

  • 真实标签$y_i$:采用One-Hot编码(正确类别为1,其余为0)。
  • 预测概率$p_i$:Softmax输出的概率值。
  • 核心逻辑
    当正确类别的预测概率$p_i$越接近1时,$\log(p_i)$趋近0,损失值极小;
    若$p_i$偏离正确类别(如预测概率接近0),$\log(p_i)$趋近负无穷,损失值急剧增大。

示例

假设真实标签为类别2(编码为$y=[0,1,0]$),模型预测概率为$p=[0.1, 0.7, 0.2]$: $$ Loss = -(0 \cdot \log(0.1) + 1 \cdot \log(0.7) + 0 \cdot \log(0.2)) = -\log(0.7) \approx 0.36 $$ 若预测概率变为$p=[0.8, 0.1, 0.1]$(错误预测): $$ Loss = -\log(0.1) \approx 2.30 \quad (\text{损失显著增大}) $$

上次编辑于:
贡献者: 李元昊