前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于逻辑回归,面试官都怎么问

关于逻辑回归,面试官都怎么问

作者头像
NewBeeNLP
发布2021-12-09 14:35:45
7260
发布2021-12-09 14:35:45
举报
文章被收录于专栏:NewBeeNLPNewBeeNLP

作者 | Chilia 整理 | NewBeeNLP

最近准备开始如同考研一般的秋招复习了!感觉要复习的东西真的是浩如烟海;) 有2023届做算法的同学可以加入我们一起复习~

1. 介绍

逻辑回归假设数据服从「伯努利分布」(因为是二分类),通过「极大化似然函数」的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

决策函数

「x」是m维的样本特征向量(input);y是标签label,为正例和负例。这里

\theta

是模型参数,也就是回归系数。则该样本是正例的概率为:

y = \frac{1}{1+e^{-(w^{T} x + b)}} = \frac{1}{1+e^{-\theta^T x}}

这里使用sigmoid函数的目的是为了把普通的线性回归问题转化为输出为[0,1]区间的二分类问题。

sigmoid函数

损失函数

在统计学中,常常使用极大似然估计法来求解参数。即找到一组参数,使得在这组参数下,我们的数据的似然度(概率)最大。

设:

\begin{aligned} P(Y=1|x) &= p(x) \\ P(Y=0|x) &= 1- p(x) \end{aligned}\\

那么,似然函数为:

L(w)=\prod_i[p(x_{i})]^{y_{i}}[1-p(x_{i})]^{1-y_{i}}

为了更方便求解,我们对等式两边同取对数,写成「对数似然函数」

\sum_{i=1}^N y_ilogp(x_i) + (1-y_i)log(1-p(x_i))

从另一个角度来讲,对于一个样本来说,它的「交叉熵损失函数」为:

-[(1-y)log(1-\sigma(\theta^Tx))+ylog(\sigma(\theta^Tx))])

所有样本的交叉熵损失函数为:

\frac{1}{N}\sum_{i=1}^N-[(1-y_i)log(1-\sigma(\theta^Tx_i))+y_ilog(\sigma(\theta^Tx_i))]

这就是对数似然函数取相反数嘛!所以,在逻辑回归模型中,「最大化对数似然函数和最小化损失函数实际上是等价的」

梯度下降求解

对一个样本做梯度下降,

\theta^{t+1} = \theta^{t} - \alpha \frac{\partial L(\theta)}{\partial \theta} = \theta^{t} - \alpha (y_i - \sigma(\theta^Tx_i))x_i)
并行化

LR的一个好处就是它能够并行化,效率很高。使用小批量梯度下降:

\theta^{t+1} = \theta^{t} - \alpha \sum_{i=1}^m\frac{\partial L(\theta)}{\partial \theta} = \theta^{t} - \alpha \sum_{i=1}^m(y_i - \sigma(\theta^Tx_i))x_i)

这些操作均可用矩阵运算来并行解决。

2. 常见面试题

Q1: LR与线性回归的区别与联系

逻辑回归是一种广义线性模型,它引入了Sigmoid函数,是非线性模型,但本质上还是一个线性回归模型,因为除去Sigmoid函数映射关系,其他的算法都是线性回归的。

逻辑回归和线性回归首先都是广义的线性回归,在本质上没多大区别,区别在于逻辑回归多了个Sigmoid函数,使样本映射到[0,1]之间的数值,从而来处理分类问题。另外逻辑回归是假设变量服从伯努利分布,线性回归假设变量服从高斯分布。逻辑回归输出的是离散型变量,用于分类,线性回归输出的是连续性的,用于预测。逻辑回归是用最大似然法去计算预测函数中的最优参数值,而线性回归是用最小二乘法去对自变量量关系进行拟合。

Q2: 连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果?例如CTR预估中,特征大多是离散的,这样做的好处在哪里?

答:在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:

  • 离散特征的增加和减少都很容易,易于模型的快速迭代,容易扩展;
  • 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
  • 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。具体来说,离散化后可以进行特征交叉,由M+N个变量变为M*N个变量;
  • 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。
Q3:逻辑回归在训练的过程当中,如果有很多的特征高度相关,或者说有一个特征重复了100遍,会造成怎样的影响?

先说结论,如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。

为什么我们还是会在训练的过程当中将高度相关的特征去掉?

  • 去掉高度相关的特征会让模型的可解释性更好
  • 可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。

- END -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NewBeeNLP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 介绍
    • 决策函数
      • 损失函数
        • 梯度下降求解
          • 并行化
          • 2. 常见面试题
            • Q1: LR与线性回归的区别与联系
              • Q2: 连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果?例如CTR预估中,特征大多是离散的,这样做的好处在哪里?
                • Q3:逻辑回归在训练的过程当中,如果有很多的特征高度相关,或者说有一个特征重复了100遍,会造成怎样的影响?
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档