铁粉巨献:某独角兽公司数据挖掘工程师岗位 2000字面试总结

这是第 205 篇原创

建议阅读时间:5分钟

前言

感谢铁粉:地球球长,奉献出自己的面试经验,面经总结的非常认真、详细、用心。这是球长同学第二次无私地奉献他的面经了,上一篇面经 ( @all: 新浪 机器学习算法岗 面试实录 ) 在这里。这两篇我相信对接下来寻找机器学习、数据挖掘相关职位的小伙伴都有莫大的帮助。真的非常感动!让我们衷心祝愿地球球长同学工作顺利,心想事成!

最近,有的小伙伴在微信群里积极给予别人帮助,有的把他们的笔记奉献出来让更多的小伙伴学习。在此,也一并感谢你们!

好的,言归正传,看看地球球长总结的热心面经吧!

面试岗位:数据挖掘工程师

是某独角兽公司校招,面试地点是在北京某高校里面。

一 面

1. 逻辑回归损失函数

(我的回答:对数损失,或者预测值与实际值的交叉熵损失)

1. 如果样本不均衡,需要在损失函数上做操作,该怎么处理?

(我的回答:这个之前没遇到过,不过处理样本均衡可以通过下采样和上采样等方法)

2. 伯努利分布概率为P,执行N次中k次发生,用极大似然估计估算P的值

(我的回答:在纸上写出了二项式分布的概率函数作为似然函数,P为参数,求argmax, (似然函数求导为零得到)P=k/N)

3. L1,L2正则化。L1正则化项怎么求导

(我的回答:L1,L2正则化主要为了防止过拟合,控制模型复杂度,使其具有更好的泛化能力。

L2正则化从贝叶斯理论看,参数分布服从高斯先验。L2范数是各个参数平方和,是每个wi^2 < C 的条件下最小化训练损失(经验损失)Loss,根据拉格朗日乘子法可以得到L = 训练损失 + 入L2范数;L2能起到压缩参数的作用

L2正则化从贝叶斯理论看,参数分布服从拉普拉斯先验。L1范数是各个参数绝对值之和,是每个|wi| < C 的条件下最小化训练损失(经验损失)Loss,根据拉格朗日乘子法可以得到L = 训练损失 + 入L1范数;L1范数能起到是参数稀疏化作用,又是可以作为特征选择。

同时,L0正则化是真正起到稀疏化作用,可以认为L1正则化是L0正则化的近似,因为L0正则化是NP问题,可能是非凸的,而且不易求导比较难用凸优化求解。

L1正则化在0点出不可导,一般做近似平滑处理,其他点得到W的符号)

(当时感觉回答完这个问题,进二面没啥问题了)

4. 决策树算法以及防止过拟合方法。信息增益率比信息增益多了什么?

