Google机器学习实践指南(逻辑回归损失函数)
🔥 Google机器学习(25)-逻辑回归损失函数
Google机器学习(25)-逻辑回归损失函数
一、损失函数详解
▲ 对数损失函数
公式:
Loss = -[y·log(y’) + (1-y)·log(1-y’)]
特点:
- 惩罚错误分类(预测概率偏离真实标签)
- 凸函数保证全局最优解
- 输出值范围:[0, +∞)
▲ 图1 不同训练时间下的损失变化
▲ 平方损失函数(L2 Loss)
公式:
Loss = (y - y')²
特点:
- 对称惩罚预测偏差(离真实值越远惩罚越大)
- 处处可导便于梯度计算
- 对离群值敏感(平方放大误差)
- 输出值范围:[0, +∞)
▲逻辑回归
-
逻辑回归模型会生成概率。
-
对数损失函数是逻辑回归的损失函数。
-
逻辑回归被很多从业者广泛使用
二、正则化
1. 正则化类型
正则化在逻辑回归建模中极其重要。因为没有正则化的情况下,逻辑回归会不断促使损失在高维度空间内达到 0。
大多数逻辑回归模型会使用以下策略之一来降低模型复杂性:
类型 | 公式 | 作用 | 适用场景 |
---|---|---|---|
L1正则化 | λΣ|w| | 产生稀疏权重 | 特征选择 |
L2正则化 | λΣw² | 限制权重幅度 | 防止过拟合 |
早停法 | - | 提前终止训练 | 计算资源有限 |
▲ 图2 不同正则化权重的对损失影响
三、Python实战示例
# 导入库
from sklearn.linear_model import LogisticRegression
from sklearn import datasets# 加载数据
iris = datasets.load_iris()
X = iris.data[:, [2,3]] # 选择花瓣长度和宽度
y = iris.target# 创建模型(带L2正则化)
model = LogisticRegression(C=1000.0, # 正则化强度的倒数random_state=0, # 随机种子penalty='l2' # L2正则化
)# 训练模型
model.fit(X, y)
# 技术问答 #
Q:何时不宜使用平方损失?
A:数据含大量离群值时建议改用Huber损失
Q:为什么回归问题常用平方损失?
A:其解等价于最大似然估计下的最优解