机器学习面试备忘

面经

机器学习算法一定要推导!
面试地点:字节跳动-北京

面试官是一个技术部的大牛,基本是半英文交流的。首先给了一张纸去写一个递归,然后开始问算法相关的问题,如Xgboost和GBDT、以及欠拟合和过拟合的解决方法。当然截止目前,其实都还算是简单的,最后,最伤心的事情来了,推导算法!从最简单的决策树C4.5开始,能推导出几个,加几分。心态直接崩了,好像只成功推导了C4.5,CART,HMM,LR,SVM,其他的都不成功。
面试官笑了笑,也没问其他问题,也没让我问问题,心很忐忑。过了一周左右,我终于放心了,是真的凉了
面试官的问题:

问对于logistic regession问题:prob(t|x)=1/(1+exp(w*x+b))且label y=0或1,请给出loss function和权重w的更新公式及推导。
答这个题其实是BAT1000题中的一道,w的更新公式可以由最小化loss function得到,也可以用极大似然函数方法求解,过程略...大家可以直接搜BAT面试1000题。

面试知识点掌握

  1. 知识点梳理

https://github.com/shunliz/Machine-Learning

  1. 算法推导

https://shunliz.gitbooks.io/machine-learning/content/

附: 机器学习十大算法

http://panchuang.net/2018/09/17/%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%8D%81%E5%A4%A7%E7%AE%97%E6%B3%95/

  1. 如何选择算法

微软如何选择 Azure 机器学习工作室算法:

https://docs.microsoft.com/zh-cn/azure/machine-learning/studio/algorithm-choice#algorithm-notes

机器学习算法优缺点对比及选择(汇总篇):

https://ask.hellobi.com/blog/shuzhiwuyu/19008

盘点最实用的机器学习算法优缺点分析,没有比这篇说得更好了:

https://cloud.tencent.com/developer/article/1111064

面试中常见问题

softmax loss在遇到样本不均衡的情况下,能够做出那些改进?
答focal loss, 加上temperature 或者 label smooth

算法相关的简单问题(GBDT、Xgboost等
Logistic Regression优化方程的证明。

两道算法题,手写代码。一道基于线性数据结构,一道基于树形数据结构

gbdt:

  • gbdt原理
  • gbdt推导
    • 公式分布推导
    • 残差如何计算
    • 损失函数形式
    • 基于常见损失函数的公式推导
  • boosting体现在哪里
  • 非mse损失时作为残差近似值的数学意义
  • gbdt的weak learner是什么,为什么用CART回归树而不是分类树(分类树残差相减没有意义)
  • CART回归树
    • 节点分裂规则,写出公式
    • 公式中每个值在实际训练中是怎么计算出来的,举例子说明
    • 连续变量节点如何划分
    • 离散变量节点如何划分
  • gbdt的训练过程
    • 做分类预测时如何训练
    • 做回归预测时怎么训练
  • gbdt分类输出
    • 输出概率如何计算
    • 能否计算多分类, 是互斥多分类还是非互斥的?
    • 如果做互斥多分类,在哪一步改进?
  • gbdt调参
    • 调过哪些参数, 各有哪些作用
    • 重要参数为什么有这些作用?从原理出发讲一下
    • gbdt里的subsample作用,为何可以提高泛化,和rf的采样是否相同
    • rf里行采样,列采样解释,作用
    • rf为什么要使得每棵树不一样,数学解释
    • shrinkage作用
  • gbdt学习速率设置
    • 为什么设置学习速率可防止过拟合?
    • 深度学习中常见的学习速率设置方式有哪些? 数学公式
    • gbdt中学习速率是如何使用的?数学解释
    • 通常合理设置学习速率模型会变好,原理是什么
  • gbdt+lr过程

lr:

  • 数学推导, 求导
  • sigmoid why?

svm:

  • svm原理
  • 对偶作用
  • 推导公式

dnn, cnn:

  • 画网络结构
  • 用到的激活函数, relu好处
  • 优化方法, 每种优化的过程, 参数更新公式
  • 动量
    • 可走出局部最小值原因? 数学解释
    • 动量为啥比mini-batch好: 数学解释

正则:

  • l1, l2的作用
  • 为什么l1稀疏,l2权重衰减? 不能画图, 数学解释

不均衡样本:

  • 上采样, 下采样
  • easy-enesmble

多模型对比:

  • gbdt, xgboost, rf
  • lr, 线性模型

特征工程及模型评估:

  • 模型效果评估方式, ROC
  • 模型性能下降的改进
  • 过拟合原因及改善
  • 特征筛选方式

关于GBDT重点关注一下:

  • Boosting算法Bagging算法介绍
  • GBDT基本原理
  • GBDT如何正则化
  • GBDT分裂规则
  • GBDT的“梯度提升”体现在那个阶段
  • GBDT如何做特征选择
  • GBDT为什么使用cart回归树而不是使用分类树
  • 为什么GBDT的树深度较RF通常都比较浅
  • GBDT那些部分可以并行
  • GBDT与RF的区别
  • GBDT与XGBoost的区别
  • xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?

这里有一份答案:
https://blog.csdn.net/xwl198937/article/details/79749048#gbdt%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8cart%E5%9B%9E%E5%BD%92%E6%A0%91%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8%E5%88%86%E7%B1%BB%E6%A0%91

工程算法:

  • 斐波那契数列非递归编程
  • 二叉树遍历
  • 中位数查找,不能对数组排序
  • 合并k个有序数组
  • 假设全球所有人都在一个矩形方格中,每个人有坐标(xi,yi),距离每个人半径为r的范围中的总人数为Ci,现在要求max(Ci),应当使用什么方法进行处理?
  • 如果一个国家发行的钞票面值都是斐波那契里的数字,给s定一个物品价值n,问购买这个物品总共有多少种钞票组合方式。
  • 这里重点关注回答里的算法问题: 如何准备机器学习工程师的面试 ? - 姚凯飞的文章 - 知乎
    https://zhuanlan.zhihu.com/p/29969587

面试总结:
https://www.cnblogs.com/ModifyRong/p/7744987.html

你可能感兴趣的:(机器学习面试备忘)