当前位置: 首页 > news >正文

复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥

复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥?

提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性

关于互联网大厂的笔试面试,都是需要细心准备的
(1)自己的科研经历,科研内容,学习的相关领域知识,要熟悉熟透了
(2)自己的实习经历,做了什么内容,学习的领域知识,要熟悉熟透了
(3)除了科研,实习之外,平时自己关注的前沿知识,也不要落下,仔细了解,面试官很在乎你是否喜欢追进新科技,跟进创新概念和技术
(4)准备数据结构与算法,有笔试的大厂,第一关就是手撕代码做算法题
面试中,实际上,你准备数据结构与算法时以备不时之需,有足够的信心面对面试官可能问的算法题,很多情况下你的科研经历和实习经历足够跟面试官聊了,就不需要考你算法了。但很多大厂就会面试问你算法题,因此不论为了笔试面试,数据结构与算法必须熟悉熟透了
秋招提前批好多大厂不考笔试,直接面试,能否免笔试去面试,那就看你简历实力有多强了。


文章目录

  • 复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥?
    • @[TOC](文章目录)
  • 面试官:请你手推LR,它的梯度是啥?
  • LR的典型应用场景:二分类
  • 总结

面试官:请你手推LR,它的梯度是啥?

我们首先会介绍一个函数,也就是我们sigmoid的函数,
有些场景下,也会叫logistic函数,
这个函数其实非常简单,也就是我们这张图,

输入是X,然后,我们有个参数theta,
我们的输入,做了一下加权求和theta*x
在这里插入图片描述

这个是什么样的,我们说它是个典型的一个S型的一个图像,对?这图像有什么特点?
首先,就在原点零的情况?我们说可以往这画对,零,它其实对应的,是等于0.5
可以把零带进去是什么?E的零次方是等于1的,
整体也就是1/2
也就是说我们在原点的时候的话,它是等于0.5,
那么如果随着我们横轴,X轴往右一直是趋向于正无穷大的时候,你这个函数是什么趋向于一的。

也就是说,这个theta乘以X是趋向于无穷大,
那么负C大X趋向负无穷大,
e的负无穷大是等于什么是等于0的,
那么一加零,就等于一和1/1?
总之函数长下面这样

就是说它的值域,是在零到一之间的。
还有是什么?还有就是说它是一个平滑的,对不对,
平滑就方便什么,方便我们做,求微分,
或者说要求导对?
这个函数的一个导数,有一个非常好的一个结果,大家可以去求一下,下图我画出来了
在这里插入图片描述

求得的会发现这个函数的导数,就是等于原先的值乘以一减去原先的值,
也就是说它的导数,非常容易求,很简单,

线性回归linear regression的话,直接是说一个线性函数,直接把它值输出了,
在这里插入图片描述

我们现在logistics regression干啥呢?把y做了一个非线性变换,
那么这个非线性变换拿到这样的一个值相当于什么?

相当于把它压缩到零到一之间,那么压缩到零到一之间,又有什么特点?
因为我们说概率一个元素,它的概率的值是零到一的。
在这里插入图片描述

所以我们可以近似的把这个函数的值域表示成什么?表示成一个概率,
或者说它表示,我们就可以把它近似的看成是一个概率,它主观就是概率的一个定义,对不对?

这个时候我们说我们再来重新的看一下我们这个函数,
首先,我们说这个函数,对我们原始的输入,就是X,就是我们的特征,
然后我们身高体重等等值得你关注的目标是相关的一些特征
首先对每个特征做一下价值求和,做完加权求和之后,我们就拿到了汇总
线性回归拿到的一个值,然后对这个值做一下非线性变换,
压缩到零到一之间,已使得这个零到之间的值,能够表示成概率。
在这里插入图片描述

LR的典型应用场景:二分类

那么我们说这个LR的一个典型的一个场景,就是我们一个二分类的一个任务,
我输入我们的一个X,我们希望它输出是零或者是一,
那么我们对应到我们的LR模型,它用到了sigmoid函数
在这里插入图片描述

