大厂面经详解系列又来啦! 之前写过 字节跳动-数据分析岗的面经 可戳链接:https://www.nowcoder.com/discuss/751900 近期收到很多私信说想了解『数据科学岗』都考点啥 本篇,就以字节面经作为切入点 挑选几道该岗位的典型题型带大家体验一下 『数据科学岗』的面试真题 (含参考答案+备考Tips) ------正文手动分割线------ 本文结构速览: 一、SQL题 二、机器学习与概率论 三、AB实验 ps.文末有备考Tips~ 一、SQL题 ▌面试真题1 SQL的三种排序方式及其区别? ★ 参考答案 考查窗口函数中的序号函数 ROW_NUMBER()函数会依次进行排序且序号不相同 RANK()函数会依次排序如结果一样序号相同且会跳跃排名 DENSE_RANK()会依次排序如结果一样序号相同且不会跳跃排名 假设现有一张学生成绩表: 下面应用不同的排序方式进行排名: select course_name,student_name,score,ROW_NUMBER()over(partition by course_name order by score desc) AS `row_number` ,RANK()over(partition by course_name order by score desc) AS `rank`,DENSE_RANK()over(partition by course_name order by score desc) AS `dense_rank`from course_score ; Tips: 为方便大家练习,提供表数据集 drop table course_score;CREATE TABLE course_score (course_name varchar(45) ,student_name varchar(45) , score INT );INSERT INTO course_score (course_name, student_name, score) VALUES ('英语','张三',80),('英语','李四',70),('英语','赵五',90),('英语','高六',60),('数学','张三',70),('数学','李四',90),('数学','赵五',90),('数学','高六',40); ▌面试真题2 假设一个表有一列数字1,2,3,4,5,如何转成一行 如下图所示: ★参考答案 考查CASE WHEN和聚合函数 SELECT max(case when number=1 then number end) AS is_number1 ,max(case when number=2 then number end) AS is_number2 ,max(case when number=3 then number end) AS is_number3 ,max(case when number=4 then number end) AS is_number4 ,max(case when number=5 then number end) AS is_number5FROM table_number Tips: 为方便大家练习,提供表数据集 CREATE TABLE table_number (number int);INSERT INTO table_number(number) VALUES (1),(2),(3),(4),(5); 二、机器学习与概率论 ▌面试真题1 随机森林和XGBoost的区别是什么? ★参考答案 随机森林和XGBoost在树生成的原理上存在差异 在避免过拟合问题上的处理也存在较大差异。 下面重点说明一下在避免过拟合问题上,两者算法的处理手段。 ① 随机森林 利用随机采样,对数据样本和特征分别进行抽样,训练出多个树分类器,每个树的生产相互独立。为了避免过拟合: 对训练样本数据进行有放回的抽样,生成K棵分类回归树 假设特征空间有n个特征,每棵树的节点处随机抽取m个特征(m < n) 每棵树最大限度生长,不做任何剪枝 通过多棵树组成森林,分类结果按树分类器投票多少决定 ② XGBoost XGBoost原理可参考 -》『六哥主页简介内以前文章:XGBoost原理解析』 XGBoost本质可以理解为GBDT算法的改进,为了避免过拟合 借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算 在目标函数中加入了正则项,用于控制模型的复杂度 先从顶到底建立所有可以建立的子树,再从底到顶反向进行剪枝,这样不容易陷入局部最优解; 不仅使用到了一阶导数,还使用二阶导数,损失更精确,还可以自定义损失函数; ▌面试真题2 主成分分析的原理以及应用? ★参考答案 ① 主成分分析的原理:『六哥主页简介内以前文章:【数据分析岗】机器学习(二)』 ② 使用场景 维度灾难:也就是变量多,在训练集保持不变的情况下,使用的变量越多,待估参数就越多,学习量上升、学习效率下降。 变量之间的相关性高:变量之间的相关性高,说明数据是有冗余的,数据中的信息是有重叠的。 ③ 业务场景举例: 人脸识别 人口统计学 数学建模 三、AB实验 ▌面试真题1 现在抖音在推荐模块的底层推荐算法进行了优化,预计短视频的完播率会有明显的提升。针对这个问题,如何进行验证? ★参考答案 可以通过AB实验进行效果验证。 ▌面试真题2 针对这个问题如何进行实验构造?介绍一下你检验的过程 ★参考答案 针对打开抖音推荐模块的用户进行随机分组 然后通过假设检验进行验证。 ① 实验设计: 对照组:老推荐算法模型。 实验组:新推荐算法模型 ② 建立假设: 原假设H0:实验组和对照组的人均完播的视频数量无差异。 备择假设H1:实验组和对照组的人均完播的视频数量有差异。 ③ 选择检验统计量 假设每个用户的短视频播放相互独立,根据中心极限定理可知,实验组及对照组的人均完播的视频数量均服从正态分布,根据正态分布的可加性,可得到检验统计量 ④ 选择显著性水平 一般选择第一类错误5%是业界最常用的标准。接下来将两组样本的观看时长均值、方差、样本量计算出检验统计量z中,计算出z的取值结果。 当|z|≥1.96时,认为在第一类错误5%的情况下,新推荐算法对用户人均观看时长有差异。 当|z|<1.96时,认为在第一类错误5%的情况下,新推荐算法对用户人均观看时长无差异 ▌面试真题3 视频的完播率,可以通过沿用前面的检验统计量的构造思路码? ★参考答案 不可以。实验组和对照组的完播率计算的样本不满足样本独立性,所以实验组和对照组的完播率不服从正态分布。 ▌备考Tips 除常规对简历进行深挖以外 字节『数据科学岗』相比一般的数据分析岗 对机器学习模型、因果推断原理要求比较高 可以看看下面的校招数科岗JD要求: 由于字节是典型的注重用数据驱动增长的公司 每天线上会同时运行大量实验快速验证、迭代策略 所以日常工作中会接触到大多因果推断的工作内容 因此无论是在JD要求上,还是面试的时候 也会着重考核AB测试相关的知识 建议大家务必要对AB实验原理进行熟练掌握 学会举一反三,归纳、演绎变体考法 争取做一题,会一类,提高备战效率 以上AB实验面试真题还可衍生其他考点,例如: 该实验的指标如何选取? 实验周期如何确定? 如何确保实验和对照组用户在测试前无差异? ...等等 📌AB实验相关文章推荐阅读: 【数据分析求职】AB实验框架+高频考点汇总(一):https://www.nowcoder.com/discuss/826505 AB实验高频考点!命题面试官大白话讲懂『多重检验』:https://www.nowcoder.com/discuss/1004929 往期分享帖推荐 数据分析岗笔试题型梳理 数据分析——面试考点经验梳理(含真题) 更多文章,可见牛客主页 欢迎交流讨论,希望可以帮助到你~~