赞
踩
最近修改: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[
带截距项的自变量 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[
带截距项的参数 β 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[
与二元逻辑回归的另一个区别就是,多元逻辑回归中用的是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} pik≜P(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</
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。