Logistic Regression——逻辑回归算法推导
前言
之前学过用线性回归解决分类问题
,
使用如下的阶跃函数,实现分类功能,但是这样的分类很明显太过粗糙了
令z =
我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化。
而且是单调可微的凸函数->sigmoid function
定义
输出Y=1的对数几率是由输入x的线性函数表示的模型,这就是 逻辑回归模型。是一种广义的线性模型。
- 所以决策函数为
推导
- 有了Sigmoid fuction之后,由于其取值在[0,1],我们就可以将其视为类1的后验概率估计p(y=1|x)。即ϕ(z)可以视为类1的后验估计,于是有
- 写成一般的形式
- 用极大似然估计根据给定的训练集估计出参数w
极大似然估计:就是试图在w的所有可能的取值中,找到一个能使数据出现的可能性最大的值,不清楚的可以查看博主的另一篇介绍极大似然估计的文章 - 为了防止结果下溢,用对数似然
- 在l(w)前加负号,就变成了代价函数J(w)
- 先来理解一下代价函数
- 对于二分类问题,有
- 从图中看出,当y=1的时候,φ(z)越接近1,代价就越小。当y=0时,φ(z)越接近0,误差越小,因此可以作为我们的代价函数
- 对于二分类问题,有
- 梯度下降求参数
- sigmoid function有一个很好的性质就是
- 对代价函数关于参数求导 -- 链式求导
- 因此,更新权重的公式
是不是与线性回归的权重更新式子极为相似 - 样本量较大的时,采用随机梯度下降(或者mini batch SGD),去掉了求和,每次迭代式需要把样本打乱
- sigmoid function有一个很好的性质就是