19届实习面试
一、CVTE(自然语言处理) 40min
1.希尔伯特空间是什么,线性空间是什么
2.sigmoid函数形式,其导数形式是啥
3.dropout原理,和DAE区别
4.svm核函数的用处
5.autoencoder为什么要加噪音,怎么加的噪音
6.常用的中文分词算法
7.word2vec中有那些方法是用来提高计算效率的
8.项目中你觉得做的最好的地方
9.bagging和boosting区别,哪个是独立建树的
10.贝叶斯公式,哪个是先验概率哪个是后验概率
11.朴素贝叶斯的朴素表现在哪里,举例子
HR面 5人一小时
他们公司hr考察的比较多,其中涉及家庭,父母职业,自己失败点各种
二、海康威视(大数据算法工程师) 40min
从机器学习算法问到数据结构问到开发语言问到sql问到spark问到深度学习
1.svm核函数哪几种,怎么个算法,核函数需要满足什么条件
解决非线性问题是采取一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题,设原空间,新空间是,定义从原空间到新空间的变化(映射):
核函数:设x是输入空间(欧式空间),H为特征空间(希尔伯特空间),如果存在一个从X到H的映射,满足,称为核函数,为映射函数,式中为和的内积
核函数的充要条件:设K: 是对称函数,则为正定核函数的充要条件是对任意的,i=1,2…m,对应的Gram矩阵(向量内积组成的矩阵):
为半正定矩阵:所有的特征值不小于0
常用核函数:1.多项式核函数
2.高斯核函数
3.字符串核函数
2.svm怎样判断超平面是否分割好了,还是应该加软间隔或者是换核函数
3.给你姓名,判断性别,无附加样本空间
4.spark中算子,map和flatmap,mappartition的区别
map是对rdd中的每一个元素进行操作;
flatmap会将所得答案进行展平
mapPartitions则是对rdd中的每个分区的迭代器进行操作
5.sql语句,一句话写出全班男生成绩与男生平均成绩差异,女生成绩与女生平均成绩差异
when sex=’男’ then (score – (select avg(score) from table where sex=’男’)) end as delta from table
6.svm重要参数
C是惩罚系数,即对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差。
gamma是选择RBF函数作为kernel后,该函数自带的一个参数。隐含地决定了数据映射到新的特征空间后的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的个数影响训练与预测的速度。
7.xgboost中gbtree和gblinear区别
booster:基学习器类型,gbtree,gblinear 或 dart(增加了 Dropout) ,gbtree 和 dart 使用基于树的模型,而 gblinear 使用线性模型
8.xgboost如何调参防止过拟合
9.N个数中选出topk最大/最小数的最优时间复杂度
创造一个存放k个最小数的容器,先取前k个树构造一个大顶堆,后面的n-k个数依次和大顶堆的顶(最大值)比较,如果后面数较小,则替换顶,并把该数字放在堆中合适位置,直到遍历完所有数。
使用快排中的partition思想。
①我们设定partition函数的哨兵为key=lists[left],在partition函数中完成一轮比较的结果是,比key大的数都在其右边,比key小的数放在其左边。完成该轮后返回其left=right时left的值。
②我们判断left的值是比k大还是小:
如果left的值比k大,说明上轮partition之后,lists中前left个小的数在左边,其余的数在其右边,我们还需要把寻找范围缩小,下次找的时候只在数组前面left个数中找了。
如果left的值比k小,说明上轮partition之后,前left个数找的太少了,我们需要再往数组的后面找。
10.RNN,gru,lstm,attention区别,为什么说能防止梯度消失
11.仔细推导lstm和attention
12.pandas中用每一列平均数填充缺失值怎么写
HR面 12min
1.说一个项目经历,最大的挑战是什么
2.参加什么活动,喜欢干什么
3.未来规划,为什么想来杭州,考虑定居吗
4.本科成绩排名,硕士成绩排名,拿过什么奖学金
。。。
三、阿里(数据分析师)一面 40min
1.介绍一下你自己
2.你为什么选择统计这个专业
3.介绍你的项目,挖的很深很深,总体就是你怎么做的,你为什么这样做,为什么会有这个结论,数据来源在哪,怎样衡量数据准确性,样本覆盖率,以及去噪音等等,以及怎么判断你真的去除了噪音…
4.还是问项目,搜索广告是什么,你认为商业价值在哪…
四、腾讯 PCG 应用研究-机器学习岗 1h10min
视频面试,真的是面的最长的一次,感觉整个人都被掏空,但是跟随面试官是真的学到了很多,感觉大厂都是更加注重于基础知识,对于项目更加注重的是你为什么这么做,你的思维方式,而不是你做了什么,所以在面试准备中应该经常思考一下,综合对比一下
1.抠项目,特别特别细,这个项目中输入维度是多少?经过embedding层维度是多少,经过卷积核维度又变成了多少?卷积核你设置了多少个?为什么这么设置?你要对你的网络结构非常清楚,并且表达流利
2.为什么用了dropout,意义是什么,参数是怎么设置,dropout在训练集和测试集上分别是怎么使用的
3.BN层作用是啥,测试一条数据如何得到参数呢,为什么还要再仿射变换,如果输入一条数据,那均值和方差怎么取。
4.为什么用了最大池化和平均池化拼接
5.用了dropout,为什么还要用BN,会冲突吗?
6.项目中特征问题,你在项目中做了什么,你是怎么想的,为什么设置这个参数,你有尝试过其他参数吗。
7.lgb中你设置了多少颗树,树的深度呢,那如果用随机森林参数如何设置
8.lgb叶子结点分裂对于连续的和离散的有什么区别,分别是怎么分裂的
在对离散特征分裂时,每个取值都当作一个桶,分裂时的增益算的是”是否属于某个category“的gain。类似于one-hot编码
在Xgb中需要将离散特征one-hot编码,和连续特征一起输入训练,这样做是为了达到在cart树中处理离散特征的方式一致,即每次选择一个离散特征对应的样本作为一类,剩下的所有特征值对应的样本作为一类。不按照扫描切分,因为扫描切分会导致后续的子树中特征组合变少。
9.autoencoder和pca的区别在哪,为什么不用pca
10.集成学习对方差和偏差的影响
面试官说对偏差没有什么影响但也可能降低(没有啥支撑),但是会降低方差(这个是有理论支撑的)
五、百度金融 算法岗 50min
在线编程,算法题
1.对于有重复出现数字的数组取出现频率最高的topk个
2.对于无重复数字的数组取最大topk大的数,时间复杂度为O(n)
3.一群运动员打比赛,一些运动员已经打过比赛,分出胜负,现给这些运动员排序,排序要求如下
a.若运动员打过比赛,胜的排在负的前面
b.没打过比赛的运动员排序则无要求
c.不存在环
4.一群运动员坐成一怕,每个运动员体重已知,现给运动员分馒头,要求如下
a.每个运动员至少分一个馒头
b.运动员体重比左右两边高,则分的馒头数要多于左右两边的
c.给定运动员的座位顺序和体重,问至少需要多少个馒头
5.spark中wordcount写一下
6.spark中每个ua带一个值,你要计算ua后面带的值的平均值
7.spark中对于TB级大数据计算acc你怎么设计
8.为什么用树模型
9.xgboost和lightgbm的区别
10.说一下项目中你特征怎么做的
11.说一下arima模型
12.你知道FM模型吗,说一下
13.测度论学过?
六、随手科技 算法工程师 共50min
1.介绍项目
2.GBDT+LR中取叶子结点是干什么?
3.为什么用树模型
4.讲一下boosting算法
5.讲一下梯度下降,梯度下降一度会到最优点吗?鞍点是什么?解决办法呢?
学习率是什么?学习率一般怎么设置?有什么办法吗?
6.LR的损失函数说一下,和交叉熵的区别是啥,softmax公式
7.python底层有了解过吗,比如sort函数的实现
8.用过sql吗,对spark框架熟悉吗,hive和sql的区别在哪,c++会吗
9.你从你的项目中学到最大的是什么
Hr面 30min
1.对我们公司了解吗
2.参加过什么活动吗,社团?兴趣爱好是什么
3.爸妈工作是什么,以后想在哪发展为什么
4.讲一个你做项目的过程
5.你平时是如何学习的呢,为什么写blog,什么时候开始写的?github呢
七、百度 机器学习/数据挖掘/深度学习岗 1h
1.最长回文字符串,时间复杂度(在线编程)
2.二叉树深度最优搜索时间复杂度,比如说搜索某一个叶子结点
3.细问项目,平常看了哪些paper
4.你对数据挖掘的概念,拿到一份数据你的流程是怎样的。
5.boosting和bagging算法
八、芒果tv 算法工程师
一面是群面,7人一组,20min,5张报纸做一个塔,要求稳固的前提下,用料最少,最美观,第一次群面,全程懵逼,没怎么发言也过了
二面是技术面,介绍了一下项目,问了二分法,海量数据查询问题,就收到了offer。这里说一下,长沙这边面试学习基本都是湖大,中南的,师大的都非常少,长理的我只知道有我一个。。。