[干货总结] [DS面试系列文章3] Logistic regression面试常见考点解析

原文首发于我的爱思数据科学文章(https://www.acecodeinterview.com/logistic-regression/ )。

我博士毕业后在业界工作了近十年, 在硅谷一线大厂做过Data scientist和Machine Learning Engineer, 以面试官和hiring manager的身份参加过近百场数据科学岗位面试, 最近几年我也帮忙辅导过很多朋友跳槽或转行进入数据科学领域。在这个系列文章中 (https://acecodeinterview.com/tag/data-science/),我和大家分享了我对数据科学领域面试重点知识的一些总结。

在2021年4月26日 (周一) 美西时间下午 5:00 pm,我会给同学们带来一场免费讲座 - 2021北美数据岗面试常见题型讲解 ,给大家细致介绍数据科学岗位面试常见的A/B Testing实验设计和Machine Learning Case Study经典答题思路。欢迎扫描下方海报中的二维码加群参与免费讲座。

这篇文章给大家细致总结 logistic regression相关知识的面试常考点和推荐解答。本文内容纯手打,分享出来希望能和大家一起交流进步。由于在论坛编辑器中无法最好地呈现一些数学符号,我把文中的大部分内容截屏放在了附件中。如果小伙伴们想获得最好的阅读体验,也可以看我在这里发表的原文:https://www.acecodeinterview.com/logistic-regression/ ).

逻辑回归 (Logistic regression) 是最经典的分类模型,在数据分析和建模领域都有非常广泛的应用。作为一种广义线性模型,logisitic regression与很多机器学习理论知识都有紧密的关联,其中包括我在上一篇文章中讲到的linear regression,以及Generalized Linear Model (GLM) ,softmax regression,neural network 等等。因此,在绝大多数 Data Scientist 和 Data Analyst 面试中,logistic regression都是最重要的理论知识考点。在本文中,我会结合数据岗位面试要求和经典例题给大家精炼梳理logistic regression模型的重要知识点,同时结合它与数据科学领域其他知识点的联系,给大家总结常见面试考点。

1. Logistic Regression概念介绍

我们以一个二分类问题为例,简单回顾一下 logistic regression 的应用场景。以下数据表示某流媒体服务运营商在过去一个季度内,客户月均拨打客服电话的次数 (customer service calls) 与客户在季度末取消订阅行为 (unsubscribe) 的数据关系: (如果下面图片看不清楚的话, 可以参考这个链接中的内容: https://www.acecodeinterview.com/logistic-regression/ ).

3

Notes 1: 从上述讨论中可以看到,这个 logistic function 的数学形式并非来自于严格数学推导证明,而是出自研究人员结合具体需求的近似构造。这个 logistic function 的数学形式也是后文中我们会讲的 logistic regression assumption的一部分。

Notes 2: 这里介绍的从 linear regression 到 logistic regression 的转换思想,也是数据岗位面试的考点之一。常见的面试题目是:解释 linear regression 与 logistic regression 两者的区别和联系。要回答好这个问题,首先可以结合上面几幅图讨论两个模型对 outlier 数据处理的不同效果。此外,可以结合后文会介绍的 Generalized Linear Model (GLM) 内容做细致比较。

现在我们得到了 logistic regression 问题中自变量 与因变量 的概率 之间的关系。下一步,我们需要构造 logistic regression loss function,从而求解函数关系中的未知参数。

2. 从两种不同角度理解 Logistic Regression Loss Function

首先,我们沿用在上一篇Linear Regression文章中提到的最大似然估计方法 ( Maximum Likelihood Estimation) ,结合 logistic regression 的概率假设来推导它的 loss function。

Logistic regression的概率分布假设是 [面试常考点]:(如果下面图片看不清楚的话, 可以参考这个链接中的内容: https://www.acecodeinterview.com/logistic-regression/ ).

5

基于上述概率分布假设,我们通过以下证明过程 (简化版) 推导出loss function [面试考点]:(如果下面图片看不清楚的话, 可以参考这个链接中的内容: https://www.acecodeinterview.com/logistic-regression/ ).

8

Notes 1: 上述对 logistic regression loss function的两个不同角度的讨论,也解释了 cross entropy loss 适用于 logistic regression 问题的原因:cross entropy loss 与 logistic regression 的概率分布假设 (Bernoulli distribution & logistic function) 相对应。

Notes 2: 以上我们给出的利用交叉熵定义列出 logistic regression loss function的过程,是一个简化版的推导过程。它的整个描述思路清晰简单,适合在面试中使用。但如果更严格解释的话,其实 logistic regression 构造 loss function时使用的概念是相对熵 (relative entropy),不是交叉熵。在很多资料中,相对熵又被称为KL散度 (Kullback–Leibler divergence)。但由于交叉熵的数学形式更加简单,且与相对熵在取值上只相差一个常数项,因此在绝大多数资料中,我们利用交叉熵的概念来构造 logistic regression loss function。

3. Loss Function数值求解

(如果下面图片看不清楚的话, 可以参考这个链接中的内容: https://www.acecodeinterview.com/logistic-regression/ ).

这并不是巧合,而是因为这两个模型都属于Genearlized Linear Model (GLM), 可以被统一的模型框架进行描述,因此它们之间有很多相似的性质。

4. Generalized Linear Model

GLM 涉及的理论内容比较多,且不是面试考察的重点,因此在本文中,我们仅简单介绍 GLM 的一些基本概念,以此解释 linear regression, logistic regression和其他一些广义线性模型 (e.g. softmax regression) 之间的关系。(如果下面图片看不清楚的话, 可以参考这个链接中的内容: https://www.acecodeinterview.com/logistic-regression/ ).

10 11 12

了解了这部分内容之后,我们就可以更好地回答前面提到的面试题:解释linear regression与logistic regression两者的区别和联系。即我们可以从probability assumptions, GLM link functions等角度进行讨论,这样才是最完整的solution,也最能impress面试官。简单地回答“Logistic regression的label是离散的,linear regression的label是连续的”是远远不够的。

5. 总结

Logistic regression 是数据科学岗位面试中最常见的模型理论知识内容,考点涉及到logistic regression model assumption, loss function推导以及它和其他线性/非线性模型的异同点比较。本文结合面试要求的难度把相关常见考点进行了梳理。除了本文涉及到的内容,logistic regression 也与 neural network 的很多基本概念有密切的关系,比如我们可以把 logistic regression 看做one layer neural network (perception)。其他涉及到的知识点还包括Multi-class classification (softmax regression), 以及logistic regression在不同变种形式下的正则化方法 (Regularization) 等问题。这些内容我会在后续的文章中继续讨论。如果大家对于 logistic regression 有任何其他问题,也欢迎在下方留言区一起讨论。祝大家都能顺利通过面试, 实现职场进阶。