逻辑回归(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{损失显著增大}) $$
