0%

【拿下Offer】数据分析师求职面试指南

面对数据库中的海量数据,数据分析师首先要做的就是构建合理的指标体系或者模型,合理地“整理”这些数据。


更新历史

  • 2022.11.28:完成初稿

读后感

数据分析师易学难精,如何通过平台化能力提升下限追求上限,是数据分析平台/模块要去不断追求的。

读书笔记

传统的数据分析师的工作重心更多地体现在输出报表、提供分析报告等工作上,基于目前的发展趋势,数据分析师一方面需要强化这部分的技能,另一方面需要不断地学习和提高,掌握新技术,如数据挖掘、数据可视化知识以及R、Python、SQL等编程语言。

对于数据产品经理,很多人存在误区,认为数据产品经理的门槛比较低。实际上,一个好的数据产品经理一定既具有良好的数据分析逻辑思维,又具有敏锐的产品思维,这样才能真正有效地解决业务场景中的相关问题。很多数据类岗位从业者认为不需要学习就可以转岗到数据产品经理,实际上并不是那么容易的,对产品思维的培养也是一个系统化且专业化的过程。

现在介绍一下数据仓库工程师。这个岗位的工作始终贯穿于数据项目的流程中,对各项数据相关工作提供数据库支持,是非常重要的支持岗位。因为数据仓库直接关系到整个公司数据系统能否顺利运行,所以数据仓库工程师是整个数据类岗位中周末、节假日最为“警惕”的岗位,需要极强的责任心。此外,其他岗位,如数据分析师,也会要求候选人掌握一定的数据库相关技术,方便与数据仓库工程师对接,以及自主完成复杂度较低的数据仓库工作,如数据提取、定时任务设置等

数据分析师

主要职责:

  • 响应产品/运营活动等数据分析需求,定期进行数据分析报告的撰写及数据汇报工作;
  • 对日常运营的产品数据进行监控和分析,从数据异动中主动发现问题;
  • 构建各种分析和挖掘模型,跟踪和分析运营数据,为业务决策提供数据支撑,并推进落地;
  • 数据产品建设,完成数据采集、埋点梳理、指标逻辑定义和报表开发。

所需技能:

  • 拥有扎实的数学、统计学基础知识;
  • 熟练掌握常用工具,如Excel、SQL、R、Python等;
  • 掌握模型知识,了解常见的分析模型,如回归模型、聚类模型、时间序列模型等;
  • 具有非常强的数据敏感度、优秀的逻辑分析能力和文字表达能力。

数据挖掘工程师

主要职责:

  • 熟悉大规模数据挖掘、机器学习等相关技术,能熟练使用聚类、回归、分类等算法并调优,可以针对具体业务进行有效建模并应用实践;
  • 配合开发人员和算法工程师完成模型的上线运行,并对模型进行监控、维护和调整;
  • 具备良好的逻辑思维能力,能够从海量数据中发现有价值的规律,并结合业务发掘数据价值。

所需技能:

  • 拥有扎实的数学、计算机基础知识;
  • 熟练掌握常用工具,如SQL、Python、Scala、Java等,能够在Linux环境下进行编程;
  • 掌握机器学习常见模型的原理及调优方法,对深度学习、自然语言处理等有一定的了解;
  • 具有非常强的业务敏感度,能够推动模型真正落地。

算法工程师

主要职责:

  • 完成大规模机器学习平台的建设,包括实现离线/在线训练、在线预测服务、模型管理、任务调度、资源管理等;
  • 优化并改进公司的深度学习、自然语言处理、知识图谱等模型,将前沿机器学习/深度学习算法应用到产品上;
  • 处理集群海量数据,从海量数据中提取有效信息。

所需技能:

  • 掌握算法知识,具备编程能力;
  • 熟练掌握常用工具,如Python、Scala、Java等,具备处理海量数据的能力;
  • 对机器学习、深度学习、计算机视觉、图像处理、自然语言理解、数据挖掘、算法优化等领域有一定的研究和见解;
  • 能够钻研新兴的前沿技术,推动技术的迭代。

数据产品经理

主要职责:

  • 基于业务数据,挖掘数据价值,设计支持业务决策的各类数据工具;
  • 制定数据产品业务规范,完成指标口径统一、数据字典维护等工作;
  • 指导研发团队开发产品,协调数据开发及产研发,推进产品完成,同时负责后期产品持续运营;
  • 能够自主完成一定的数据分析、数据提取工作。

所需技能:

  • 拥有扎实的数学、统计学、计算机基础知识;
  • 熟练掌握常用工具,如Word、Excel、SQL、R、Axure等;
  • 能够完成条例清晰的产品说明文档(PRD),并能绘制符合标准的原型图;
  • 具有良好的数据敏感度和业务敏感度,具备非常强的表达能力和沟通协调能力。

