新闻中心
数据分析面试知识点最全总结(数据分析面试题及答案解析视频)
内容来源:见知乎同名公众号:一只学统计的鱼
禁止转载,违者必究。一、岗位分析
数据中台数据分析:这种在规模比较大一点的公司会有专门的数据团队,负责各个业务线的数据分析工作,有专门的数据领导,不隶属于业务线。公司内部数据地位较高,数据权限较大。
数据科学家:一般归属于算法团队,主要做模型的理论研究及应用,日常工作内容多数时候在研究论文
业务数据分析:业务线下的数据分析师,主要为了快速的业务需求响应,日常工作主要是为了配合产品和运营做一些产出,数据权限及地位均不太高。
二、技能需求
1、统计学知识
① 各种图形图表② 中位数、众数、均值、方差、标准差、相关系数、随机变量、离散变量、连续变量、贝叶斯公式、条件概率、自由度、峰度、偏度、相关性与因果性等等。③ 各种常见分布:二项分布、泊松分布、伯努利分布、均匀分布、正态分布、指数分布、卡方分布、F分布、t分布、Z分布④ 大数定律与中心极限定理:切比雪夫大数定理、伯努利大数定律、辛钦大数定律、中心极限定理⑤ 假设检验P值、置信区间、第一类错误、第二类错误、置信度、检验效能、单边与双边
2、业务理解
① 整个公司的业务流程:具体而言依公司而定,不同公司根据定位不同,有不同的业务流程。比如一个新闻资讯类app, 我们可以通过内容和用户两侧进行分析,内容侧有整个的发文流程,如何从用户作者创造出作品,到呈现到用户面前,甚至于到后期作品的召回;用户侧,则是从用户的来源渠道,到启动ap p, 再到在各个内容页的具体消费等等。
② 场见业务分析思路:RFM模型漏斗模型(AARRR模型)多维度拆解归因5W2HPEST模型......
3、SQL
DDL数据定义语言:
CREATE:创建数据库和表等对象(上传内容到新表、创建新表储存从其他表筛选过来的内容)
DROP:修改数据库和表等对象(直接删除命令)
ALTER:修改数据库和表等对象的结构(不常用)(用法:add 字段名、drop 字段名、modify column 字段名 数据类型 属性)DML数据操纵语言:
SELECT查询表中的数据:
select、from、where、group by、having、order by、limit
数据类型:int、float、char、varchar、string、date、array
嵌套查询:
1、标量子查询
2、关联子查询
3、普通子查询:①将子查询的结果列,作为主查询的取值范围 ②将二维表作为主查询新的检索表表联结:
自联结
组合查询(union、union all)
内部联结(inner join)
外部联结(left/right/full outer join)常用函数:
条件函数:if、case when、nvl、coalesce、isnull...
数值型函数:rand、round、floor、ceil...
字符串函数:length、concat、upper、substr、split、get_json_object、regexp_extract...
日期函数:from_unixtime、unix_timestamp、datediff、date_sub、date_add、date_format...
聚合函数:count、sum、avg、min、max、percentile、percentile_appro x...
转换函数:cast、convert窗口函数:
排序函数:rank()、dense_rank()、row _number()
分布函数:percent_rank()、cume_dist()
前后函数:lag()、lead()
聚合函数:sum()、avg()、count()、max()、min ()INSERT向表中插入新数据:
1、插入字段数据(完整行/部分行)
2、插入select中的内容UPDATE更新表中数据:
既可以更新指定列的值,也可以删除指定列的值
DELETE删除表中数据:
根据where删除指定行的数据,当不指定条件时,删除全部数据,但表依然存在,相对而言,truncate table删除所有数据的速度更快。
DCL数据控制语言
在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、存储程序、用户自定义函数等数据库对象的控制权。一般用不到。
4、Python
python基础知识:
①变量、对象、自定义函数
②数据类型:字符串、整数、浮点数、布尔值
以及各种数据类型对应的函数及转换函数
③数据结构类型:列表、元组、集合、字典
以及各种数据结构所特有的功能和对应的函数
④逻辑结构
if语句for循环while语句python知识进阶:
pandas包:pandas功能相当强大,尤其是在数据清洗方面,我们日常需要掌握的是pand as的众多函数与numpy之间的相互转化...
sklearn包:sklearn 包的主要功能是进行模型的搭建、参数调优及效果检验,但这些功能的实现都是建立在我们熟悉各个模型原理功能的基础上。
numpy包:常用功能--生成伪随机数、数组形状改变、四则运算与比较运算、广播运算、统计函数查看数组性质、numpy数组与pandas的DataFrame之间的相互转化...
此外还有很多使用频率没那么高的包,比如seaborn、matplotlib.pyplot、time、datetim e、math 等等,具体使用时,可以去查看功能。
5、excel
数据相关:
①公式与函数:例如:VLOOKUP、COUNT、MAX、RAND 等等。
②数据计算:分列、删除重复项、合并计算、模拟分析等等。
③数据处理
排序:简单排序、多关键词排序、自定义排序
筛选:自定义、高级、搜索功能
分类汇总:....图表相关:
①普通图表:常用图表、设置标签、添加趋势线、更改布局等等。
②数据透视表
③单元格创建图形6、模型搭建
分类模型:①有监督:
朴素贝叶斯
KNN
LR
SVM
树模型(单分类模型:ID.3、C4.5、CART
boosting模型:AdaBoost算法、GBDT算法(XGBoost、LightGBM)
bagging 模型:随机森林
孤立森林)②无监督:
K-means
DBSCAN 聚类
层次聚类
高斯混合模型
自组织映射神经网络
神经网络回归模型:
线性回归LASSO回归岭回归神经网络也可以用作回归模型一般以CART树为分类器或基分类器的模型也可以用作回归,但日常使用频率不高。
模型搭建中的问题:
样本不均衡:
①采样途径解决(过采样,常用S M O TE算法;欠采样,减少多数类样本的数量。)
②惩罚权重(带权值的损失函数、难例挖掘。)
特征加工:①数据的解码:列表、字典、时间戳等各种形式的数据的前期处理操作。②数据清洗:对重复值、缺失值、异常值等的处理。③特征归一化:线性函数归一化/零均值归一化④离散特征处理:序号编码、独热编码、二进制编码
特征降维:假降维:PCA算法降维真降维:线性判别分析R FE筛选变量树模型的特征筛选聚类筛选特征变量
模型评估:过拟合与欠拟合:
由此衍化而来的误差、方差、偏差问题。
评价指标:
①预测问题
MSE、RME、MAE、MAPE等。
②二分类问题
准确率、精确率、召回率、F1值、ROC 曲线、AUC值、KS曲线、PR曲线等。
③多分类问题
混淆矩阵模型验证方法:
Holdout检验、交叉检验、自助法
超参数调优:
网格搜索、随机搜索
三、日常工作内容
1、取数需求
毫无疑问,这是日常工作的主要内容,不管一个公司指标体系搭建的再完善、报表再齐全,随着不停业务内容的开拓及决策的需要,数据的需求依然是巨大的,这里边的关键点是理解业务的逻辑和熟练的SQL运用能力。
2、异动归因
报表中监测的指标发生异常,业务方会把这个问题报给数据分析组,需要数据分析师去排查原因;不同渠道对同一指标的数据不一致,也需要数据分析组排查原因;或者在用户的日常行为数据中发现异常数据,对可能存在的作弊用户进行封禁。
3、指标体系搭建
指标体系的搭建,可谓是公司最核心的任务之一,好的指标体系,可以快速作用于业务需求,提高工作效率。一般搭建指标体系的核心思路是先选择北极星指标,将用户的生命周期路径与维度拆解结合起来,共同完成与业务紧密相连的指标体系搭建工作。
4、埋点
这个工作一般配合新的app版本上线、ab test实验进行的,主要目的是为了确保数据的准确性和数据的可利用性。一般数据分析师的主要工作内容是,根据需求的要求,结合埋点规范,确认action、page、dwell等关键字段的具体内容,将详细的日志文档字段整理好,提交给评审,然后由开发完成。
5、ABtest
这个工作是最能考察数据分析师思考能力的环节。一般是在工作中发现问题,分析问题,提出解决方案的过程中,对实际的解决措施的有效性提供检验,证明解决方案带来的实际收益并非偶然现象造成的。
6、报表
一般做报表的目的有两种:一种是为了对指标体系进行监控;一种是对为了满足业务方日常常用取数的需求。一般是写SQL脚本,定期执行,将数据存入到本地mysql数据库,再通过可视化软件,进行报表的展示。
四、面试问答
1、AB test问题集锦
①ab test流程问题,一般需结合例子叙述完整过程
②实验前:
单变/双边问题、比率和数值指标下的最小样本量、一二类错误、P 值含义、置信区间、核心指标/负向指标/辅助指标、t检验与Z 检验区别、实验指标与另一个指标的好坏问题、实验组与对照组的随机分配、实验时间问题等等。
③实验中:
AA test问题
实验组与对照组空转,核心指标出现差异,怎么办?
AA测试指标有区别的原因。
是否可以不进行A A 测试,用实验组与对照组以往的数据来判断是否存在特征差异?
AB test问题
一般的AB test场景问题都可以从以下几个理由中得到解释:辛普森悖论、新奇效应、以偏盖全、以全盖偏、正交互斥实验。
AB test具体场景问题:
AB test效果不显著,你该怎么判断这个实验的收益?
AB test中实验组核心指标明显优于对照组,那么这个优化就一定能够上线嘛?
AB test时效果显著,但是全量上线时,效果平平,问题在哪里?
AB test效果不显著时,那么是否可以判断这个实验失败了,没有意义?ABtest的替代问题:
对于某些无法进行进行AB test的场景,可以尝试用计量经济学中的加入虚拟变量,用双重差分进行处理;或者直接用合成控制法进行实验等等。
2、指标体系搭建问题
3、指标异动问题
怎么判断指标数据是否为异动?
DAU(日活、人均消费时间等等)异常,如何分析。
4、职业问题
数据分析师所需具备的条件/技能
未来的职业规划问题
5、编程相关问题
①SQL
手撕代码:
一般面试环节都会有手撕SQL,这种题目也没有具体的数据集去验证,主要就是看写的程序逻辑。常被考的问题点有union、窗口的几个函数、lag与lead 函数、explode view对array的展开,剩下主要就是逻辑的考察(嵌套、表联结等结构,这里比较推荐使用 with..a.s..语句进行书写,更能体验逻辑的清晰性,且不容易把自己给绕懵)
底层运行原理:
hive sql与spark sql的底层原型原理、区别;hive sql与mysql的区别等等。
sql的运行顺序与优化问题
数据倾斜问题及解决措施
sql中笛卡尔积与避免措施②模型问题
6、最印象深刻问题系列:
这种问题有很多变种,其实主要考察的内容有两个方面:一方面是是否干过某些工作,方面后边进行深入提问;另一方面是考察对某个项目的理解,是否有深入去了解,还是仅仅浮于表面。
五、简历问题
1、简洁的排版
很多人认为,简历的排版设计应该是花花绿绿的、有设计感的,这样能够引起HR的注意,然后让自己的简历被HR挑选出来,但是事实并不是这样的,花花绿绿的简历样式只会影响HR阅读简历内容,降低工作效率,很多HR是更喜欢简洁简历。
2、简历内容与招聘要求匹配
根据不同公司的JD,可以适当更改简历突出点,增加简历的匹配度。比如,需要应聘者会熟练使用office,再根据招聘要求里面,要进行运营数据的统计,说明公司对于Excel的技能是很重视的,那么,应聘者就可以在简历内容中增加对Excel技能的描述,如,用Excel软件,一天内制作两张数据分析表,会使用某某函数公式等等。
3、多使用和岗位相关的专业词汇
使用和岗位相关的专业词汇,有一个好处就是,简历内容专业度提升,简历内容的可读性强,HR可以快速的对候选人进行判断。
4、技巧性
第一个是巧用数字。数字的妙处在于,在一堆文字中亮眼,容易被发现;增加工作描述的真实性,看起来没那么像瞎编的;把自己的工作量具体化,让人更容易理解你这段实习做了多少实事,而不是去划水的。所以在描述自己做的事情的时候可以适当增加一些数字,即使你记不清了,也可以写一个大概的数字,只要看起来不是那么离谱就可以。
第二个是在具体描述自己做了什么事情的时候,最重要的就是要写清楚,你什么时候做了什么,产生了什么样的结果,或者对整个团队有什么贡献,或者对团队成果起到了哪些重要的推动作用。其中最重要的就是结果,一定要突出自己所做事情的结果。当然了最好是好的结果,如果搞砸了的话就没必要在简历里写了。