机器学习之面经


今天来写一份面经,与大家分享:(这个只是一个我回答的答案,只是提供一个参考,希望对大家有所帮助,如果有改进的地方可以在下方给出评论,大家一起学(涨)习(薪))
1.这个预测怎么做的特征,为什么做这个特征,多少特征,xgb的深度 和 树的颗数大致是多少
(1)首先要介绍下这个项目原始数据中有多少特征,分别什么含义,例如有入住日期、订单日期、订单量等等
(2)根据入住日期为x轴,订单量为y轴,绘制了一个折线统计图,发现具有周期性质,所以在入住日期上提取出月份、星期几等特征
(3)依据(2)中计算的月份、星期几等做的统计特征,包括均值、方差、中位数、最大、最小等
这里中位数比较中,因为用的MAE这种指标,所以中位数比较重要。
一共大概有30~40特征
xgb树深度和树的颗数要结合你的数据量、特征维度等进行设置。

2.你参加这个比赛,能打到这个名次与其他选手有什么区别,或者比他们好在什么地方,差在什么地方?
这个我回答:没看过别人的solution,以后可能会看看,至于有什么好的地方,可以介绍下特征,如何思考的,还有哪些需要改进的。
比如说利用了NLP的word2vec对item进行了处理。

3.为什么离开上一家公司
这个你懂的,当然是想深入发展了

4.linux启动了好多python脚本,用一行命令去关掉所有python脚本
ps -ef | grep -i "python" | cut -d " " -f2 | xargs -I{} kill -9 {}
然后解释下思路,主要考察一下命令掌握情况,上面这么写是会有问题的,主要是cut命令的用法。思路!思路!思路!

5.能介绍下xgb么?和lgb有什么区别?
可以结合论文,然后介绍下xgb是用泰勒展开,取到二阶导数
lgb速度要比xgb快,使用了直方图方法、并且可以处理category类型的特征。

6.svm能介绍下么?
就是推导,这个要自己看下公式,我写到一半就不让写了,可能觉得无聊了

7.LR(逻辑回归)损失函数?怎么来的?为什么这么定义?里面取log是为了什么?
这部分也是考察对LR的推导。一步一步写出来即可,前提假设为二项分布,取log可能是在数值计算方面因为都是小数,所有最后连乘可能就接近0了,还有就是通过对似然函数求对数,然后通过梯度下降进行优化。

8.如何选择的训练集和验证集?
如果里面包含时间,当然后最后几个月、几个星期或几个小时做验证集合,这个根据业务要求;
如果是不平衡分类的话,可以用分层采样;
也可以使用k折交叉验证。

9.如何防止过拟合的?
这个可以说一说正则化,如果深度学习可以用dropout
还有就是BN,怎么做的归一化
卷积操作如何做的,每一个像素和卷积核对应点相乘在求和
早停止,切出来一部分数据进行验证,当评价指标在N轮迭代中不在上升了,就停止(可能早停止不会防止过拟合,我是在这里简单和面试官说了一下)。

10.训练和验证集的学习曲线gap什么情况?
gap会有,但是不要太大,比如说可能会有0.01这种GAP

11.针对某个项目问评价指标是什么?然后接着会问怎么在具体业务中来衡量这个到底是否好呢?
AUC,auc评价模型的好坏,但是在有些问题上还是要看准确率和召回率,也就是在具体业务中,还是要关心准确性,例如:如果判断是否会产生购买行为,AUC是很高,但是实际中还是关心模型判断为具有购买行为的用户到底有多少。

12.面试过程中可能无意间问到别的问题。
例如,为什么这么切分训练集和测试集合,会不会有问题?缺失值怎么处理?有没有异常值,有的话怎么处理的?
这些问题,都需要在你的业务中仔细了解一下,或者准备一下常用的方法,例如去异常的方法,均值+-3倍的方差,利用分位数来处理异常值;缺失值怎么填充,可以利用历史同期的等等。
已邀请:

要回复问题请先登录注册