虽然各个数据类岗位之间有不同的要求,但也可以归纳出如下通用要求。

  • 具备扎实的基础知识/编程能力。面试官也要考虑候选人入职后能否满足工作的要求,即使说得天花乱坠,最后也要落到实处。因此,在面试前候选人需要做好充足的准备,把基础知识打牢,面试时才能厚积薄发。
  • 拥有丰富的项目经验。面试时除了考查一些技能,也会看重候选人的项目经验。如果做过相似的项目,在之后的工作中能够举一反三,将自己的项目经验运用在新工作中,则可以缩短适应的时间。
  • 具有积极的学习态度。在工作中,需要不断根据技术的发展和新的趋势来学习、提高自己,具有积极的学习态度尤为重要。这一点在面试中可以通过自己的表述传达给面试官,提高竞争力。

基础知识考查

概率论与数理统计:

  • 用简洁的话语阐述随机变量的含义。
  • 划分连续型随机变量和离散型随机变量的依据。
  • 常见分布的分布函数/概率密度函数,以及分布的特性,如指数分布的无记忆性。
  • 随机变量常用特征的解释(期望、方差等)。
  • 中位数是否等于期望。
  • 常见分布的特征值。
  • 如何给没有学过统计学的人解释正态分布。
  • 列举常用的大数定律及其区别。
  • 阐述中心极限定理和正态分布的直接关系。
  • 如何利用编程语言设计实验证明中心极限定理。
  • 简单阐述假设检验的原理。
  • 在假设检验中原假设和备择假设选择的依据。
  • 阐述假设检验的两类错误。
  • 用通俗的语言解释p-value、显著性水平、检验效能。
  • 分别解释z检验和t检验。
  • 贝叶斯派统计和频率派统计的区别。
  • 贝叶斯定理和全概率公式的应用。
  • 用贝叶斯定理解释“三门问题”。

数据挖掘:

  • 数据集的划分方式,以及各种数据集的作用。
  • 阐述欠拟合和过拟合,并解释产生的原因。
  • 常用的模型分类方法,以及其中重要的模型(监督/非监督、参数/非参数等)有哪些。
  • 模型中参数和超参数的区别。
  • 线性回归模型对误差所做的假设。
  • 线性回归模型调优的方法。
  • 线性回归模型的优缺点。
  • 逻辑回归模型与线性回归模型的异同点。
  • 逻辑回归模型中的L1、L2正则解释及其区别。
  • 决策树模型选择分支的几种方式及其区别。
  • 随机森林预测结果优于决策树的原因。
  • 随机森林与GBDT模型的异同点。
  • 随机森林、GBDT模型的优缺点。
  • XGBoost模型能够有比较好的效果的原因,以及实现并行的原理。
  • 针对预测、二分类、多分类常用的模型评估方法。
  • 阐述准确率和正确率的区别,以及为什么会选用准确率。
  • 用通俗的语言解释准确率和召回率。
  • 阐述ROC与AUC的联系。
  • 简述混淆矩阵。

实战项目考查

实战项目考查主要分两部分:一是对候选人做过的项目进行了解;二是对业务常识进行考查。常见的面试问题如下:

  • 简单做自我介绍。
  • 阐述之前参与过的某个项目,并且举例说出遇到的困难和解决办法。
  • 对于之前做过的项目,还有哪些可进一步提升的地方。
  • 近期×××指标有所下降,请针对该问题提出系统化的分析方法。
  • 近期产品针对×××功能进行了改版,如何评估改版的效果。
  • 公司最近举办了一个营销拉新活动,如何评估这次拉新的效果。
  • 在设计数据报表时需要考虑的地方。
  • 常用的数据监控方法(如果在此前工作中有所涉及,则可以进行详细阐述)。
  • 用户画像的数据来源以及应用场景。
  • 针对×××业务,如何运用数据库中的用户画像数据。
  • AB测试所运用的数学原理。
  • AB测试流量划分的方法,以及最小样本量的计算方法。
  • 做分析报告需要注意的点,可以展示之前做过的脱敏后的分析报告。
  • 在做数据挖掘模型之前,需要进行哪些可行性分析。
  • 特征工程包含的变量处理方法。
  • 异常值和缺失值处理的方法。
  • 如何评估模型上线后的效果。
  • 近期看的书或者学到的新的数据分析方法。

