逻辑斯谛回归(logistics regression,LR)
逻辑斯谛分布
之前学到的感知机线性回归说过,一个分离超平面S将特征空间分成两个部分,实例在不同的子空间中被分为相对应的类。但是当一个样本点与超平面的距离非常近时,被分成类A的可能性为51%,分成类B的可能性为49%,此时线性回归会直接给出该样本点属于A类的结论,并没有告诉我们它属于A类的概率是多少,这样就忽略了49%分成B类的可能性。
为了得到这个概率,引出了Sigmoid函数(也叫Logistic,逻辑斯谛函数)。
关于函数的简介,可以在百度中自行了解:
https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407
Sigmoid函数经常在深度学习中作为激励函数使用,它的基本形式如下:
S i g m o i d ( x ) = 1 1 + e x Sigmoid(x)=\frac{1}{1+e^{x}} Sigmoid(x)=1+ex1
Sigmoid函数能够将线性回归产生的值 x ∈ ( − ∞ , + ∞ ) x\in{(-\infty,+\infty)} x∈(−∞,+∞) 转换到 y ∈ ( 0 , 1 ) y\in(0,1) y∈(0,1) 区间内,而概率的取值也在(0,1)内,这样,就可以得到一个样本被分为一个类的概率是多少了。
引入Sigmoid函数之后,加入形状参数 γ \gamma γ和位置参数 μ \mu μ,便得到了逻辑斯谛分布:
当连续随机变量X服从逻辑斯谛分布时,X具有下列分布函数:
F ( x ) = 1 1 + e − ( x − μ ) / γ F(x)=\frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=1+e−(x−μ)/γ1
分布函数求导后得到密度函数:
f ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x)=\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} f(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
其中,形状参数 γ \gamma γ越小,曲线在中心附近越陡,增长的越快。
二项逻辑斯谛回归模型
当 μ = 0 , γ = 1 \mu=0,\gamma=1 μ=0,γ=1,随机变量Y只有两个取值0或1时,二项逻辑斯谛回归模型的形式为:
P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x + b ) P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x+b)}} P(Y=0∣x)=1+e(ω⋅x+b)1
P ( Y = 1 ∣ x ) = 1 − 1 1 + e ( ω ⋅ x + b ) = e ( ω ⋅ x + b ) 1 + e ( ω ⋅ x + b ) P(Y=1|x)=1- \frac{1}{1+e^{(\omega \cdot x+b)}} = \frac{e^{(\omega \cdot x+b)}}{1+e^{(\omega \cdot x+b)}} P(Y=1∣x)=1−1+e(ω⋅x+b)1=1+e(ω⋅x+b)e(ω⋅x+b)
有时为了方便,将权值向量 ω \omega ω扩充为 ( ω ( 1 ) , ω ( 2 ) , . . . , ω ( n ) , b ) T (\omega^{(1)},\omega^{(2)},...,\omega^{(n)},b)^T (ω(1),ω(2),...,ω(n),b)T,将输入向量x扩充为 ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 ) (x^{(1)},x^{(2)},...,x^{(n)},1) (x(1),x(2),...,x(n),1),扩充后的 ω ⋅ x = ω ( 1 ) x ( 1 ) + ω ( 2 ) x ( 2 ) + . . . + ω ( n ) x ( n ) + b \omega \cdot x=\omega^{(1)}x^{(1)}+\omega^{(2)}x^{(2)}+...+\omega^{(n)}x^{(n)}+b ω⋅x=ω(1)x(1)+ω(2)x(2)+...+ω(n)x(n)+b,等价于扩充前的 ω ⋅ x + b \omega \cdot x+b ω⋅x+b。
这时的逻辑斯谛回归模型如下:
P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x ) P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x)}} P(Y=0∣x)=1+e(ω⋅x)1
P ( Y = 1 ∣ x ) = 1 − 1 1 + e ( ω ⋅ x ) = e ( ω ⋅ x ) 1 + e ( ω ⋅ x ) P(Y=1|x)=1- \frac{1}{1+e^{(\omega \cdot x)}} = \frac{e^{(\omega \cdot x)}}{1+e^{(\omega \cdot x)}} P(Y=1∣x)=1−1+e(ω⋅x)1=1+e(ω⋅x)e(ω⋅x)
当输入一个样本点x时,二项逻辑斯谛回归模型比较P(Y=0|x)和P(Y=1|x)的大小,将x分到概率值较大的那一类。其实只需计算一个条件概率值就行了,因为P(Y=0|x)+P(Y=1|x)=1。
例如当P(Y=0|x)=0.49,P(Y=1|x)=0.51时,x的类别为y=1,属于类1的概率为0.51。
这样,当一个样本点x输入到感知机模型sign(w•x+b)中时,只能得到样本点的类别;
当x输入到二项逻辑回归模型中时,不仅可以得到样本点的类别,还可以得到属于该类别的概率。
二项逻辑斯谛回归模型参数估计
下一个要解决的问题是,怎么得到模型中的未知参数 ω \omega ω?
假如给你一个训练集,包括10个样本,其中7个样本为类0,3个样本为类1,类0出现的概率为p,类1出现的概率为1-p,那么出现训练样本这种现象的概率就是p7(1-p)3。
既然这个样本结果已经出现了,为什么不利用已知的样本结果信息,反推最有可能(最大概率)导致这些样本结果出现的模型参数值 ω \omega ω呢?而这就是极大似然估计法的思想。
也就是说,我们可以用极大似然估计法估计 ω \omega ω。通过最大化对数似然函数,得到未知参数 ω \omega ω的估计值。
如果x是已知确定的,参数 ω \omega ω是未知的, P ( x ∣ ω ) P(x|\omega) P(x∣ω)叫做似然函数, 它描述对于不同的参数 ω \omega ω,出现x这个样本点的概率是多少。
关于极大似然估计更详细的解说,可以看这篇文章https://zhuanlan.zhihu.com/p/26614750
下面我们具体应用到二项逻辑回归模型中。
设训练数据集T={(x1,y1),(x2,y2),…,(xN,yN)}有N个样本,yi为0或1。
为了方便表述,设:
P ( Y = 1 ∣ x ) = e ( ω ⋅ x ) 1 + e ( ω ⋅ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x ) = 1 − π ( x ) ( 1 ) P(Y=1|x)=\frac{e^{(\omega \cdot x)}}{1+e^{(\omega \cdot x)}}=\pi(x), P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x)}}=1-\pi(x) \tag{\color{red}{1}} P(Y=1∣x)=1+e(ω⋅x)e(ω⋅x)=π(x),P(Y=0∣x)=1+e(ω⋅x)1=1−π(x)(1)
出现训练集T这个结果的似然函数就是把每个样本点出现的概率相乘起来:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1∏N[π(xi)]yi[1−π(xi)]1−yi
假如训练集T只有两个样本点,第一个样本点是类0,第二个是类1,代入上式就是:
∏ i = 1 2 [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i = [ π ( x 1 ) ] y 1 [ 1 − π ( x 1 ) ] 1 − y 1 [ π ( x 2 ) ] y 2 [ 1 − π ( x 2 ) ] 1 − y 2 = [ π ( x 1 ) ] 0 [ 1 − π ( x 1 ) ] 1 [ π ( x 2 ) ] 1 [ 1 − π ( x 2 ) ] 0 = [ 1 − π ( x 1 ) ] [ π ( x 2 ) ] \begin{aligned} &\prod_{i=1}^{2}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\\ &=[\pi(x_1)]^{y_1}[1-\pi(x_1)]^{1-y_1}[\pi(x_2)]^{y_2}[1-\pi(x_2)]^{1-y_2}\\ &=[\pi(x_1)]^{0}[1-\pi(x_1)]^{1}[\pi(x_2)]^{1}[1-\pi(x_2)]^{0}\\ &=[1-\pi(x_1)][\pi(x_2)] \end{aligned} i=1∏2[π(xi)]yi[1−π(xi)]1−yi=[π(x1)]y1[1−π(x1)]1−y1[π(x2)]y2[1−π(x2)]1−y2=[π(x1)]0[1−π(x1)]1[π(x2)]1[1−π(x2)]0=[1−π(x1)][π(x2)]
是不是相当于那个p7(1-p)3呢。
为了让连乘变成连加,对上面的似然函数取对数,得到对数似然函数:
L ( ω ) = ∑ i = 1 N [ l o g [ π ( x i ) ] y i + l o g [ 1 − π ( x i ) ] 1 − y i ] = ∑ i = 1 N [ y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) − y i l o g ( 1 − π ( x i ) ) + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i [ l o g π ( x i ) − l o g ( 1 − π ( x i ) ) ] + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ) ] 将 前 面 设 的 式 1 代 入 = ∑ i = 1 N [ y i l o g e ( ω ⋅ x i ) 1 + e ( ω ⋅ x i ) 1 1 + e ( ω ⋅ x i ) + l o g 1 1 + e ( ω ⋅ x i ) ] = ∑ i = 1 N [ y i ( ω ⋅ x i ) − l o g ( 1 + e ( ω ⋅ x i ) ) ] \begin{aligned} L(\omega)&=\sum_{i=1}^{N}[log[\pi(x_i)]^{y_i}+log[1-\pi(x_i)]^{1-y_i}]\\ &=\sum_{i=1}^{N}[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_ilog\pi(x_i)-y_ilog(1-\pi(x_i))+log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_i[log\pi(x_i)-log(1-\pi(x_i))]+log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))]\\ 将前面设的式1代入&=\sum_{i=1}^{N}[y_ilog\frac{\frac{e^{(\omega \cdot x_i)}}{1+e^{(\omega \cdot x_i)}}}{\frac{1}{1+e^{(\omega \cdot x_i)}}}+log\frac{1}{1+e^{(\omega \cdot x_i)}}]\\ &=\sum_{i=1}^{N}[y_i(\omega \cdot x_i)-log(1+e^{(\omega \cdot x_i)})] \end{aligned} L(ω)将前面设的式1代入=i=1∑N[log[π(xi)]yi+log[1−π(xi)]1−yi]=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yilogπ(xi)−yilog(1−π(xi))+log(1−π(xi))]=i=1∑N[yi[logπ(xi)−log(1−π(xi))]+log(1−π(xi))]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]=i=1∑N[yilog1+e(ω⋅xi)11+e(ω⋅xi)e(ω⋅xi)+log1+e(ω⋅xi)1]=i=1∑N[yi(ω⋅xi)−log(1+e(ω⋅xi))]
对 L ( ω ) L(\omega) L(ω)求极大值,就可以得到参数 ω \omega ω的估计值,进一步得到二项逻辑回归模型。
到此,求二项逻辑回归模型就变成了求目标函数为 L ( ω ) L(\omega) L(ω)的最优化问题。求解该最优化问题一般使用梯度下降法和拟牛顿法。
梯度下降法的学习文章
逻辑斯谛回归(logistics regression,LR)相关推荐
- 复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥
复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥? 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学 ...
- 逻辑斯蒂回归(Logistics Regression)
Author: 吕雪杰,xiaoran; Datawhale Logistics Regression简介 逻辑回归是在数据服从伯努利分布的假设下,通过极大似然的方法,运用梯度下降法来求解参数,从而达 ...
- python logistics regression_Python——sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义...
sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义 使用sklearn库可以很方便的实现各种基本的机器学习算法,例如今天说的逻辑斯谛 ...
- # Logistics Regression
目录 一 logistics regression 1 一点介绍 2 评价 3 一点应用 4 代码流程 5 上代码!!! 一 logistics regression 1 一点介绍 逻辑回归是一个分类 ...
- Logistic Regression (LR) 详解
Logistic Regression (LR) 详解 最近忙着准备面试,偶然发现同学Q君在很认真地看LR(Logistics Regression),不由得心生蔑视,这么简单的模型有什么好研究的?结 ...
- 逻辑回归(logistics regression)与 softmax
文章目录 分类与回归的区别 逻辑回归 逻辑回归不是回归 逻辑回归算法原理及公式推导 求解目标 损失函数 什么是交叉熵损失函数 梯度下降 逻辑回归怎么处理非线性分类问题 总结 softmax简介 sof ...
- 逻辑回归模型(Logistic Regression, LR)基础
逻辑回归模型(Logistic Regression, LR)基础 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数, ...
- 逻辑回归模型(Logistic Regression, LR)基础 - 文赛平
逻辑回归模型(Logistic Regression, LR)基础 - 文赛平 时间 2013-11-25 11:56:00 博客园精华区 原文 http://www.cnblogs.com/ ...
- 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的
逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的 ...
- 高斯分布Gaussian distribution、线性回归、逻辑回归logistics regression
高斯分布Gaussian distribution/正态分布Normal distribution 1.广泛的存在 2020年11月24日,探月工程嫦娥五号探测器发射成功.其运转轨道至关重要,根据开普 ...
最新文章
- 学习 Linux,101: 引导系统
- Oracle(order by)
- HTML5路由和PJAX
- 【转】OpenGL反走样
- linux时间同修改,linux 系统时间修改同步
- 理解 RIPv1使用广播更新路由与RIPv2使用组播更新路由的区别
- 递归算法(一)递归概念与思路
- 没做性能优化,系统说炸就炸...
- linux qt交叉编译opencv,c-使用Qt和opencv交叉编译到Raspberry Pi
- 【BZOJ4668】冷战 并查集
- 元气骑士机器人旁边建筑_元气骑士:锤落谁家?锤子更适合机器人还是能双持的骑士呢?...
- 控件多线程访问的问题
- deeplab v3 ppt_「秋叶PPT」被这件事难倒的张雨绮,撕开了千万职场人最羞愧的一面...
- Windows 虚拟机介绍以及安装系统教程
- arduino和单片机的区别是什么
- C语言递归函数 写一个程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能顺序打印从1到N的全部正整数
- html中splice向数组添加元素,js中splice()的强大(删除,插入或替换数组的元素)
- ;按F11立即备份晓亮的电脑操作记录并打开记录.AU3 (AutoIt)
- 微信小程序手机号码如何进行解密
- 第五章——大数定律和中心极限定理