数据分析面试,到底怎么准备机器学习知识?

共 2776字,需浏览 6分钟

 ·

2020-09-08 03:53



如果你的简历上,有机器学习模型的名词,可能收获的面试问题是:

“你用过XXXX吧?是用什么语言做的?讲一下原理和调参的过程吧?

如果你的简历上,没有机器学习的字眼,可能收获的面试问题是:

“了解机器学习吗?挑一个你熟悉的讲讲吧?”

明明在JD里,写着【懂模型】是加分项,

但在面试里,却好像怎么也绕不开这个坎……

除了计算机和数学系的专业课大概率有所涉及,像诸多的经济学、管理学、通信、材料学科,基本机器学习这一块只能靠自我驱动了……

其实我是一个看见数学公式推导就很头疼的人,别说现在说不全常用希腊字母的读音,搁大学那会儿我的高数简直是在生死线挣扎,靠抱各路大神的大腿才勉强及格。

但就算是这样,我也能保证自己在花费了时间和精力后,能够在缓慢的思考中用梯度下降法把逻辑回归的求解过程推导出来,也能够顺利的说出决策树中信息增益、信息增益比、基尼指数的计算逻辑和应用方法。

当然,再难一点,当面试官问题GBDT\XGBOOST的推导过程时,我只能很诚实的说“不好意思,这个推导过程我不会,不过我能说出它的原理。”

不过几十场面试里,也就渺渺几个人让我真的说出(写下)推导的过程(毕竟面的不是算法岗),大多都是问一些原理、应用场景的问题,这倒是正中我下怀——凡是能够用文字表达的东西,我都很乐意提前整理好文档。

那,非专业的人、或者数学基础不太好的人,我们可以怎么样去准备文档里【机器学习】这个PART呢?
 



从简单到复杂。毕竟没有接触过这些东西,在开始准备的时候,可以先整理好逻辑回归、决策树这种简单的算法,手推的过程会更加友好。作为零基础的人,不建议一上来就非要推出个CNN……


从原理到应用。原理、优缺点和应用恰好是最容易用文字来表达的内容,也是面试的时候喜欢问的东西。


【可选】手推。从时间成本的角度上看,我认为手推是准备过程中【可选】的内容,从现在到7月秋招开启,短短的2-3个月还需要实习、写论文、复盘,在这些庞大的工作量下,可以、也应该有选择性的放弃一些知识。


延伸提问。在回答完某一个算法的原理问题后,很多面试官喜欢进行延伸知识点提问,比如从逻辑回归关联到L1L2正则;从朴素贝叶斯关联到贝叶斯公式的原理;从决策树关联到Boosting和Bagging……在学习完所有的基础内容后,可以着手整理这一块的东西。



 
   好的,我们来看一下,针对每一个算法,我们应该准备下哪些东西?





   我以简单的决策树作为案例,看一看需要准备哪些文字版的内容。

   STEP1:整体概况

 决策树是一种对样本进行分类的树形结构,也能够进行回归预测。决策树主要包含3种结点:根节点——初始结点;叶节点——最终分类结果结点;内结点——树内部进行判断的条件结点-即特征,在决策树中,每一个样本都只会被一条路径覆盖。

STEP2:生成原理

决策树常见的生成算法有三种,ID3,C4.5以及Cart。以ID3算法为例介绍一下决策树的生成原理。

第一步,计算信息增益。ID3算法是利用信息增益进行特征选择的。信息增益是指,已知某一特征xi后,使得样本整体特征不确定性减少的程度。

第二步,在每个节点上利用信息增益进行特征的选择,在选择特征时,优先选择信息增益最大的特征。直到剩余特征的信息增益小于阈值、或已经没有特征可以选择时终止。

第三步,对决策树进行剪枝优化。构建决策树的损失函数(与预测误差以及树的复杂度有关),将每一个叶节点回缩到上一层父节点,对损失函数最小的叶节点进行修剪。

C4.5算法的过程与ID3类似,只是使用了信息增益比而非信息增益进行计算。信息增益比是指在信息增益的基础之上乘一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。而CART算法则是使用基尼指数进行计算。基尼指数是指样本被某一特征分割后,整个样本集合不确定性程度的大小,基尼指数越小,样本集合被分割后的不确定性越小。

STEP3:优缺点

决策树的优势包括:输出树形图可解释性较强,if-then形式,逻辑很好理解;对输入数据的属性要求低(分类,连续);

劣势包括:当数据集特征维度很多时,决策树会生成许多枝干,或者树非常深,陷入过拟合;判定过程很规则化,容易被识破并攻击。

STEP4:应用场景

   决策树的应用场景十分广。可以用来评估贷款风险;可以辅助医生选择诊断模型;也可以用于垃圾邮件的分类判断。

STEP5:手推

决策树这一块需要手推的东西比较少,主要是应该掌握:

【熵】、【信息增益】、【信息增益比】、【基尼指数】、【损失函数】的公式;

CART算法【回归树】、【分类树】的生成方式推导。

这些内容多在纸上推推算算记记,就差不多OK了。

STEP6:延伸提问

信息增益比和信息增益相比,有什么优势?
(可以从信息增益比的定义出发解释)

如何解决决策树的过拟合问题?
(剪枝、交叉验证、筛选特征)

预剪枝和后剪枝?
(参考树的高度、叶子结点的数量、不纯度等、在生成决策树前(后)进行剪枝)

随机森林。都问完决策树了,再问个随机森林是很正常的。
(这里同样从整体概况、原理、优缺点等进行整理)

Bagging和Boosting的区别?决策树常被作为基础分类器用于更多复杂的算法里。而说到分类器的集成就逃不开Bagging和Boosting。
(样本的抽取;样本的权重;是否并行计算等)


GBDT\XGBOOST。害,谁叫这几年kaggle和天池动不动就用了这俩兄弟,他们又恰好可以是决策树这种弱分类器的集成算法呢?
(同(4))




     机器学习不是我擅长的东西,但却是必须准备的知识。

     好在也许面试官们理解化学本科、管理学硕士的我可能对算法真的不会特别深入的了解,倒也不会过多的追问原理细节。

     也有可能我面试的大多数数分岗位都是偏业务的,机器学习的确是加分但并非必需,面试官不会对这块过分关心。

    最后,献上学习资料吧。

李航《统计学习方法》
这个不多数,人手一本,机器学习入门必备。如果只想选择一份资料,那就是它了。(最新版本如下)


吴恩达《Machine Learning》
Andrew Ng在 Coursera 上开设的机器学习入门课《Machine Learning》已经被太多人推荐过了,能够坚持看完基本就OK了。

shuhuai008《机器学习-白板推导系列》  
     不得不说,这两年B站上涌出了一堆鱼龙混杂学习资料,但也不乏精品。这个《机器学习-白班推导系列》更加适合数学基础好,对手推算法有需求的人。

善用百度google
各色博客里早就把这些算法翻来覆去总结透了。

浏览 63
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报