携程秋招算法岗位面试题分享
作者:互联网
问题1:Jieba分词的原理是什么
1.首先用正则表达式将中文段落粗略的分成一个个句子。
2.将每个句子构造成有向无环图,之后寻找最佳切分方案。
3.最后对于连续的单字,采用HMM模型将其再次划分。
限时1元秒杀>>机器学习工程师特训 第7期【双12限时秒杀,12月14日恢复原价】 - 七月在线 12月16日开营!
问题2:特征工程的常用方法
1.对时间戳处理
2.对离散型变量进行独热编码
3.对连续型变量进行分箱/分区
4.特征缩放
5.特征选择
6.特征衍生(特征交叉)
问题3:随机森林和GBDT区别
随机森林采用的bagging思想,而GBDT采用的boosting思想。
这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。
虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。
Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。
组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。
组成随机森林的树可以并行生成;而GBDT只能是串行生成。
对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。
随机森林对异常值不敏感;GBDT对异常值非常敏感。
随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。
随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。
问题4:xgboost和lightgbm区别
1、内存更小
XGBoost 使用预排序后需要记录特征值及其对应样本的统计值的索引,而 LightGBM 使用了直方图算法将特征值转变为 bin 值,且不需要记录特征到样本的索引,将空间复杂度大大降低,极大的减少了内存消耗;LightGBM 采用了直方图算法将存储特征值转变为存储 bin 值,降低了内存消耗;LightGBM 在训练过程中采用互斥特征捆绑算法减少了特征数量,降低了内存消耗。
2、速度更快
LightGBM 采用了直方图算法将遍历样本转变为遍历直方图,极大的降低了时间复杂度;LightGBM 在训练过程中采用单边梯度算法过滤掉梯度小的样本,减少了大量的计算;LightGBM 采用了基于 Leaf-wise 算法的增长策略构建树,减少了很多不必要的计算量;LightGBM 采用优化后的特征并行、数据并行方法加速计算,当数据量非常大的时候还可以采用投票并行的策略;LightGBM 对缓存也进行了优化,增加了 Cache hit 的命中率。
问题5:LSTM的结构
包括遗忘门,输入门和输出门三种。
GRU与LSTM区别
(1)LSTM和GRU的性能在很多任务上不分伯仲;
(2)GRU参数更少,因此更容易收敛,但是在大数据集的情况下,LSTM性能表现更好;
(3)GRU 只有两个门(update和reset),LSTM 有三个门(forget,input,output),GRU 直接将hidden state 传给下一个单元,而 LSTM 用memory cell 把hidden state 包装起来。
限时1元秒杀>>机器学习工程师特训 第7期【双12限时秒杀,12月14日恢复原价】 - 七月在线 12月16日开营!
标签:面试题,12,LightGBM,训练,携程,GBDT,随机,秋招,LSTM 来源: https://blog.csdn.net/julyedu_7/article/details/121863357