一面(远程视频):
1. 自我介绍
2. 聊项目,项目中用到了随机森林、SVM、svd++,所以聊了这一块
3. 随机森林的原理,入参,树的划分,gini系数,信息增益啥的
4. svd++ 原理,和svd, bias-svd的不同。
5. L1, L2正则,我从导数、稀疏性、权重衰减方面解释了一下
6. xgboost的原理
7. 给一个数组,求最大子区间的和,剑指offer原题,大概思路就是当前和小于0,就把下个数直接当成当前和,大于0,就累加比较大小
8. 给一个无序列表,范围是0~99的整数,其中缺了一些数,找出缺的数是什么。 思路就是用字典。
9. 问面试官问题
二面(远程电话):
1. 竟然没有自我介绍
2. 还是聊项目,主要是项目的细节部分。
3. 项目里对模型的调优。
4. 给两个很大的list, 求差集。 思路是两种,python的话,可以用set,另一个思路就是用字典,把长的list作为key,遍历短的list
5. 有100个数据,每个数据都有一个特征,其中有的特征是重复的,特征种类大于30个,找出特征不重复的前20个数据。思路还是万能的字典,把特征当成key,统计key对应的value值的数量
6. 问面试官问题
远程面试算法题都是给思路就行,没有要去写代码,可以和面试官交流,面试官也会给一些引导,算法题都倾向于先实现再优化,所以可以尽量多给几个方案,然后每个方案都会让你给出时间复杂度。