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

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,一经查实,立即删除!

相关文章

洛谷P3205合唱队——区间DP

题目&#xff1a;https://www.luogu.org/problemnew/show/P3205 枚举点&#xff0c;分类为上一个区间的左端点或右端点&#xff0c;满足条件便即可&#xff1b; 注意不要重复(当l2时)。 代码如下&#xff1a; #include<iostream> #include<cstdio> using namespace…

远程连接server问题

开启Windows防火墙后&#xff0c;当远程连接Server服务器时被拒绝&#xff0c;其解决方法如下&#xff1a;1、启动Windows防火墙。开始 > 设置 > 控制面板 > Windows防火墙。缺省情况下&#xff0c;防火墙是启用的&#xff0c;这是推荐的设置。2、点击“例外”选项卡。…

STM32开发环境

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

看完「大江大河2」

昨晚熬夜看完&#xff0c;说下自己的想法虽然不能做到百分之百的感同身受&#xff0c;但是确实被剧中的情景所感染&#xff0c;想做成大事情&#xff0c;需要经历的磨难一定也会很大&#xff0c;正如很多年前老水打篮球说的那句「管理人&#xff0c;远远比技术更难」。相比于老…

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

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

一个女程序员的创业人生:胆识也是一种能力 作者:秋镇菜

我在28岁生日那天电信一个副总劝我出来开公司算了&#xff0c;然后想了一天第二天就去工商局注册了&#xff0c;从有开公司的想法到工商局注册仅仅一天时间&#xff01;然后2003年8 月份拿到营业执照&#xff0c;根本不知道安全是怎么一回事情&#xff0c;找北大方正一个技术副…

[SDOI2016]排列计数

Description 求有多少种长度为 n 的序列 A&#xff0c;满足以下条件&#xff1a;1 ~ n 这 n 个数在序列中各出现了一次若第 i 个数 A[i] 的值为 i&#xff0c;则称 i 是稳定的。序列恰好有 m 个数是稳定的满足条件的序列可能很多&#xff0c;序列数对 10^97 取模。Input 第一行…

听说有人不了解柔性数组

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

STM32启动文件——startup_stm32f10x_hd.s

STM32启动文件——startup_stm32f10x_hd.s 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、启动文件的作用 &#xff08;关于启动代码的作用&#xff0c;前面已经提到过了&#xff0c;这里再啰嗦一下&#xff09; &#xff08;1&#xff09;初始化…

Transformer模型拆解分析

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

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

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

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

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

在tinyalsa上抓取音频

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

STM32——GPIO(1)

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

数据库实操——pandas写入数据库数据

1、Mysql &#xff08;1&#xff09;插入数据 因为pymysql不识别除%s之外的其他字符&#xff0c;例如%d&#xff0c;%f&#xff0c;因此&#xff0c;将sql语句的values全部设置为%s def insertdata(data,table_name,connect):c_name str(data.columns.tolist()).replace(&q…

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

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

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

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

STM32——GPIO(2)

STM32——GPIO 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 /* GPIO_InitTypeDef结构体 */ typedef enum {GPIO_Speed_10MHz 1, //枚举常量&#xff0c;值为 1&#xff0c;代表输出速率最高为 10MHzGPIO_Speed_2MHz, //对不赋值的枚举变量&a…

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

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

BootStrap 用法

1 下载bootstrap组件 2 在jsp页面中加入bootstrap <link rel"stylesheet" type"text/css" href"css/bootstrap.min.css "> <script type"text/javascript" srcjs/bootstrap.min.js></script> <script type&qu…