多元逻辑回归 · 数学推导过程及代码实现完全解析

最近修改:2023/2/3

本文是《从二元逻辑回归到多元逻辑回归 · 数学推导过程完全解析》的第二部分,具体介绍多元逻辑回归,及其背后的数学公式推导和具体python代码实现

对于模型概述请参见第一部分:
二元逻辑回归 · 数学推导过程及代码实现完全解析


多元逻辑回归


模型解释

在这个模型中,自变量,因变量和参数的样子如下,可以看到 y i y_i yi的取值由两元变成了多元。

多元逻辑回归有次序多元逻辑回归无序多元逻辑回归之分,两者区别就在于因变量 y y y的取值是否有次序,如 y y y的取值类似于1,2,3,4…,则称其为次序多元逻辑回归。

本文这讨论更宽泛的无序情况。

因变量 y y y是一个nx1向量, y i y_{i} yi∈{ w 1 , w 2 , w 3 , . . . , w K w_1,w_2,w_3,...,w_K w1,w2,w3,...,wK}, i = 1 , 2 , 3 , . . . , n i=1,2,3,...,n i=1,2,3,...,n

y = [ y 1 y 2 ⋮ y n ] y= \left[ \begin{matrix} y_1 \\ y_2 \\ \vdots\\ y_n \end{matrix} \right] y= y1y2yn

带截距项的自变量 X X X是一个nx(m+1)的矩阵
X = [ 1 x 11 x 12 . . . x 1 m 1 x 21 x 21 . . . x 2 m ⋮ ⋮ ⋮ 1 x n 1 x n 2 . . . x n m ] X= \left[ \begin{matrix} 1&x_{11}&x_{12}&...&x_{1m}\\ 1&x_{21}&x_{21}&...&x_{2m}\\ \vdots&\vdots&&\vdots\\ 1&x_{n1}&x_{n2}&...&x_{nm} \end{matrix} \right] X= 111x11x21xn1x12x21xn2.........x1mx2mxnm

带截距项的参数 β k \bm{β_k} βk是一个mx1向量, k = 1 , 2 , 3 , . . . . , K k=1,2,3,....,K k=1,2,3,....,K
β k = [ β k 0 β k 1 β k 2 ⋮ β k m ] \bm{β_k}= \left[ \begin{matrix} β_{k0} \\ β_{k1} \\ β_{k2} \\ \vdots\\ β_{km} \end{matrix} \right] βk= βk0βk1βk2βkm

与二元逻辑回归的另一个区别就是,多元逻辑回归中用的是softmax函数。

于是我们的自变量和因变量的概率之间的关系可以表示如下

p i k ≜ P ( y i = w k ) = e x i β k ∑ j = 1 K e x i β j (5) p_{ik}\triangleq P(y_i=w_k)=\frac{e^{\bm{x_i}\bm{β_k}}}{\sum_{j=1}^{K}e^{\bm{x_i}\bm{β_j}}}\tag{5} pikP(yi=wk)=j=1Kexiβjexiβk(5)

整理后的函数p_ik()完整代码请见 代码实现 部分

:在实际建模中,可能会遇到一个问题, (5)的分母过大,超过计算机能表示的范围,即数据溢出, p i k p_{ik} pik会显示为nan,出现提示:

RuntimeWarning: overflow encountered in exp

解决方案有两个:

法一:
取(5)分母中 x i β j ( j = 1 , 2 , 3 , . . . , K ) x_iβ_j(j=1,2,3,...,K) xiβj</

  • 0
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑回归是一种用于二分类问题的机器学习算法,它通过建立一个逻辑回归模型来预测样本的类别概率。在推导逻辑回归算法数学原理时,我们将使用最大似然估计的方法。 假设我们有一个训练数据集,包含n个样本点。每个样本点由输入向量x和对应的类别标签y组成,其中x ∈ R^d,y ∈ {0, 1}。 逻辑回归的目标是建立一个模型,能够根据输入向量x预测出样本属于类别1的概率P(y=1|x)。 为了建立逻辑回归模型,我们使用逻辑函数(或称为sigmoid函数)将线性模型的输出转化为概率值。逻辑函数的形式为: g(z) = 1 / (1 + e^(-z)) 其中,z是线性模型的输出。在逻辑回归中,我们假设线性模型可以表示为: z = w^Tx + b 其中,w是权重向量,b是偏置项。 根据最大似然估计的思想,我们希望找到一组最优的参数w和b,使得在给定训练数据集下,模型对每个样本属于类别1的概率P(y=1|x)尽可能接近其真实标签y。 假设训练数据集中的样本是独立同分布的,我们可以构造似然函数来描述模型的拟合度。对于一个样本点(x, y),似然函数可以表示为: L(w, b) = P(y=1|x)^y * P(y=0|x)^(1-y) 为了简化计算,我们可以将似然函数取对数,得到对数似然函数: l(w, b) = log(L(w, b)) = y * log(P(y=1|x)) + (1-y) * log(P(y=0|x)) 我们的目标是最大化对数似然函数。为了实现这个目标,我们可以通过最小化负对数似然函数来转化为一个优化问题: minimize: -l(w, b) 接下来,我们可以使用梯度下降等优化算法来求解上述优化问题。通过计算负对数似然函数的梯度,并不断更新参数w和b,直到收敛为止。 具体地,我们可以计算负对数似然函数关于参数w和b的偏导数,并进行参数更新。更新规则可以表示为: w := w - α * ∂l/∂w b := b - α * ∂l/∂b 其中,α是学习率,控制参数更新的步长。 通过迭代执行上述更新步骤,我们可以逐渐优化参数w和b,找到最大似然估计下的最优解。 总结起来,逻辑回归算法数学原理是通过最大似然估计的方法,构建逻辑回归模型,将线性模型的输出通过逻辑函数转化为概率值。通过最小化负对数似然函数,使用梯度下降等优化算法来求解模型的参数。最终,我们可以根据模型的参数来预测样本属于类别1的概率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值