当前位置:   article > 正文

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

二元逻辑回归数学推导




最近修改:2021/6/17

原文《从二元逻辑回归到多元逻辑回归 · 推导过程完全解析》经过多次修改后变得越来越长,因此笔者将其分为两部分:

第一部分:二元逻辑回归 · 数学推导过程及代码实现完全解析
第二部分:多元逻辑回归 · 数学推导过程及代码实现完全解析


概述

以下是此篇文章要用的包

# 加载包
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('darkgrid')
  • 1
  • 2
  • 3
  • 4
  • 5

两个重要函数


二元逻辑回归的出发点是sigmoid函数
S ( x ) = 1 1 + e − x = e x 1 + e x S(x)= \frac{1}{1+e^{-x}}= \frac{e^{x}}{1+e^{x}} S(x)=1+ex1=1+exex

Sigmoid函数能将实数域的连续数映射到0,1区间,概率的取值范围就在0,1之间,因此可以用来做概率的预测。

以下是Sigmoid函数的代码和图像

x=np.arange(-10,10)
y=1/(1+np.exp(-x))
plt.plot(x,y)
  • 1
  • 2
  • 3

Output:



多元逻辑回归的出发点是softmax函数
S ( x ) = e x i ∑ j = 1 k e x j S(x)=\frac{e^{x_i}}{\sum_{j=1}^{k}e^{x_j}} S(x)=j=1kexjexi
Softmax函数也是将实数域的连续数映射到0,1区间,进而可以理解为是概率。

以下是softmax函数的代码和图像

图像的特点:

  • 设向量x=[0,1,2,3,…,49],其输出也是一个向量y
  • 这里Softmax函数会将x里的每个数映射到0,1区间
  • 并且y里元素加和为一
  • 数越大,其输出也越大,即概率越大。
x=np.arange(0,50)
y=np.exp(x)/np.sum(np.exp(x))
plt.plot(x,y)
print('the sum of y={}'.format(y.sum()))
  • 1
  • 2
  • 3
  • 4

Output:
the sum of y=1.0


预测的基本思想


我们想处理分类问题,最基本的统计模型便是逻辑回归,之所以使用它,最主要的原因是其输出是在0,1之间。

注意,我们并不是直接输出类别编号,而是一个概率值

然后我们会根据情况的不同来确定一个阈值,通常这个阈值定在0.5。比如,二元模型中(类别0和1),我的输出是P(Y=1)=0.75(0.75>0.5),则认为此时Y是属于类别1的。




二元逻辑回归


线性模型的简单回顾

要解释二元逻辑回归,我们得先来了解下什么是线性模型

首先这个模型建立在两个个假设上

  • 假设 y y y X X X之间是一个线性关系
  • y i ( i = 1 , 2 , 3 , . . . , n ) y_i(i=1,2,3,...,n) yi(i=1,2,3,...,n)是独立同分布

y y y X X X之间的线性关系

y = X β y=Xβ y=Xβ

因变量 y y y是一个nx1向量

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

带截距项的参数 β β β是一个mx1向量
β = [ β 0 β 1 β 2 ⋮ β m ] β= \left[

β0β1β2βm
\right] β=β0β1β2βm

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号