回归算法——Logistics回归、Log对数损失(交叉熵损失)

本文详细介绍了Logistics回归算法,包括其通过Sigmoid函数进行概率估计的原理,以及模型如何进行预测分类。重点探讨了Log对数损失(交叉熵损失)的概念,解释了如何利用最大似然估计思想设计损失函数,并阐述了为什么这种损失函数能够起到错误分类的惩罚作用。此外,还介绍了交叉熵在多类别样本中的应用,以及在Logistics回归中如何体现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回归算法——Logistics回归、Log对数损失、交叉熵损失

1.定义

Logistic算法是一个二分类算法,它通过Sigmoid函数,把函数值映射到0~1之间。其概率估计函数公式如下:
p ^ i = h θ ( X i ) = σ ( θ T X i ) \hat p_i=h_\theta(X_i)=\sigma(\theta^TX_i) p^i=hθ(Xi)=σ(θTXi)
其中 p ^ i \hat p_i p^i为样本 X i X_i Xi的最终估计概率, θ \theta θ为回归模型的特征参数向量, X i X_i Xi为某一样本,其中 σ ( ) \sigma() σ()为Sigmoid函数。
σ ( t ) = 1 1 + e − t \sigma(t) = \frac{1}{1+e^{-t}} σ(t)=1+et1
于是便有如下逻辑回归分类模型:
Y i ^ = { 0 , p i ^ &lt; 0.5 1 , p i ^ ≥ 0.5 \hat{Y_i} = \begin{cases} 0,\hat{p_i}&lt;0.5\\ 1,\hat{p_i}\ge0.5 \end{cases} Yi^={ 0,pi^<0.51,pi^0.5
即当样本 X i X_i Xi的预测概率小于0.5时,其预测分类为0;反之,其预测分类为1。我们也可以通过sigmoid函数知道,当 θ T X i &lt; 0 \theta^TX_i&lt;0 θTXi<0时,其预测分类为0; θ T X i ≥ 0 \theta^TX_i\ge0 θTXi0时其预测分类为1。

好了,既然我们知道Logistic模型是如何进行预测分类的了,那么接下来就讨论一下,我们要如何使模型更能准确的预测出样本分类,即我们如何调整模型的 θ \theta θ特征参数向量。于是我们就要引入损失函数的概念,即使用何种函数来定义本模型的好坏,并使用何种优化方式来使损失函数尽可能最小。

2.Log对数损失

Log对数损失, 即对数似然损失(Log-likelihood Loss), 也称逻辑斯谛回归损失(Logistic Loss)或交叉熵损失(cross-entropy Loss),它是采取极大似然估计思想来进行设计的。下面就讲一下极大似然估计思想:

假设样本X服从某一分布(比如0-1分布),现在要做的是就是根据样本X估计该分布参数 θ \theta θ的值,直观上来讲,由于已知样本X,那么这个样本X的产生一定与未知的 θ \theta θ有关,既然已有样本X了,则认为 θ \theta θ的值应该是使 p ( X / θ ) p(X/\theta) p(X/θ)最大的那个值,于是有似然估计函数 L ( X , θ ) L(X,\theta) L(X,θ)最大化。

那么据此思想,已经构建了Logistics算法模型,即样本X满足Logistics概率函数分布,于是构建如下似然函数 L (

### Logistic 回归模型参数估计方法 在机器学习领域,Logistic 回归是一种用于解决二分类问题的经典算法。该模型的目标是在给定输入特征的情况下预测离散的结果标签。 #### 模型定义 设 \(X\) 代表自变量矩阵,\(y\) 是因变量向量表示样本的真实类别(通常为0或1),\(\theta\) 则是需要解的权重参数向量。为了计算事件发生的概率,采用 Sigmoid 函数作为激活函数: \[ h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}} \] 这里 \(h_\theta(x)\) 给出了当输入为 \(x\) 时属于正类 (即 y=1 ) 的条件概率[^2]。 #### 参数优化过程 对于 logistic 回归而言,最常用的参数估计方式是最小化负对数似然成本函数(也称为交叉熵损失)。具体来说就是寻找一组最优参数使得训练数据上的平均误差最小化: \[ J(\theta)= -\frac{1}{m}\sum_{i=1}^{m}[y^{(i)} log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] \] 其中 m 表示样本数量。这个表达式衡量了当前假设下的预测分布与实际观测之间的差异程度[^1]。 一旦确定了目标函数的形式之后,就可以利用诸如梯度下降这样的数值优化技术来进行参数调整。每一次迭代过程中都会按照下面的方式更新各个维度上的权值: \[ \theta_j := \theta_j - \alpha \cdot \nabla_{\theta_j}J(\theta), j=0,...,n \] 这里的 \(\alpha\) 称作学习速率,控制着每一步沿梯度方向前进的距离;而 \(\nabla_{\theta_j}J(\theta)\) 即为目标函数关于第j个参数偏导数所组成的向量,指示出最快上升的方向[^3]。 ```python import numpy as np def sigmoid(z): return 1 / (1 + np.exp(-z)) def compute_cost(X, y, theta): m = len(y) predictions = sigmoid(np.dot(X, theta)) cost = (-1/m) * np.sum( y*np.log(predictions)+(1-y)*np.log(1-predictions) ) return cost def gradient_descent(X, y, theta, alpha, num_iters): m = len(y) for i in range(num_iters): z = np.dot(X, theta) prediction = sigmoid(z) error = prediction - y grad = (1/m) * np.dot(error.T, X).T theta -= alpha * grad return theta ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值