TimeLine:一面20211109
当时的BG:北邮本硕,管理类专业,一段实习经历:美团商业分析师
写在前面的话:该文档记录日常实习面试的相关问题,面试时间为2021年。以下问题的答案可能存在错误,敬请读者批评指正
1. 数据库种类有哪些?分别举例说明一下?
1)关系型数据库:Oracle,Microsoft SQL Server,MySQL
2)非关系型数据库:HBase
2. 简要介绍一下Hive
先介绍Hadoop,Hadoop是一整套大数据生态系统,主要包括:
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-hot或dummy变换
8. 数据集不均衡的解决方法?
1)采用ROC曲线下AUC作为分类判定标准,该指标不会受到样本集分布不均衡的影响
2)过采样和欠采样(基于数据的方法)
过采样,即增加少数类样本集的样本量,如SMOTE算法、Tomek Links算法等
欠采样,即减少多数类样本集的样本量,如Easy Ensemble算法、NearMiss算法等
3)调整正负样本的权重惩罚(基于算法的方法)
改变模型训练时的目标函数,对少数类样本分类赋高权重,多数类样本分类赋低权重
4)转化为单类学习、异常检测(基于算法的方法)
注:从第9题开始,其后问题的答案均可在《百面机器学习》这本书中得到,十分推荐大家阅读一下这本书
9. 是否了解集成学习?简要介绍一下思想?
注:回答围绕bagging和boosting即可,并举例说明
1)bagging:随机森林RF
2)boosting:GBDT/XGBOOST/LightGBM
10. 偏差和方差的概念?和bagging、boosting有什么关系?
1)偏差bias:模型输出值与真实结果的偏离程度,boosting能有效改善这一点
2)方差variance:模型输出值与模型输出值均值的平方差,bagging能有效改善这一点
此处有追问:为什么bagging能够改善方差?boosting能够改善偏差?
针对“为什么bagging能够改善方差?”
bagging是对样本集做重采样,对重采样后的样本集训练模型,对多个模型的输出取平均。由于重采样后子样本集的相似性,所以各模型具有相似的偏差和方差,因此不会显著降低偏差。下面详细讲解bagging能改善方差的原因:
假设各模型间相互独立,则有
若各模型完全相同,则有
bagging方法得到的各模型间是有相关性的,因此模型输出均值的方差区间为
针对“boosting能够改善偏差?”
boosting本质上是前向加法模型,从优化角度来看,就是不断通过迭代的方式最小化损失函数
其偏差自然是下降的。但这种sequential、adptive的策略使得模型之间的相关性很强,所以boosting本质上不会降低方差
#日常实习##数据分析##滴滴#