携程秋招算法岗位面试题分享

问题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日开营!

携程秋招算法岗位面试题分享

携程秋招算法岗位面试题分享

上一篇:print函数+常用的转义字符


下一篇:1113-七言诗词收集与LSTM自动写诗