机器学习面试——逻辑回归和线性回归

1、什么是广义线性模型(generalize linear model)?

普通线性回归模型是假设X为自变量,Y为因变量,当X是一维的,y是一维的,共进行n次观测,则

Y_{i}=wx_{i}+b

其中,w是待估计的参数,称为回归系数,b是随机误差(统计学相关书籍会写e_{i}),服从正态分布,称该模型为一元线性回归。当X为多维时,y是一维,称模型是多元线性回归,公式为

Y_{i}=w^{T}x_{i}+b

因为b是服从正态分布的,重要假设:因变量也服从正态分布。

广义线性模型是做了两点补充,一是因变量不一定是服从正态分布,而是推广到一个指数分布族(包含正态分布、二项分布、泊松分布等);二是引入联接函数g,g满足单调,可导,自变量和因变量通过联接函数进行关联。常见联接函数有对数函数、幂函数,平方根等。

Logits 回归就是广义线性模型,随机误差项服从二项分布。

2、介绍LR(线性回归),原理推导

线性回归的推导通常有两种方式:正规方程求解,梯度下降法

线性模型:y=w^{T}x+b

均方误差是求解线性回归的评估指标,则损失函数为均方损失,公式为L = ((w^{T}x+b)-y_{i})^{2}

求解偏导数:L = ((w^{T}x+b)-y)^{2} =(w^{T}x-y)^{T}(w^{T}x-y) =y^{T}y+x^{T}ww^{T}x-x^{T}wy-y^{T}w^{T}x

\frac{\partial L}{w}=y^{T}y+x^{T}ww^{T}x-x^{T}wy-y^{T}w^{T}x =0+2x^{T}xw-2x^{T}y=0

最终化简为w = (x^{T}x)^{-1}x^{T}y

局部加权线性回归:为解决欠拟合问题,通过核方法进行局部加权。

当特征比样本数量多时,输入数据X矩阵的逆可能不存在,因此引入正则化。

Lasso回归:引入L1正则化项,L1比L2更稀疏,目标函数为

L = ((w^{T}x+b)-y_{i})^{2}+\lambda \left \| w \right \|_{1}

Ridge回归:引入L2正则化项

L = ((w^{T}x+b)-y_{i})^{2}+\lambda \left \| w \right \|_{2}^{2}

3、介绍LR(逻辑回归),原理推导

概念:

几率:是指一个事件发生的概率和该事件不发生的概率比值。

线性模型是可以进行回归学习的,常见的模型是线性回归,但是如果进行分类任务呢?找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。考虑到二分类,其输出标记是[0,1],可以将线性模型的预测值转换为0或1,首先考虑单位阶跃函数

 但是单位阶跃函数不连续,可以考虑换一个近似单位阶跃函数的替代函数,并单调可微,则考虑对数几率函数(sigmoid函数),将预测值转换为接近0,1的值

经过函数变形,可得:

为几率,反映了x作为正例的相对可能性,为对数几率(logit),在用线性回归模型的预测结果去逼近 真实标记的对数几率,因此,其对应的模型称为"对数几率回归" (logistic regression ,亦称 逻辑回归) 。

因为y只取0,1,则条件概率分布如下,假设=h(z),则=1-h(z),可以通过极大似然估计来求解w,b。

似然函数为:\prod \left [h(z)) \right ]^{y_{i}}\left [1-h(z)) \right ]^{1-y_{i}},其中,h(z)=\frac{1}{1+e^{-z}},z=w^{T}x+b,解释z是可以转换为z=\begin{bmatrix} x_{11},.... , x_{1m},1 \\ x_{21},.... , x_{2m},1 \\ x_{n1},.... , x_{nm},1 \end{bmatrix}\cdot \begin{bmatrix} w_{1}\\ ...\\ w_{m}\\ b \end{bmatrix}=\begin{bmatrix} w_{1}x_{11},.... ,w_{m} x_{1m},b \\ w_{1}x_{21},.... , w_{m}x_{2m},b \\ w_{1}x_{n1},.... , w_{m}x_{nm},b \end{bmatrix}=w^{T}x,将b值加入到矩阵中,一下计算z=w^{T}x

对数化,求得对数似然函数,问题变成了以对数似然函数为目标函数的最优化问题:L(w,b)=y_{i}logh(z))+(1-y_{i})log(1-h(z))

对数似然函数进行求偏导(链式法则),\frac{\partial L}{w}=\frac{\partial L}{h(z)}\cdot \frac{\partial h(z)}{z}\cdot \frac{\partial z}{w}

\frac{\partial L}{h(z)}=y_{i}\frac{1}{h(z)}+(1-y_{i})\frac{1}{1-h(z)}

\frac{\partial h(z)}{z}=-\frac{e^{-z}}{(1+e^{-z})^{2}}=h(z)(1-h(z))

\frac{\partial z}{w}=x

组合为:

