当前位置:   article > 正文

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

多元逻辑回归分析

最近修改: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[

y1y2yn
\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[

1x11x12...x1m1x21x21...x2m1xn1xn2...xnm
\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[

βk0βk1βk2βkm
\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
  • 1

解决方案有两个:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/475873
推荐阅读
相关标签
  

闽ICP备14008679号