这次笔试分为选择和编程两部分,选择题20道40分,编程题三道60分。
1. 选择题
不记得具体题目了,大致回忆一下能想到的考到的知识点:
- 在Logistic Regression 中,如果同时加入L1和L2范数,会产生什么效果()
A. 可以做特征选择,并在一定程度上防止过拟合
B. 能解决维度灾难问题
C. 能加快计算速度
D. 可以获得更准确的结果 - 极大似然估计(MLE)
- 点击率预测
- 随即森林:给定包含N个样本的数据集,经过m次有放回的随机抽样操作,得到T个含m个训练样本的采样集,每个样本数据集被选中的概率():
解析:每个采样集只使用了初始训练集中约63.2%的样本【每个样本被抽到的概率是1/N,样本不被抽到概率就是1-1/N,总共抽了m次,第m次试验后样本不被抽到的概率是 ( 1 − 1 / N ) m (1-1/N)^m (1−1/N)m,当m趋近于无穷大时, ( 1 − 1 / n ) m = 1 / e (1-1/n)^m=1/e (1−1/n)m=1/e,约等于36.8%】,另外抽不到的样本叫做out-of-bag(OOB) examples,这部分数据可以用于对决策树的性能进行评估,计算模型的预测错误率,称为袋外数据误差。 - XGBOOST算法的时间复杂度和非缺失样本的数量呈线性关系,因此效率很高。
2. 编程题
2.1 列车时刻
题目:
有a, b, c, d四个目的地,输入规定好的列车时刻表,输入顺序为出发顺序,相同目的地的列车归为一组,要求尽可能多的分组,输出对应的各组中的车数,输出顺序与出发顺序一致,以空格隔开。
测试例:
输入:
aabbccd
输出:
2 2 4
2.2 ROC-AUC值
没想到会这么考NLP基础啊…
题目:
第一行输入样本数N,然后输入N行,每行输入样本类别和预测概率值,空格隔开(1为正样例,0为负样例),计算AUC的值。
输入:(不记得测试例的顺序了,只记得预测值了,后边根据输出值推测一下吧)
10
1 0.9
0 0.7
1 0.6
0 0.55
1 0.52
0 0.4
1 0.38
0 0.35
1 0.31
0 0.1
输出:
0.68
2.3 字符串匹配
题目:
输入多行,每行一组字符串,如果该组字符串可以由某一字符串重复得到,输出True; 如果该字符串不可由某一字符串重复得到,那么输出False。注意:要求使用KMP算法实现,参加笔试时候没注意,快结束才看到,心累。
测试例:
输入:
abdacabda
abdacabdac
输出:
False
True