\frac{\partial L}{w}=\frac{\partial L}{h(z)}\cdot \frac{\partial h(z)}{z}\cdot \frac{\partial z}{w}=y_{i}\frac{1}{h(z)}-(1-y_{i})\frac{1}{1-h(z)}*(h(z)(1-h(z))*(x_{i})=(y_{i}(1-h(z))-(1-y_{i})h(z))x_{i}=(y_{i}-h(z))x_{i}

优化策略:梯度下降法、牛顿法

每次迭代对参数进行更新:

梯度下降法(一阶导信息):w_{i+1}= w_{i} -\alpha \frac{\partial L}{w}\alpha是步长。

牛顿法(二阶到信息):w_{i+1}=w_{i}-\frac{​{f}'(w_{k})}{​{f}''(w_{k})}

4、常见优化算法?

梯度下降法:分为随机梯度下降,批量梯度下降,mini-batch梯度下降

随机梯度下降:局部最优解,随机选取样本进行优化,收敛速度慢,不支持并行

批量梯度下降:一次迭代,对所有样本进行计算,当函数时凸函数时,容易求得最小值,但是收敛速度较慢。

mini-batch梯度下降:是随机梯度下降和批量梯度下降的折中,

牛顿法:在迭代时,需要计算Hessian矩阵,当维度较高时,计算Hessian矩阵较困难。

拟牛顿法:不用二阶偏导数而构造出可以近似海塞矩阵(或海塞矩阵的逆)的正定对称阵。

5、介绍一下L0,L1,L2

模型选择的典型方法是正则化,正则化是结构风险最小化策略的实现,在经验风险后边加一个正则化项或罚项。正则化的作用就是选择经验风险与模型复杂度同时较小的模型。常见的正则化方式有:

L0:是指向量中非0的元素的个数

L1:先验服从拉普拉斯分布,是向量各个元素的绝对值之和,可以使得学习得参数具有稀疏性。

\lambda \left \| w \right \|{_{1}}

L2:先验服从高斯分布,是向量各个元素的平方和的1/2方,防止模型过拟合。

\lambda \left \| w \right \|_{2}^{2}

6、逻辑回归和线性回归的区别和联系?

联系:都是线性模型,在求解超参数时,都可以使用梯度下降等优化方法

区别:

  • 逻辑回归是解决分类问题,线性回归解决回归问题,即逻辑回归的因变量是离散值,线性回归的因变量是连续值
  • 逻辑回归是用极大似然估计建模(交叉熵损失函数),线性回归是最小二乘法(均方误差)
  • 逻辑回归是假设y服从0-1分布,线性回归假设y服从正态分布

7、逻辑回归和SVM对比

联系:都是线性模型

区别:

LR的损失函数是交叉熵损失函数,SVM是合页损失函数(hinge loss)

SVM只考虑支持向量,需要样本数较少。

8、LR的优缺点

 优点: 1)速度快。 2)简单易于理解,直接看到各个特征的权重。 3)能容易地更新模型吸收新的数据。 4)如果想要一个概率框架,动态调整分类阀值。

缺点: 特征处理复杂。需要归一化和较多的特征工程

4、比较LR和GBDT?

(1) LR是一种线性模型,而GBDT是一种非线性的树模型,因此通常为了增强模型的非线性表达能力,使用LR模型之前会有非常繁重的特征工程任务;

(2) LR是单模,而GBDT是集成模型,通常来说,在数据低噪的情况下,GBDT的效果都会优于LR;

(3) LR采用梯度下降方法进行训练,需要对特征进行归一化操作,而GBDT在训练的过程中基于gini系数选择特征,计算最优的特征值切分点,可以不用做特征归一化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32开发环境

STM32开发环境 宗旨:技术的学习是有限的,分享的精神是无限的。 一、MDK安装 MDK 是一个集代码编辑,编译,链接和下载于一体的集成开发环境( KDE )。MDK 这个名字我们可能不熟悉,但说到 KEIL …

机器学习面试——XGBoost,GBDT,RF(上)

1、常见的集成思想 bagging:基学习器之间并行训练,且学习器之间没有依赖,像是集体决策的过程,每个个体都进行单独学习,再通过投票的方式做最后的集体决策。常见的算法有随机森林 boosting:基学习器之间串…

听说有人不了解柔性数组

1 引言 定长数组包在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024。结构体如下:// 定长缓冲区 struct max_buffer {int len;char data[MAX_LENGTH]; };数据结构的大小 &…

Transformer模型拆解分析

资源来自:DataWhale 学习资料 最近看了DataWhale 的Transformer图解,突然对Transformer的结构图有了更加清晰的理解,特此记录。 1、大框架 Transformer是由6个encoder和6个decoder组成,模型的具体实现是model变量里边&#xff0…

设计模式学习笔记六:.NET反射工厂

1. 简述 通过前面的学习,我们以传统的方式实现了简单工厂,工厂方法和抽象工厂,但是有些场合下如此处理,代码会变得冗余并且难以维护。假设我们要创建交通工具。可以是汽车,火车,轮船等&#xff…

在unity 中,使用http请求,下载文件到可读可写路径

在这里我用了一个线程池,线程池参数接收一个带有object参数的,无返回值的委托 ,下载用到的核心代码,网上拷贝的,他的核心就是发起一个web请求,然后得到请求的响应,读取响应的流 剩下的都是常见的…

在tinyalsa上抓取音频

我们经常会遇到这样的问题,应用读取到的音频有问题,需要在tinyalsa里面读取音频来确认是底层音频有问题,还是应用处理之后存在的问题。所以,这个patch就出现了代码的逻辑很简单,主要是在pcm_read的时候,同时…

STM32——GPIO(1)

STM32——GPIO 宗旨:技术的学习是有限的,分享的精神是无限的。 【对单片机的操作就是控制IO口】 一、GPIO(通用输入输出口) 1、选定需要的引脚(对应哪一个IO口); 2、配置需要的功能&#xf…

【opencv学习笔记八】创建TrackBar轨迹条

createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便。首先大家要记住,它往往会和一个回调函数配合起来使用。先看下他的函数原型: int createTra…

父母悄悄给自己买房,我很生气,要怎么调整心态?

——问题我是独生子,今年满24岁刚上研一(普通211)。家庭四川小城市,情况一般,父母二人体制内月薪总计一万元以内,家里积蓄20W-30W,公积金情况不清楚。从小母子关系比较僵硬,母亲小学…

语音处理入门——语音的声学处理

语音的声学处理通常称为特征提取或者信号分析,特征是表示语音信号的一个时间片的矢量。常见的特征类型有LPC(线性预测编码)特征和PLP(感知线性预测编码),该特征称为声谱特征,使用形成波形的不同…

基础呀基础,用二极管防止反接,你学会了吗?

使用新的电源,第一次给设备供电时,要特别注意电源的正负极性标注。比如电源适配器,铭牌上面有标注插头的极性。这个符号说明插头的里面是正极,外面是负极,即“内正外负”。但是也有反过来的,下面这款是“内…

李宏毅的可解释模型——三个任务

1、问题 观看了李宏毅老师的机器学习进化课程之可解释的机器学习,课程中对主要是针对黑盒模型进行白盒模型转化的技巧和方法进行了简单介绍,详细细节可以参考《Interpretable Machine Learning》。像一些线性模型、树形模型是可解释的ML model&#xff…

柔性数组和环形队列之间的故事

之前的文章,讲解了柔性数组,有很多人留言,提到一些问题。刚好,之前发关于环形队列的文章有些问题,这次刚好拿出来一起说一下,并用柔性数组实现一个环形队列。柔性数组的上一篇文章环形队列C语言实现文章1、…

STM32——时钟系统

STM32——时钟系统 宗旨:技术的学习是有限的,分享的精神是无限的。 一、时钟树 普通的MCU,一般只要配置好GPIO 的寄存器,就可以使用了。STM32为了实现低功耗,设计了非常复杂的时钟系统,必须开启外设时钟才…

目标检测发展路程(一)——Two stage

目标检测是计算机视觉领域中非常重要的一个研究方向,它是将图像或者视频中目标与其他不感兴趣的部分进行区分,判断是否存在目标,确定目标位置,识别目标种类的任务,即定位分类。传统的目标检测模型有VJ.Det[1,2],HOG.De…

都2021年了,c/c++开发竟然还能继续吃香??

年后就迎来了金三银四,你准备好2021年的跳槽涨薪计划了吗?今天我就来给大家分享,c/c作为老牌开发常青树,还能与java/python/go较较劲的岗位和技术在哪里!同时,给大家整理了2021年系统全面技术学习资料。文末…

目标检测模型——One stage(YOLO v5的模型解析及应用)

1. 简介 目标检测分为Two stage和One stage,只使用一个网络同时产生候选区域并预测出物体的类别和位置,所以它们通常被叫做单阶段检测算法(One stage)。本篇文章只讲One stage模型,常见的模型有YOLO,SSD。 目标检测发…

腾讯回应QQ读取用户浏览器历史记录

腾讯QQ官方认证账号在知乎回应“QQ扫描读取所有浏览器的历史记录”表示,PC QQ存在读取浏览器历史用以判断用户登录安全风险的情况,读取的数据用于在PC QQ的本地客户端中判断是否恶意登录。所有相关数据不会上传至云端,不会储存,也…

OCR系列——总体概述

最近参加了百度Paddle的动手学OCR课程,特此做一个学习总结。 1. 简介 OCR(Optical Character Recognition,光学字符识别)是计算机视觉重要方向,传统的OCR一般面向扫描文档类对象,现在的OCR是指场景文字识…