Loading

数据类岗位简历优化及面试指南

描述数据类项目:

  1. 描述数据源
    在描述数据源时,将数据具体化。量化结果时,对于模型项目,可以将最后的准确率与随机准确率相比,对于分析项目,可以将最终的提升幅度与项目预期或同期的其他项目相比。
描述 改进后
从大量/海量数据中... 从300万元的店铺销售额数据中....
显著提升 3%的转化率提升
模型准确率达90% 模型准确率达90%,与随机准确率45%相比,有了100%的提升;某品牌最终销售额提高3%,与预定的2%相比,有了50%的提升。
  1. 项目实现描述
    应从整体的角度来描述,而不是对分析、挖掘的过程展开详细的描述,忽略了迭代的过程。
flowchart TD A[沟通、理解需求]-->B[数据分析、挖掘实现] C[分析结果并进行迭代]-->B D[上线并监控效果]-->C B-->D
  1. 技术点描述
    相对于罗列技术,使用以下说法可能效果更好:
    使用Python中的sklearn完成XXX 、运用R中的ggplot2完成XX
    使用随机森林模型完成订单分类、使用K-Means聚类完成用户的划分

同时,写技术点的细节要适量,否则项目失去重点,过犹不及。在模型部分,不需要把所有模型都写上,如“利用线性回归、逻辑回归、决策树、随机森林等算法完成xxx”
这些具体的技术点是面试重点,因此需要在这方面精心准备

  1. 项目描述demo
  • 通过与xx的沟通,明确项目需求,选取最近X天的x条历史数据进行训练;
  • 通过Hive从数据库中提取X个备选变量,利用Python中的XGBoost包进行训练优化,并根据重要性筛选出X个变量;
  • 模型上线后,在召回率为X%的基础上,准确率从随即准确率为X%,提升至X%,涨幅达到X%;
  • 上线后自动化生成监控报表,并根据变量的重要性,随着时间的变化,进行周期为X天/周/月的迭代过程。

项目丰富途径

  • 大厂竞赛 :如阿里巴巴的天池大赛、华为codecraft算法竞赛等
  • 自媒体:在各大平台发表技术类文章,形成自己的专栏或成为公众号号主。

面试技巧:

  1. 提前熟悉业务场景、企业同行情况

数据类岗位准备方向

数据分析: 统计学、机器学习、数据库、业务
数据仓库:数据库

数据倾斜、窗口函数、维护数据字典、L1L2范数、AB测试

面试题汇总

数分:

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

数据挖掘:

  • 数据集的划分方式,及各种数据集的作用
  • 阐述欠拟合和过拟合,解释产生的原因
  • 常用的模型分类方法有哪些,如监督/非监督、参数/非参数有哪些
  • 模型中参数和超参数的区别
  • 线性回归模型对误差所做的假设
  • 线性回归模型调优的方法
  • 线性回归模型的优缺点
  • 逻辑回归和线性回归的异同点
  • 逻辑回归中L1、L2正则解释及其区别
  • 决策树选择分支的几种方式及其区别
  • 随机森林预测结果优于决策树的原因
  • 随机森林与GBDT模型的异同点
  • 针对预测、二分类、多分类的模型评估方法
  • 解释准确率和召回率
  • 阐述ROC和AUC的联系
  • 简述混淆矩阵

基础知识

统计知识

1. 随机变量

graph LR A(随机变量)-->B(离散型随机变量) A-->C(连续型随机变量) B-->D(伯努利分布/0-1分布) B-->二项分布 B-->泊松分布 C-->均匀分布 C-->正态分布 C-->指数分布
  • 概念
    随机实验: 在相同条件下对某随机现象进行大量重复观测。
    举个栗子,APP给用户发放优惠券,以提升用户活跃度,促进用户消费。用户收到优惠券后是否会使用可以看作随机现象,将所有用户的优惠券使用情况进行汇总,计算优惠券的转化率,可以视为随机试验。
    随机变量(X): 描述随机试验的结果,如抛硬币朝上的次数、优惠券的转化率,

  • 常用特征

数字特征 表示 描述 公式
期望 E(x) 表示随机变量X的平均水平。将x所对应的随机试验重复多次,随着次数增加,X的均值会趋近于E(x)
方差/标准差 D(x)/Var(x) 刻画随机变量X的波动大小,方差越大,结果的未执行就越大
协方差/相关系数
  • 类型
    离散型随机变量
    连续性随机变量
1.2 离散型随机变量
  1. 伯努利分布(0-1分布)

\[\begin{equation} \begin{split} Pr(X=1)=p \\ Pr(X=0)=1-p \end{split} \end{equation} \]

  1. 二项分布(n重伯努利分布)
    n个重复独立的伯努利分布(重复独立:每个伯努利分布事件发生的概率均为p;各个试验的结果互相独立,不受其他试验的干扰)
    如发放1000张优惠券,可以近似看作1000个互相独立,且每张优惠券被使用的概率为p的伯努利分布所组成的二项分布,最终得到有x张优惠券被使用的概率为:

\[Pr(X=x)=(_k^n)p^k(1-p)^{n-k} \]

  1. 泊松分布
    适合描述单位时间/空间内随机事件发生的次数

\[\begin{equation} \begin{split} Pr(X=k)=\frac{\lambda^k}{k!}e^{-\lambda} \\ 其中,\lambda表示单位时间/单位面积随机事件平均发生的次数 \end{split} \end{equation} \]

1.3 连续性随机变量
  • 分布函数(累积分布函数CDF cumulative distribution function)

\[\begin{equation} \begin{split} F(x)=Pr(X<=x),即随机变量X<=x的概率 \\ 如果存在f(x),使得F(x)=\int^x_{-\infty}f(x)dx,\\ 则为概率密度函数PDF(Probability Density Function) \end{split} \end{equation} \]

  1. 均匀分布
    即概率密度函数在结果区间内为固定数值的分布

\[f(x)=\frac{1}{b-a},x\in[a,b] \]

举个例子:
公交车平均30分钟发一班车,乘客每次等车的时间x为5-15分钟的概率为

\[f(x)=\int_5^{15}\frac{1}{30-0}dx=\frac{1}{3} \]

均匀分布是一种比较特殊的分布,这种完全的随机性分布场景在实际工作中较少碰到,而前面的随机变量的随机性都是基于一些规律的,可能会与均匀分布有些矛盾。image

  1. 正态分布

\[\begin{equation} \begin{split} 概率密度函数满足f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{(x-\mu)^2}{2\sigma^2}},则随机变量服从正态分布,其中\mu为期望,\sigma为方差 \end{split} \end{equation} \]

  1. 指数分布
    描述泊松过程中事件之间的时间的概率分布,即时间以恒定的平均速率连续且独立发生的过程。

\[\begin{equation} \begin{split} f(x)=\lambda{e}^{-\lambda x}(x>0),其中\lambda对应于泊松分布中在单位时间内发生某事件的次数 \\ \textbf{特点:无记忆性}\text{,即P(X>t+s|X>t)=P(X>s)} \end{split} \end{equation} \]

面试应对技巧

自我介绍

1 大学时期
例如:我是数据科学与大数据技术出身,在xx大学读的本科,实习中做过....,在校也参与了一些项目设计竞赛并获得奖项。
2 目前的工作,一句话概述
例如:我目前是Java工程师,在微软公司已经从事软件开发工作两年了。
3 毕业后
例如:毕业以后就去了腾讯公司做开发工作。那段经历令我受益匪浅,我学到了许多有关项目模块框架的知识,并且推动了网站和游戏的研发。这实际上表明,应聘者渴望加入一个更具有创业精神的团队。
4 目前的工作,可以详细描述
例如:之后我进入了微软公司工作,主要负责初始系统架构,它具有较好的可扩展性,能够跟得上公司的快速发展步伐,由于表现优秀之后开始独立领导Java开发团队。尽管只管理手下几个人,但我的主要职责是提供技术领导,包括架构、编程
5 兴趣爱好
如果应聘者的兴趣爱好只是比较常见的滑雪、跑步等活动,这会显得比较普通,可以选择一些在技术上的爱好进行说明。这不仅能提升应聘者的实践技能,而且也能展现出应聘者对技术的热爱。例如,在业余时间,我也以博主的身份经常活跃在Java开发者的在线论坛上,和他们进行技术的切磋和沟通。
6 总结
我正在寻找新的工作机会,而贵公司吸引了我的目光,我始终热爱与用户打交道,并且打心底里想在贵公司工作。

巧妙回答面试官的问题

1 回答问题谦虚谨慎
不能让面试官认为自己很自卑、唯唯诺诺或清高自负,而是应该通过回答问题表现出自己自信从容、不卑不亢的一面。例如,当面试官问“你认为你在项目中起到了什么作用”时,如果应聘者回答:“我完成了团队中最难的工作”,此时就会给面试官一种居功自傲的感觉,而如果回答:“我完成了文件系统的构建工作,这个工作被认为是整个项目中最具有挑战性的一部分内容,因为它几乎无法重用以前的框架,需要重新设计”,则显得不仅不傲慢,反而有理有据,更能打动面试官。
2 在回答问题时要适当留有悬念
面试官也有好奇的心理。人们往往对好奇的事情记忆更加深刻。因此,在回答面试官的问题时,记得要说关键点,通过关键点,来吸引面试官的注意力,等待他们继续“刨根问底”。例如,当面试官对应聘者简历中的一个算法问题感兴趣时,应聘者可以回答:我设计的这种查找算法,可以将大部分的时间复杂度从O(n)降低到O(log n),如果您有兴趣,我可以详细给您分析具体的细节。
3 回答尖锐问题时要展现自己的创造能力
例如,当面试官问“如果我现在告诉你,你的面试技巧糟糕透顶,你会怎么反应?”这个问题测试的是应聘者如何应对拒绝,或者是面对批评时不屈不挠的勇气,以及在强压之下保持镇静的能力。关键在于要保持冷静,控制住自己的情绪和思维。如果有可能,了解一下哪些方面应聘者可以进一步提高或改善自己。
推荐回答如下:我是一个专业的工程师,不是一个专业的面试者。如果你告诉我,我的面试技巧很糟糕,那么我会问您,哪些部分我没有表现好,从而让自己在下一场面试中能够改善和提高。我相信您已经面试了成百上千次,我只是一个业余的面试者。同时,我是一个好学生并且相信您的专业判断和建议。因此,我有兴趣了解您给我提的建议,并且有兴趣知道如何提高自己的展示技巧。

如何回答技术性问题

对于技术性问题,完成基本功能是必须的,但还应该考虑更多的内容,以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?
有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,应聘者可以征求面试官同意,在写实际代码前,写一个伪代码。

如何应对自己不会的问题

在面试中遇到不懂或不会回答的问题时,正确的做法是本着实事求是的原则,态度诚恳,告诉面试官不知道答案。例如,“对不起,不好意思,这个问题我回答不出来,我能向您请教吗?”征求面试官的意见时可以说说自己的个人想法,如果面试官同意听了,就将自己的想法说出来,回答时要谦逊有礼,切不可说起来没完。应该虚心地向面试官请教,表现出强烈的学习欲望。

如何向面试官提问

真实的问题就是应聘者很想知道答案的问题。
例如:①在整个团队中,测试人员、开发人员和项目经理的比例是多少?②对于这个职位,除了在公司官网上看到的职位描述,还有什么其他信息可以提供
我了解到你们正在使用XXX技术,想问一下它是怎么来处理Y问题呢?
为什么你们的项目选择使用XX技术而不是YY技术?
我对X技术不是特别了解,您能多给我讲讲它的工作原理吗?

posted @ 2024-06-04 17:50  踩坑大王  阅读(19)  评论(0编辑  收藏  举报