当前位置: 首页 > 面试经验 >

日常实习面经:滴滴-数据科学

优质
小牛编辑
106浏览
2023-03-28

日常实习面经:滴滴-数据科学

TimeLine:一面20211109

当时的BG:北邮本硕,管理类专业,一段实习经历:美团商业分析师

写在前面的话:该文档记录日常实习面试的相关问题,面试时间为2021年。以下问题的答案可能存在错误,敬请读者批评指正

一面

1. 数据库种类有哪些?分别举例说明一下?

1)关系型数据库:OracleMicrosoft SQL ServerMySQL

2)非关系型数据库:HBase

2. 简要介绍一下Hive

先介绍HadoopHadoop是一整套大数据生态系统,主要包括:

1)HDFS:海量数据的存储

2)MapReduce:海量数据的分析和计算

3)Yarn:资源管理和作业调度

其中,MapReduce本质上是一类分布式计算框架,底层由Java写成,在实现海量数据的分析和计算上具有一定的开发难度,Hive应运而生。Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射成一张类似关系型数据库的数据表,提供了类似SQL(通常称其为HQL)的查询功能,简言之,Hive是一个将SQL任务转换为MR任务的工具

3. SQL中的join有几种?

4. SQL中如何实现分组排序?


row_number() over(partition by ... order by ...)
rank() over(partition by ... order by ...)
dense_rank() over(partition by ... order by ...)

5. SQL考察

数据表:用户表user_profile,字段有:user_id '用户id',login_date 登陆时间'

找出连续登录时间最长的用户


with a as
(
select user_id, login_date,
row_number() over(partition by user_id order by login_date ASC) as rn
from user_profile
),
with b as
(
select user_id, date_sub(login_date, rn) as login_start
from a
),
with c as
(
select user_id, login_start, count(login_start)as continuous_days
from b
group by user_id, login_start
)
select user_id
from c
group by user_id
having continuous_days = max(continuous_days)

6. 缺失值处理的方式?

1)缺失比例过高直接舍弃

2)均值/众数/中位数填充

3)插值法填充(e.g.牛顿插值法)

4)机器学习算法填充(以想要填充的列为label,其他数据列为features

7. 离散化特征转为连续性特征的方法?

1)顺序型特征有先后顺序,直接作数值变换

2)名义型特征没先后顺序,作one-hotdummy变换

8. 数据集不均衡的解决方法?

1)采用ROC曲线下AUC作为分类判定标准,该指标不会受到样本集分布不均衡的影响

2)过采样和欠采样(基于数据的方法)

过采样,即增加少数类样本集的样本量,如SMOTE算法、Tomek Links算法等

欠采样,即减少多数类样本集的样本量,如Easy Ensemble算法、NearMiss算法等

3)调整正负样本的权重惩罚(基于算法的方法)

改变模型训练时的目标函数,对少数类样本分类赋高权重,多数类样本分类赋低权重

4)转化为单类学习、异常检测(基于算法的方法)

注:从第9题开始,其后问题的答案均可在《百面机器学习》这本书中得到,十分推荐大家阅读一下这本书

9. 是否了解集成学习?简要介绍一下思想?

注:回答围绕baggingboosting即可,并举例说明

1)bagging:随机森林RF

2)boostingGBDT/XGBOOST/LightGBM

10. 偏差和方差的概念?和bagging、boosting有什么关系?

1)偏差bias:模型输出值与真实结果的偏离程度,boosting能有效改善这一点

2)方差variance:模型输出值与模型输出值均值的平方差,bagging能有效改善这一点

此处有追问:为什么bagging能够改善方差?boosting能够改善偏差?

针对“为什么bagging能够改善方差?”

bagging是对样本集做重采样,对重采样后的样本集训练模型,对多个模型的输出取平均。由于重采样后子样本集的相似性,所以各模型具有相似的偏差和方差,因此不会显著降低偏差。下面详细讲解bagging能改善方差的原因:

假设各模型间相互独立,则有

若各模型完全相同,则有

bagging方法得到的各模型间是有相关性的,因此模型输出均值的方差区间为

针对“boosting能够改善偏差?”

boosting本质上是前向加法模型,从优化角度来看,就是不断通过迭代的方式最小化损失函数

其偏差自然是下降的。但这种sequential、adptive的策略使得模型之间的相关性很强,所以boosting本质上不会降低方差

#日常实习##数据分析##滴滴#
 类似资料: