逻辑回归超详细
1.逻辑回归的经典应用场景
逻辑回归是非常优秀的baseline
2.一个例子
根据人的年龄,工资和学历怎么判断一个人会不会逾期??
X:是每个样本的输入的特征向量如(20,4000,本科)
Y:标签如YES
根据X, Y ,我们需要定义一个条件概率
这个P(Y|X)就是我们要定义的映射,那具体的表达式是什么样的呢?
对于第一个样本我们计算 p(Y=1| (20,4000, 本科),我们希望这个概率越大越好,就说明我们预测的标签越接近于1
当我们知道了 P(Y|X)的形式后,我们可以直接代入 X 向量的值来做预测
3.逻辑回归定义
我们先来看一个问题
回答是:不可以
因为:P(Y|X)是一个条件概率,既然是概率,那就要满足概率的性质,我们知道概率要满足两个性质,即
因为特征向量X 的取值范围是 d 维任意实数即 , 所以
的取值范围是
, 所以它根本不满足概率的两个条件
现在我们想能不能修改一下线性回归模型,使我们的条件概率满足概率的性质。这时候逻辑函数就派上用场了
我们完全可以把线性回归的形式当成逻辑函数的自变量x,这样y就能映射到(0,1)之间了
逻辑函数常用符号表示
所以最后的新概率如图
为了理解这个式子怎么用,我们用第一个样本举例
X:(20,4000,本科)
Y:YES
因为X是3 维的,所以参数 w也是 3 维的向量,令 w = (w1, w2, w3), 则
4. 二分类逻辑回归
p(y = 0 |x,w) = 1 - p(y=1 |x,w)
对于合并的式子,我们可以验算当 y=1 时就只有前面一项,后面一项为 1; 当y = 0时,就只有后面一项,前面一项为1
5.问题: 逻辑回归是线性分类器吗?
, 里面是线性,外层又是非线性,该怎么去判断呢???
答案是:线性
评判一个分类模型是线性还是非线性的标准是看:决策边界
左边图就是线性边界,右边是非线性的
怎么求决策边界呢??我们根据在决策边界上的点到两个类别的概率相等这一关系式来求
所以:P(Y=1|x,w) = P(Y=0|x,w)
然后代入上述公式得
两边同时加上 log,最后变成了
很明显这是一个线性的边界
6.逻辑回归的目标函数
逻辑回归的目标函数就是似然函数,极大似然估计的思想是,我们要最大化看到的数据的概率
7.参数的求解
我们现在就是要求解如下的问题
我们把 p(yi = 1|xi,w) 写成的形式,其中...代表
, 那么继续化简就是
然后是求导
-
先对 w 求导,注意
是三个函数:log, σ,wx+b 的复合,求导时由外到内依次求导
- sigmoid函数 σ 的求导公式是:σ′ = σ(1-σ )
- w xi + b 对 w 的导数是 xi
式中: yi 是真实标签,σ(...) 是预测值,w的更新就是依赖于 (yi - σ(...) ) 的差值,当 yi = σ(...) 时,w 就不会更新了
再对 b 求导
有了 w 和 b 的梯度,我们就可以进行参数值的更新了
迭代停止条件:
- 目标函数L 两次迭代的差值小于设定的阈值
- 参数 w, b的两次迭代的差值小于设定的阈值
- 在验证集上观察模型训练效果,如果准确率在某一时刻到达最大,而后面时刻正确率有所降低,那我们就early stop
- 设置最大的迭代次数T
7.思考题
当数据线性可分时,w会趋于很大值
逻辑回归模型趋向于哪一条决策边界呢?
回答:会选择l1,因为它的斜率即w是最大。因为
我们现在只看第一个类别的样本点,我们知道它的概率公式是下面这样的
我们训练是让这类样本点尽可能分类正确,也就是最大化 p(y=1|x,w)使它趋于1,要使这个概率最大化,就要让W也尽量大,趋于正无穷。那么就会趋于0,p(y=1|x,w)就会趋于1
这是一个不好的现象,它会让模型过拟合,我们并不希望有一个大的w
所以逻辑回归模型要加上正则项
8.带正则的逻辑回归
对w的梯度只是增加了一项2λ|w|
对b的梯度也只是增加了一项2λ|w|
λ是超参数,它相当于一个权重
当λ=0时,相当于对w没有限制
当λ很大时,相当于对w的约束也就越大,那么w值就会变得越小
当λ很小时,相当于对w的约束也就越小,那么w值就会变得越大
λ可以根据交叉验证来选择