V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ITrecruit1
V2EX  ›  酷工作

职分享 | 全球顶级数据科学家面试指南

  •  1
     
  •   ITrecruit1 · 2019-11-27 22:44:26 +08:00 · 1314 次点击
    这是一个创建于 1583 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,我是 Lucy@FinTech 社区。

    为了不在同一个地方失败两次,让自己对他人有用,这篇文章致力于帮助那些希望追随他们的热情成为 /改进数据科学家的热情的人。我坚信即使你不想换工作,你也必须继续接受面试,因为你在面试中学到了很多东西。没有比面试更快的学习方法了。数据科学是一个需要不断提高技能的领域,同时每天都要在机器学习算法中发展新的基本概念。所以,让我们直接深入探讨一些问题和答案,你可能会在下次面试中有所帮助。

    网站:www.fintechgl.com
    公众号:fintech 社区
    微信:janelj78
    我们组建了一个微信群,只要从事数据相关工作的小伙伴就欢迎加入,交流技术硬核!

    链接: https://mp.weixin.qq.com/s/IXxnIgtb4nihxrdg70cpzg
    Q1:你能解释决策树的成本函数吗?



    答:在回答这个问题之前,重要的是要注意决策树是一种通用的机器学习算法,可以执行分类和回归任务。因此,它们的成本函数也不同。



    分类类型问题的成本函数:

    基尼值是一个我们可以理解成本函数之前的重要概念,所以让我们首先解释一下基尼值。


    其中“p”是第 i 个节点上训练实例中 k 类实例的比率。那是什么意思?让我们从下面的一个例子来理解。图 1 显示了深度为 2 的 Iris 决策树的简单可视化。






    顶层是根节点。将训练集划分为一组决策的概念在算法中相当简单。例如,在这里,Iris 数据集根据根节点上名为“花瓣宽度”的单个特征分为两个子集。如果花瓣宽度小于或等于 0.8,则算法转到(左侧)深度 1 决策树。如果没有,它会进入右侧的深度 1 决策树。其中,它根据“花瓣宽度”的附加功能进一步划分实例。深度 1,右节点有 100 个实例,0 个实例属于 Iris Setosa,50 个实例属于 Iris Versicolor,剩余 50 个实例属于 Iris Virginica。



    所以这个节点的基尼值是 0.5:


    类似地,在深度 1 的左节点,Gini 杂质为零,因为所有训练实例都应用于同一个类。节点本质上是“纯”的。



    了解完基尼值是什么,我们就来谈谈答案吧。决策树使用分类和回归树( CART )算法进行训练是基于一个简单的概念,即数据集将使用单个特征( k )和阈值( t )分成两个子集。在 Iris 数据集中,特征为“花瓣宽度”,阈值为 0.8。它如何选择 k 和 t ?它搜索产生最纯子集的对( k,t )。因此,该算法试图最小化的代价函数由下式给出:


    其中 G 左或右表示子集的基尼值,m 表示子集的数目。



    回归型问题的成本函数:

    对于回归树,成本函数相当直观。我们使用残差平方和( RSS )。方程 III 显示回归型树的成本函数,其中“y”是地面真值,“y-hat”是预测值。






    Q2:共线性如何影响你的模型?



    答:共线性是指两个或多个预测变量彼此密切相关的情况。下面的图 2 为共线变量的示例。变量 2 严格遵循变量 1,Person 相关系数为 1。所以很明显,当输入机器学习模型时,其中一个变量的行为会像噪声一样。


    在回归型问题中,共线性的存在可能会成为问题,因为很难区分共线性变量中每个变量对结果的影响。或者换言之,共线性降低了回归系数估计的准确性,并导致误差增加。这将最终导致 t 统计量的下降,因此,在共线性存在的情况下,我们可能无法拒绝零假设。



    检测共线性的一个简单方法是查看预测变量的相关矩阵。这个矩阵中的一个绝对值较大的元素表示一对高度相关的变量,因此也表示数据的共线性问题。但是,并非所有共线问题都可以通过检查相关矩阵来检测:即使没有变量对具有特别高的相关性,也可以在三个或多个变量之间存在共线性。这种情况称为多重共线性。在这种情况下,评估多重共线性的更好方法是计算方差膨胀因子( VIF ),而不是检查相关矩阵。可以使用以下公式计算每个变量的 VIF:




    式中,R 平方项是变量 X 到所有其他预测因子的回归。如果 VIF 接近或超过 1,则存在共线性。当面对共线问题时,有两种可能的解决方案。一是删除冗余变量。这可以在不影响回归拟合的情况下完成。第二种解决方案是将共线变量组合成一个单一的预测因子。





    Q3:你如何向外行解释深层神经网络?



    答:神经网络( NN )的概念最初起源于人类大脑,用于识别模式。神经网络是一套通过机器感知、标记和聚类原始输入数据来解释感官数据的算法。任何类型的真实世界数据,无论是图像、文本、声音甚至时间序列数据,都必须转换成包含数字的向量空间。



    深层神经网络中的“深层”一词是指神经网络由多层组成。而这些层由进行计算的节点组成。节点的比喻是人脑中的一个神经元,当它遇到足够的刺激时就会开火。节点将来自原始输入的数据与其系数或权重结合起来,这些系数或权重用来抑制或放大输入。然后,在图 3 所示的求和节点处求和输入和权重的乘积,然后将其传递给激活函数,该激活函数确定该信号是否以及在多大程度上应进一步通过网络来影响最终结果。节点层是这样一排神经元样的开关,当输入通过网络馈送时,这些开关可以打开或关闭。






    深层神经网络不同于早期的神经网络,如感知器,因为它们是浅层的,只是由输入和输出层以及一个隐藏层组成。








    Q4:3 分钟内,你会怎样展示你的 take-home project ?



    答:典型的数据科学面试过程是从一个带回家的数据分析项目开始的。我已经做过的两个 take-home projects,时间跨度可能会随着项目的复杂性而变化。第一次,我有两天时间用机器学习并提供了执行摘要来解决一个问题。而第二次给我两周时间来解决一个问题。显而易见的是,第二次处理类不平衡数据集,这是一个困难得多的问题。因此,3 分钟的类似于推销的面试问题可以让你展示你对手头问题的掌握。请务必从你对问题的解释开始;你解决问题的简单方法;你在方法中使用了什么类型的机器学习模型以及为什么?通过明确你的模型的准确性来结束这问题。



    我相信这是你面试时的一个非常重要的问题,它能让你证明你是数据科学领域的领导者,并能用你所掌握的最新和最棒的工具解决一个复杂的问题。





    Q5:模型正则化是什么意思?在线性模型中,如何实现正则化?



    答:正则化是用来约束机器学习模型的术语。限制或减少机器学习模型过度拟合的一个好方法是减少自由度。自由度越小,模型越难过拟合数据。例如,正则化多项式模型的一个简单方法是减少多项式自由度的数量。然而,对于线性模型,正则化通常是通过约束模型的权重来实现的。因此,Lasso 回归、Ridge 回归和 Elastic Net 模型有三种不同的方法来约束权重,而不是线性回归。为了完整起见,我们先从线性回归的定义开始:



    Y_hat 是预测值。

    n 是特征数。

    x_i 是第 n 个特征值。

    θ是模型参数,也称为特征权重。

    线性回归模型的均方误差成本函数定义为:






    其中θ^T 是θ的转置(行向量而不是列向量)。



    Ridge 回归:是线性回归的正则化版本,即在成本函数中添加一个额外的正则化项。这就迫使学习算法不仅要拟合数据,而且要使模型权重尽可能小。注意,正则化项只应在训练期间添加到成本函数中。一旦模型经过训练,就需要使用未规范的性能度量来评估模型的性能。




    超参数 alpha 控制要使模型正则化的程度。如果α为零,那么 Ridge 回归就是线性回归。



    Lasso 回归:最小绝对收缩和选择算子回归(简单称为 Lasso 回归)是线性回归的另一个正则化版本。与 Ridge 回归一样,它在成本函数中添加了一个正则化项,但它使用权重向量的 L1 范数,而不是 L2 范数的一半平方。




    Lasso 回归的一个重要特征是它倾向于完全消除最不重要特征的权重(即,将它们设置为零)。换句话说,套索回归自动执行特征选择并输出稀疏模型(即,具有几个非零特征权重)。



    Elastic Net 回归:这是 Ridge 回归和 Lasso 回归之间的中间地带。正则化项是 Ridge 和 Lasso 正则化项的简单混合,可以用 r 来控制。当 r=0 时,Elastic Net 等价于 Ridge 回归,当 r=1 时,Elastic Net 等价于 Ridge 回归。






    最好至少有一点正则化,通常应避免简单的线性回归。Ridge 回归是一个很好的默认值,但是如果在特定的数据集中只有几个特性是有用的,那么应该使用 Lasso 回归。一般来说,Elastic Net 回归优于 Lasso 回归,因为当特征数大于实例数或多个特征强相关时,Lasso 回归可能会表现出不稳定的行为。



    这些都是在面试中经常被问到的高频问题,虽然看起来简单,但其中所考察的对机器学习背后原理上的掌握还是很高。毕竟万丈高楼平地起需要的是夯实的基础,希望大家在平时准备面试的时候能多梳理基础知识以及吃透背后的算法。做到知其然而知其所以然,才能在面试中无往不利。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2817 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:24 · PVG 23:24 · LAX 08:24 · JFK 11:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.