网站维护与优化教程,创意品牌型网站,天津快推科技有限公司,wordpress路由正则### 逻辑回归的损失函数
逻辑回归模型用于分类问题#xff0c;其输出是一个概率值。对于二分类问题#xff0c;逻辑回归模型的输出可以表示为#xff1a;
\[ P(y 1 | x) \frac{1}{1 e^{-F(x)}} \]
其中 \( F(x) \) 是一个线性组合函数#xff0c;通常表示为#xff…### 逻辑回归的损失函数
逻辑回归模型用于分类问题其输出是一个概率值。对于二分类问题逻辑回归模型的输出可以表示为
\[ P(y 1 | x) \frac{1}{1 e^{-F(x)}} \]
其中 \( F(x) \) 是一个线性组合函数通常表示为
\[ F(x) \sum_{m0}^{M} h_m(x) \]
这里的 \( h_m(x) \) 是学习到的决策树。
### 损失函数的推导
对于单个样本 \((x_i, y_i)\)逻辑回归的损失函数通常采用对数似然损失也称为交叉熵损失定义如下
\[ \text{loss}(x_i, y_i) -y_i \log \hat{y}_i - (1 - y_i) \log (1 - \hat{y}_i) \]
其中 - \( \hat{y}_i \) 是模型预测的概率。 - \( y_i \) 是实际的标签0 或 1。
### GBDT 中的损失函数
在 GBDT 中我们假设第 \( k \) 步迭代之后当前学习器为 \( F(x) \)则损失函数可以写为
\[ \text{loss}(x_i, y_i | F(x)) y_i \log \left(1 e^{-F(x_i)}\right) (1 - y_i) \left[F(x_i) \log \left(1 e^{-F(x_i)}\right)\right] \]
### 推导步骤
1. **定义预测概率** \[ \hat{y}_i \frac{1}{1 e^{-F(x_i)}} \]
2. **代入损失函数** \[ \text{loss}(x_i, y_i) -y_i \log \hat{y}_i - (1 - y_i) \log (1 - \hat{y}_i) \] \[ -y_i \log \left(\frac{1}{1 e^{-F(x_i)}}\right) - (1 - y_i) \log \left(1 - \frac{1}{1 e^{-F(x_i)}}\right) \]
3. **简化表达式** \[ \text{loss}(x_i, y_i) -y_i \log \left(\frac{1}{1 e^{-F(x_i)}}\right) - (1 - y_i) \log \left(\frac{e^{-F(x_i)}}{1 e^{-F(x_i)}}\right) \] \[ -y_i \log \left(\frac{1}{1 e^{-F(x_i)}}\right) - (1 - y_i) \left[\log(e^{-F(x_i)}) - \log(1 e^{-F(x_i)})\right] \] \[ -y_i \log \left(\frac{1}{1 e^{-F(x_i)}}\right) - (1 - y_i) \left[-F(x_i) - \log(1 e^{-F(x_i)})\right] \] \[ y_i \log \left(1 e^{-F(x_i)}\right) (1 - y_i) \left[F(x_i) \log \left(1 e^{-F(x_i)}\right)\right] \]
求梯度
为了求出给定损失函数的梯度我们需要对损失函数关于 \( F(x_i) \) 求导。给定的损失函数是
\[ \text{loss}(x_i, y_i | F(x)) y_i \log \left(1 e^{-F(x_i)}\right) (1 - y_i) \left[F(x_i) \log \left(1 e^{-F(x_i)}\right)\right] \]
我们分两部分来计算梯度
1. 对于第一部分 \( y_i \log \left(1 e^{-F(x_i)}\right) \) 2. 对于第二部分 \( (1 - y_i) \left[F(x_i) \log \left(1 e^{-F(x_i)}\right)\right] \)
### 第一部分的梯度
对于 \( y_i \log \left(1 e^{-F(x_i)}\right) \)我们对其求导
\[ \frac{\partial}{\partial F(x_i)} \left[ y_i \log \left(1 e^{-F(x_i)}\right) \right] \]
使用链式法则
\[ \frac{\partial}{\partial F(x_i)} \left[ y_i \log \left(1 e^{-F(x_i)}\right) \right] y_i \cdot \frac{\partial}{\partial F(x_i)} \left[ \log \left(1 e^{-F(x_i)}\right) \right] \]
\[ y_i \cdot \frac{1}{1 e^{-F(x_i)}} \cdot (-e^{-F(x_i)}) \]
\[ y_i \cdot \frac{-e^{-F(x_i)}}{1 e^{-F(x_i)}} \]
\[ -y_i \cdot \frac{e^{-F(x_i)}}{1 e^{-F(x_i)}} \]
### 第二部分的梯度
对于 \( (1 - y_i) \left[F(x_i) \log \left(1 e^{-F(x_i)}\right)\right] \)我们对其求导
\[ \frac{\partial}{\partial F(x_i)} \left[ (1 - y_i) \left(F(x_i) \log \left(1 e^{-F(x_i)}\right)\right) \right] \]
\[ (1 - y_i) \cdot \left[ \frac{\partial}{\partial F(x_i)} F(x_i) \frac{\partial}{\partial F(x_i)} \log \left(1 e^{-F(x_i)}\right) \right] \]
\[ (1 - y_i) \cdot \left[ 1 \frac{1}{1 e^{-F(x_i)}} \cdot (-e^{-F(x_i)}) \right] \]
\[ (1 - y_i) \cdot \left[ 1 - \frac{e^{-F(x_i)}}{1 e^{-F(x_i)}} \right] \]
\[ (1 - y_i) \cdot \left[ \frac{1 e^{-F(x_i)} - e^{-F(x_i)}}{1 e^{-F(x_i)}} \right] \]
\[ (1 - y_i) \cdot \left[ \frac{1}{1 e^{-F(x_i)}} \right] \]
### 合并两部分
将两部分合并起来
\[ \frac{\partial}{\partial F(x_i)} \left[ y_i \log \left(1 e^{-F(x_i)}\right) (1 - y_i) \left[F(x_i) \log \left(1 e^{-F(x_i)}\right)\right] \right] \]
\[ -y_i \cdot \frac{e^{-F(x_i)}}{1 e^{-F(x_i)}} (1 - y_i) \cdot \frac{1}{1 e^{-F(x_i)}} \]
\[ -y_i \cdot \frac{e^{-F(x_i)}}{1 e^{-F(x_i)}} \frac{1 - y_i}{1 e^{-F(x_i)}} \]
\[ \frac{-y_i e^{-F(x_i)} 1 - y_i}{1 e^{-F(x_i)}} \]
\[ \frac{1 - y_i - y_i e^{-F(x_i)}}{1 e^{-F(x_i)}} \]
\[ \frac{1 - y_i - y_i e^{-F(x_i)}}{1 e^{-F(x_i)}} \]
最终得到的梯度为
\[ \frac{\partial \text{loss}}{\partial F(x_i)} \frac{1 - y_i - y_i e^{-F(x_i)}}{1 e^{-F(x_i)}} \]
简化
\[ \frac{\partial \text{loss}}{\partial F(x_i)} \frac{1}{1 e^{-F(x_i)}} - y_i \] ### 总结
通过上述推导我们可以看到逻辑回归的损失函数如何被应用于 GBDT 中。在每一步迭代中GBDT 会根据当前模型的预测和实际标签之间的差异来更新新的弱学习器通常是决策树从而逐步减少损失函数的值。
这个过程确保了模型能够逐步逼近最优解同时通过负梯度方向进行参数更新有效地减少了损失函数的值。