sklearn逻辑回归 极大似然 损失_【机器学习面试题】逻辑回归篇

33bd09546b10e0ba30e45ee8b615ef6f.png

本文知识点:

  • 什么是逻辑回归?
  • 逻辑回归为什么用 sigmoid 函数?
  • 逻辑回归为什么用极大似然函数?

什么是逻辑回归?

当预测目标是概率这样的,值域需要满足大于等于0,小于等于1的,这个时候单纯的线性模型是做不到的,因为在定义域不在某个范围之内时,值域也超出了规定区间。

50bd3eb56e58c24ed1ed3f84a9b0a674.png

所以此时需要这样的形状的模型会比较好

6603048f8d6f2647efd4cdc70f5ec284.png

那么怎么得到这样的模型呢?

这个模型需要满足两个条件 大于等于0,小于等于1

大于等于0 的模型可以选择 绝对值,平方值,这里用 指数函数,一定大于0

小于等于1 用除法,分子是自己,分母是自身加上1,那一定是小于1的了

c8a99238e7e652c24fd7490438beacc5.png

再做一下变形,就得到了 logistic regression 模型

4051d0ba0905274eccfbe95a50973319.png

通过源数据计算可以得到相应的系数了

be465c638d1dac03f5a2aa8e3083148d.png

最后得到 logistic 的图形

889c8fa3856b68de45fe274b896e3683.png

逻辑回归为什么用 sigmoid 函数?

假设我们有一个线性分类器:

ec6d408eebb1cd867d3522ebb47b914f.png

我们要求得合适的 W ,使 0-1 loss 的期望值最小,即下面这个期望最小:

1db64e78c885b5114ae7ed187e62968c.png

一对 x y 的 0-1 loss 为:

f6b415cac4f7569d42d683f0704a9ad5.png

在数据集上的 0-1 loss 期望值为:

913b49815be620a5d5f183777028ab6b.png

由 链式法则 将概率p变换如下:

1386a6a01a589d7da11e9f459c314616.png

为了最小化 R(h),只需要对每个 x 最小化它的 conditional risk:

a53bb759ab34c2c6a9cabd83f610051b.png

由 0-1 loss 的定义,当 h(x)不等于 c 时,loss 为 1,否则为 0,所以上面变为:

1c3f1eb19534441743c5b695b97d63d1.png

又因为

29731e4e07e45a7a32a989656b2cefdf.png

所以:

29d15bb07b6a49ccd0c577b64e536cf6.png

为了使 条件风险 最小,就需要 p 最大,也就是需要 h 为:

fb3ce67587d3c7c4b2f638f350a16ccf.png

上面的问题等价于 找到 c*,使右面的部分成立:

4b97dd9f9b9813190770d8484a3d6b29.png

取 log :

97f02fd51e31c6540ae1783a4a24cce3.png

在二分类问题中,上面则为:

56e075b9a02a6e46897bcb2a7330eba4.png

即,我们得到了 log-odds ratio !

接下来就是对 log-odds ratio 进行建模,最简单的就是想到线性模型:

423c29c04be1645d13ca8d69d8bc9391.png

则:

e4f8cbf8569b05d6ca90a67c151b4a93.png

于是得到 sigmoid 函数:

4fcdd51479342bf002051643e1b240bf.png

由此可见,log-odds 是个很自然的选择,sigmoid 是对 log-odds 的线性建模。

逻辑回归为什么用极大似然函数?

Logistic regression 用来解决二分类问题,

它假设数据服从伯努利分布,即输出为 正 负 两种情况,概率分别为 p 和 1-p,

目标函数 hθ(x;θ) 是对 p 的模拟,p 是个概率,这里用了 p=sigmoid 函数,

所以 目标函数 为:

3c154570ce4e3db3dddcdb1259b6f35d.png

损失函数是由极大似然得到,

记:

c44e93dd7571ec88abd033521234e941.png

则可统一写成:

a88f03fbadc87d49fc26401c1848e40b.png

写出似然函数:

724fb875b1cba19f07bf811526061e51.png

取对数:

99ce92e88b5f642ce6c88aa57690f0b2.png

求解参数可以用梯度上升:

先求偏导:

c4780708fe2139f6a4f52a75dde5ee02.png

再梯度更新:

08d97e97c7147819e5f7089c3aca9dab.png

常用的是梯度下降最小化负的似然函数。

那么为什么逻辑回归要使用极大似然函数呢?

  1. 因为我们想要让 每一个 样本的预测都要得到最大的概率,即将所有的样本预测后的概率进行相乘都最大,也就是极大似然函数.
  2. 对极大似然函数取对数以后相当于对数损失函数,由上面 梯度更新 的公式可以看出,对数损失函数的训练求解参数的速度是比较快的,而且更新速度只和x,y有关,比较的稳定。
  3. 为什么不用平方损失函数呢,如果使用平方损失函数,梯度更新的速度会和 sigmod 函数的梯度相关,sigmod 函数在定义域内的梯度都不大于0.25,导致训练速度会非常慢。而且平方损失会导致损失函数是 theta 的非凸函数,不利于求解,因为非凸函数存在很多局部最优解。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值