一、OPPO提前批(岗位:机器学习算法工程师)
1.1 一面(通过) 2018.07.21
- 手写二叉树前序遍历
- 剑指offer青蛙跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法? 我:采用递归的方式做,f(n) = f(n-1) + f(n-2) n>=3; f(1) = 1; f(2) = 2; 面试官:如果不利用递归方式怎么做? 我:构建一个vector向量,[1, 2, 3, 5 ...] 当前数等于前两个数字的和。面试官:这样做空间复杂度多少?我:O(N) 面试官:有没有更好的方法。我:用两个变量代替f(n-1), 和f(n-2), 每次计算完后更新他们的值。这样做空间复杂度为O(1).
- 简述一下XGBoost? boosting的思想是每一个基分类器纠正前一个基分类器的错误,至于纠正的方式不同所以有不同的boosting算法,比如通过调整样本权值分布训练基分类器对应的AdaBoost,通过拟合前一个基分类器与目标值的误差的负梯度(也不能说是残差,只有在损失函数是平方损失时才能叫残差,一般的损失函数是近似残差)来学习下一个基分类器的方法是gradient boosting
- 单例设计模式
- 决策树分裂条件?
- 信息增益怎么计算?
- 给你两个向量,它们之间的距离计算方式有几种,分别怎么计算,写出计算公式
- 分类问题的损失函数
1.2 二面(挂) 2018.07.21
- auc和f-score的区别
- SVM的工作原理
- 未来三年的的规划
- 你收获最大的一门课程,分别站在自己的角度和别人的角度说一下为什么你的收获大,比别人收获多
- 你关注时事热点吗?说一下你最近关注的热点,你对此有什么看法
- 最满意的一个项目,详细介绍一下
- f-score的表达式
- 最难过的一件事,怎么解决的
- 写代码是如何调优的
- 对于写代码如何看待
- 说一下你的优势
二、多益网络(岗位:人工智能及大数据研发工程师)
2.1 一面 2018.08.16
- 介绍一下自己
- 谈一下你的觉得不错的项目
- 深度学习中的正则化
- 线性回归与逻辑回归的区别
- 链表与数组的存储区别
- QN与DQN的区别
- 你有offer吗
- 你如何看待加班
- 假如你有一千万的信息文本,你如何找出重复最多的前十条
- 冒泡排序
三、阿里巴巴(岗位:机器学习算法岗)
3.1 面试前的了解 2018.08.20
- 卷积核的作用?在图像中或者文本中?(提取特征)
- Pooling层的作用?(扩大感受野,降低参数规模)
- 有没有关注神经网络的可解释性?哪些方法?
- 有没有想过利用RNN结构去处理自动驾驶中关于时间连续的问题?
- CBDT属于集成学习中的哪种结构?损失函数是什么?
- CART的基本结构?
- RELU的正半轴是线性的,怎么实现非线性的呢?(解答)
四、网易互联网(岗位:机器学习算法岗)
4.1 一面 2018.08.29
- 自我介绍
- 编程:给定两个有序链表如L1:{1,3,5}, L2:{2,4,6},输出{6,5,4,3,2,1}
- 项目介绍:基于模仿学习的自动驾驶(负责工作及实现流程);天池工业AI大赛(特征工程、XGBOOST详细介绍:一定看透论文!!!);
- 树结构:当特征值为连续的如0.001,0.0011,0.0011...如何进行分裂
- 模型结构:ResNet50的网络结构
- 介绍一下迁移学习,如何Finetune
五、招银网络(岗位:机器学习算法岗)
5.1 简历面 2018.09.12
- 缺失值如何处理
- 特征工程的处理
- 介绍如何做的模型融合
- 说一下XGBoost与GBDT的区别,是否了解lightgbm, catboost
- 智力题:一条线段随机分成三段,能拼成三角形的概率是多少?
- 如何实现一个链表的逆序
- Python中如何用pandas读取一个很大的文件,这个文件超过了计算机的内存
- 解释一下Python的装饰器