(我的回答:我先介绍了自信息,信息熵(自信息的期望),信息增益等相关概念。

基于信息增益的ID3,基于信息增益率的C4.5,基于基尼指数的CART等

剪枝:后剪枝,预剪枝(调节树的深度,叶子的样本个数等方式),随机森林Bagging

信息增益率相比于信息增益可以认为做了一个约束,除以原样本信息熵,避免用信息增益因类别过多一下子就全部分开,分成很矮,叶子很多的树(这里表达可能不太准确)。

5. 写出SVM损失函数,如果过拟合,怎么参数调整C

(我的回答:我写出了正则项,让他给点提示。他说合页损失,给我画了损失函数图并和LeRu做比较。C求和(yif(xi))+ 1/2 ||w||,如果过拟合,应该减小C(这里如果除以C,那么参数就被整合到了正则项里面,可能更好理解)。还有如果因用到核函数过拟合,降低核函数复杂度)

6. 随机森林与boosting区别

(我的回答:他们都是集成学习方法,学习多个有差异且有一定精确度(>50%)的弱分类器。主要区别随机森林用到并行,boosting通常情况下串行)(这个不是很完整)

7. Xgboost在GBDT基础上做了哪些改进

(我的回答:Xgboost是陈天奇大神在GBDT基础上提出来的,

最大差别损失函数用到了二阶导数的信息。

在特征粒度裂解上用到了并行处理,加快速度。

特征裂解位置预先计算,做了排序并缓存,按百分位选择,而不是像GBDT全部遍历贪心选择。

用到的损失函数用到自定义的GINI系数。

同时基分类器不仅仅是回归树,可以是加了L1L2正则化的线性分类器等)

(在网上看了好多改进,说了这几个主要的)

二 面

1.求sqrt()

2. 一个数组,求除了某元素自身位置之外的其他元素累积,生成一个同长度的数组。要求不能用除法,时间复杂度O(n),辅助空间O(1)

3 又问了SVM参数怎么调

4 又问了决策树怎么防止过拟合

5 问了L1,L2正则化的作用,为什么

6. 决策树算法:特征是连续值,特征是离散值的处理

7. 一道几何概型的简单题

(画个图求面积比)

8 趣味题,如果一把枪弹夹里有六个子弹,其中有两个子弹会打死人,四个不会有受伤。假如面试官打了自己一枪没死,现在把枪交给你,你得朝自己开一枪,问开枪之前,你是否会让弹夹旋转,切换子弹。

三 面

就问了一个问题:

如何用int_8位整型数据,模拟两个int_32位整型数据相乘(写代码实现)

(给了许多提示还是没写出来,挂了。)

原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2018-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏星回的实验室

特征选择的评估方法

数据挖掘中,特征选择的过程就是计算特征与样本观测结果的相关性。卡方检验和互信息是用得较多的计算方法。

1981
来自专栏PPV课数据科学社区

【学习】R语言与机器学习(分类算法)logistic回归

由于我们在前面已经讨论过了神经网络的分类问题,如今再从最优化的角度来讨论logistic回归就显得有些不合适了。Logistic回归问题的最优化问题可以表述为:...

2914
来自专栏AI科技大本营的专栏

AI技术讲座精选:用端到端训练模型进行语法智能纠错

现有的拼写检查系统可以识别拼写错误,但无法识别出语法错误,本文的亮点在于使用流行的 seq2seq + attention 模型,在大规模拼写检查数据集上进行训...

6629
来自专栏AILearning

【机器学习实战】第14章 利用SVD简化数据

第14章 利用SVD简化数据 <script type="text/javascript" src="http://cdn.mathjax.org/mathj...

3657
来自专栏小鹏的专栏

TensorFlow 聊天机器人

上一次提到了不错的学习聊天机器人的资源,不知道小伙伴们有没有去学习呢。 自己动手做聊天机器人教程 我最近每天都会学一点,拿出解读来和大家分享一下。 本文结...

3076
来自专栏杨熹的专栏

用 TensorFlow 做个聊天机器人

上一次提到了不错的学习聊天机器人的资源,不知道小伙伴们有没有去学习呢。 自己动手做聊天机器人教程 我最近每天都会学一点,拿出解读来和大家分享一下。 本文结构...

3746
来自专栏专知

【干货】理解特征工程Part 1——连续数值数据(附代码)

8851
来自专栏AI研习社

博客 | Word2Vec 学习心得

好嘛博主食言了。不过本文没什么干货,主要是前后看了大概一个星期,反复去读源码和解读文章,终于感觉这东西不那么云山雾罩了。同时也发现网上很多材料有点扯淡,99% ...

1542
来自专栏WOLFRAM

Wolfram 语言的新功能:增强的求导功能

2158
来自专栏AI2ML人工智能to机器学习

一步一步走向锥规划 - LP

一般来说凸优化(Convex Optimization, CO)中最一般的是锥规划 (Cone Programming, CP) 问题, 前面我们介绍了最简单...

1092

扫码关注云+社区

领取腾讯云代金券