面对数据库中的海量数据,数据分析师首先要做的就是构建合理的指标体系或者模型,合理地“整理”这些数据。指标体系可以分成两个部分——通用的规则和针对具体业务的特定规则;模型则包含了比较多的类型,如业务模型、数据挖掘模型等。在构建好合理的指标体系或者模型后,接下来就可以通过报表或者数据看板的方式,对数据进行监控,并且制定相应的监控规则,根据监控结果实时调整策略。

总结起来,就是:

  • 基于历史数据和业务背景构建指标体系或者模型。
  • 基于指标体系,监控线上业务数据并制定相应的监控规则。
  • 输出数据分析报告或者提供可执行策略,推动业务的发展。

Q:要构建一套指标体系,整体思路是什么?

构建指标体系应该“纵向”和“横向”相结合,纵向指的是梳理出分析问题的整个流程,比如对于电商产品,需要分析出用户从进入网站到最终下单的整个流程;对于工具类产品,则需要关注用户使用过程中的体验以及用户流失情况。有了纵向分析的过程,还需要横向拓展不同的维度,如基于用户画像的人群分类、根据不同业务背景的时间拓展以及业务线的划分。最后将纵向和横向的结果相结合,就得到了一套完整的指标体系。

可以看到,针对新增、活跃、留存/流失这些节点,可以纵向设计出很多指标,但主要是绝对数量和百分比。

  • 对于新增用户,指标有新增用户数量、新增用户留存率、新增用户活跃率等。
  • 对于活跃用户,指标有活跃用户数量、活跃用户中的新增用户数量、活跃用户中的老用户数量等。● 对于老用户,指标有老用户数量、老用户流失率、老用户唤醒率等。
  • 对于流失用户,指标有流失用户数量、流失用户与新增用户比率等

Q:针对时间维度的分析,需要注意的点有哪些?

对于时间维度,常用的分析方法是关注最近一段时间的数据,时间的长短要根据业务的具体特性来确定。对于一些高频的App或者功能,通常关注最近1~7天的整体数据情况即可,也可以是自然周。对于一些相对低频的App或者功能,则需要将时间拉长,关注最近15天、30天、90天甚至更长时间的整体数据,也可以是自然月、季度甚至自然年。

Q:列举常用的用户维度拓展方法。

有很多通用的用户维度拓展方法,比如对于用户所在地,可以分为城市、省份,甚至华东、华南等大区;对于用户的基本属性,可以分为年龄、性别、职业等;对于用户使用的设备情况,可以分为终端类型、客户端版本、厂商、机型等;对于新老用户,也可以拓展出一些指标。对于新用户,需要关注的是用户来源渠道,通常分为自然新增用户、活动新增用户、广告新增用户等渠道,通过对渠道的划分,可以在一定程度上避免一些大型活动对新增用户分析带来的影响;对于老用户,根据用户的生命周期进行划分,通常分为有效用户、活跃用户、忠诚用户、沉睡用户和流失用户,可以对产品整体趋势有一个清晰的了解。

Q:×××最近有所下降,如何进行分析?

针对这个问题,需要充分利用前面所讲的指标体系,按照如下步骤进行分析。

  1. 梳理与该问题相关的流程,确定纵向指标体系。比如是支付金额有所下降,就需要梳理:曝光→点击→下单→支付这样完整的用户路径,以各个环节的转化率和用户量为核心指标。
  2. 针对核心指标,确定所要对比的时间维度,比如基于所要分析的产品确定与前一天或者前一周的数据进行对比,发现问题所在。(3)确定问题所在的环节后,针对该环节以用户维度进行拓展,如基本属性、所在地、设备情况、新老用户等,确定引起该问题的用户群体,并针对这部分用户进行相应的策略调整。

Q:如何提高数据分析报告的质量?

  1. 明确整体分析思路。好的数据分析报告都依赖于一个明确的思路,需要在开始设计报告前就整理出一个基本的框架,然后在设计过程中进行适当的添加。切勿在开始设计数据分析报告前不做规划,“边做边加”,否则效率会大打折扣。
  2. 结论提前,清晰明了。在一份数据分析报告中,运营方和决策层最关心的就是结论以及相应的策略,这是报告中最有价值的部分。刚入职时,很多人会习惯按照因果关系的顺序来设计数据分析报告,即先给出论据,再给出相应的结论。这一点需要调整,通常数据分析报告的第一页或者文档的开头就要给出明确的结论。
  3. 注意图表的信息量。作为支撑分析的论据,需要在数据分析报告中使用大量的图表,但是很多时候会存在图表的信息量过少或者过多的情况—如果信息量过少,则无法很好地展示数据;如果信息量过多,则会影响他人的理解,无法直观地看数据。