首先,我们对我们抽取出来的特征做一个线性变换,
就就直接是对我们加权求和,
再经过一个logistics函数,映射到零到一之间,就认为它是个概率,
我们再加上这个概率的值,与我们的一个阈值0.5进行比较,
那如果大于这个值,我们认为它就是一
小于我们的阈值0.5,认为它就是零,
这样的话,就能够得到我们的一个标签,
也就是说我们的这样的一个变化,
如果为一的概率,是大于0.5的,我们认为什么为一
如果小于0.5个,概率是零
就能够把它标记设置成零,
这个就是我们的一个函数。

经过y预测为1或者0的表达式各种转化
在这里插入图片描述

我们说一个更简便的方式,如上图
也就是说,我不管你的样本是等于Y是等于几,我都可以用这种方式来表示。

现在,假设我们有m个样本,训练样本是独立的,
我假设M的训练样本是独立的,
那么你需要解释每一个样本出现的概率
也就是说在X给定的情况下,我们的Y指定的概率是多少,
就等于它的一个乘积,对不对?【上图】

说白了我们就要求theta
使得上面L(theta)这个最大似然函数尽可能的大

相当于逼迫y_predict=y_groundtruth

但是直接求还不好求,我们讲L取对数吧

在这里插入图片描述
连乘变累加和

咋求l最大值呢,不就是对theta求导数吗?
在这里插入图片描述
经过我文章开头求过的sigmoid的函数的导数公式
各种化简,求到,整理
最后得到了梯度时间上很简单
即使(y-y_predict)*x

y就是真实值,标签
ypredict就是咱们LR模型输出的值
x是训练样本,梯度一出来
更新theta岂不就是很简单
这样就用梯度下降法,将LR的参数theta优化好了

LR就手动推导完成!!!

面试官常问的问题哦这可是


总结

提示:重要经验:

1)LR是线性回归用sigmoid激活之后的概率,线性回归是线性回归问题,而逻辑回归是二分类问题,sigmoid求到很重要,另外,LR的最大似然函数求到很重要
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

相关文章:

  • Java并发 | 18.[锁机制] 轻量级锁(CAS+自旋锁)
  • 【Pytorch】torch.nn.Dropout()
  • 组件通信的方法
  • 【Pytorch】torch. matmul()
  • 【JVM笔记】类型转换字节码指令
  • 聚观早报 | 东方甄选与顺丰、京东合作;拼多多跨境电商平台上线
  • 如何创建并运行java线程呢?
  • dubbo安装跟部署
  • ESP8266-Arduino编程实例-QRE1113红外反射传感器
  • 【Django】REST_Framework框架——Mixin类和GenericAPIView中的视图子类源码解析
  • Springboot、Tomcat启动加载外部指定文件夹下的jar文件
  • MySQL教程 - 索引(Index)
  • 神经网络做预测的原理,神经网络预测空气质量
  • java代码审计的点
  • alsa-lib和alsa-utils移植
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • angular2开源库收集
  • canvas 绘制双线技巧
  • co模块的前端实现
  • Fundebug计费标准解释:事件数是如何定义的?
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • mac修复ab及siege安装
  • Node 版本管理
  • PHP面试之三:MySQL数据库
  • Ruby 2.x 源代码分析:扩展 概述
  • tensorflow学习笔记3——MNIST应用篇
  • Vue组件定义
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 代理模式
  • 动态魔术使用DBMS_SQL
  • 排序算法学习笔记
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何使用 JavaScript 解析 URL
  • 入门到放弃node系列之Hello Word篇
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • raise 与 raise ... from 的区别
  • ​业务双活的数据切换思路设计(下)
  • ###C语言程序设计-----C语言学习(6)#
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (6)STL算法之转换
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (力扣)1314.矩阵区域和
  • (算法)Travel Information Center
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .Mobi域名介绍
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Framework杂记
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @vue/cli 3.x+引入jQuery
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku