news 2026/9/1 22:09:04

乐信2020数据笔试题拆解:数据岗四维能力模型与解题攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
乐信2020数据笔试题拆解:数据岗四维能力模型与解题攻略

“乐信2020校园招聘数据笔试题”这个标题,乍一看只是一场校招的技术考核,但把它拆开看,其实能琢磨出不少东西。金融科技公司招数据分析师,笔试题目往往不是单纯考“会不会写代码”,而是考“能不能用数据解决业务问题”。2020年那会儿,乐信的笔试题目在应届生圈子里流传得挺广,核心考察点集中在SQL、Python、统计学基础和业务敏感度几个方向。这篇文章不打算做“真题复读机”,而是结合我的实际经验,把这套题背后真正想考察的能力模型拆给你看,同时附上对应的解题思路和实操要点,帮准备数据岗校招的朋友们少走弯路。

1. 这套题到底在考什么:拆解数据岗笔试背后的能力模型

数据岗位的笔试,本质上是一次“低成本的能力筛选”。面试官一天要筛几十上百份简历,笔试是效率最高的第一道关卡。乐信这套题之所以让我印象深刻,是因为它没有堆砌偏题怪题,而是老老实实地考察四个维度的基本功——数据处理能力、编程实现能力、统计推断能力、业务理解能力

1.1 从题目类型反推岗位要求

数据岗分很多种,有偏数仓的、偏算法的、偏分析的,但校招笔试往往是一套题通吃,因为它考察的是“通用底座”。把这个逻辑抽象出来,你就知道复习该往哪个方向使劲了:

考察维度典型题型考察目的
数据处理SQL查询、表关联、窗口函数能否高效取数,这是日常工作的地基
编程实现Python写函数、处理列表/字典、简单算法是否具备用代码解决重复性工作的能力
统计推断概率计算、假设检验、AB实验设计能否用统计思维区分“运气”和“真实效果”
业务理解场景题、指标异动分析、策略设计能否把数据翻译成业务动作,这是分析师的高级价值

1.2 为什么2020年这套题值得反复看

2020年有个特殊背景——线上消费金融业务进入精细化运营阶段,行业对数据人才的需求从“会跑数”升级到“懂业务”。乐信的业务核心是分期消费,这意味着它对用户风险识别、转化漏斗分析、存量用户运营这些能力格外看重。所以那几年的笔试题,业务场景往往和信贷相关,比如“逾期率上升怎么分析”“不同渠道的获客质量怎么对比”等。这类题目放在今天依然不过时,因为底层逻辑没变——用数据驱动金融业务决策

那么,接下来我就把这四个维度的核心考点逐一掰开来讲,每个模块都会给出具体的解题框架和实操建议。

2. SQL实操考点与解题思路:取数能力是数据人的饭碗

SQL是数据岗笔试的绝对重头戏,占比通常在30%到40%。乐信这套题的SQL部分,题目量不大,但每道题都有“陷阱”埋在细节里。很多同学LeetCode刷了几百题,结果栽在SQL上,原因只有一个——刷题刷的是逻辑,实际考的是场景

2.1 常考的SQL题型与解题模板

从我收集到的信息和历年考生的反馈来看,这套题SQL部分出现了几种典型的题型:

第一类:多表关联与聚合统计。这类题一般会给订单表、用户表、商品表,让你统计某个时间窗口内的GMV、订单量、用户数。看起来简单,但失分点往往在“去重”上——一个用户可能在同一天下了多笔订单,如果直接COUNT(用户ID),数字就虚高了。正确答案通常需要用COUNT(DISTINCT 用户ID)来算用户数。

第二类:窗口函数的应用。这是拉开差距的地方。比如“计算每个用户最近一笔订单的金额”“找出每个品类销量排名前3的商品”。这类题需要用ROW_NUMBER()RANK()配合PARTITION BY来解。2020年那会儿Hive SQL在互联网公司已经普及,窗口函数几乎是必考点。

注意:写窗口函数时,ORDER BYPARTITION BY的顺序经常有人搞混。PARTITION BY是先分区,ORDER BY是在分区内排序。如果你要取每个分组内的最新一条记录,经典写法是ROW_NUMBER() OVER (PARTITION BY 用户ID ORDER BY 下单时间 DESC) AS rn,然后外层再WHERE rn = 1

第三类:留存率计算。留存率是金融类产品的核心指标,笔试也爱考。比如“计算新用户次日留存率、7日留存率”。很多人的第一反应是把用户表和活跃表做关联,但在实际操作中,更建议先构造“用户首次活跃日”临时表,再关联后续活跃记录,这样思路清晰、不容易错。

WITH first_active AS ( SELECT user_id, MIN(dt) AS first_dt FROM user_active_log GROUP BY user_id ) SELECT a.first_dt, COUNT(DISTINCT a.user_id) AS new_users, COUNT(DISTINCT b.user_id) AS retained_users, ROUND(COUNT(DISTINCT b.user_id) / COUNT(DISTINCT a.user_id), 4) AS retention_rate FROM first_active a LEFT JOIN user_active_log b ON a.user_id = b.user_id AND b.dt = DATE_ADD(a.first_dt, 1) -- 次日留存,计算7日留存时改为7 GROUP BY a.first_dt

2.2 SQL题的高分策略:读懂业务场景比写对代码更重要

我见过不少考生,SQL语法倒背如流,但一碰到实际的业务描述就懵了。比如题目说“统计近30天有借款行为但近7天无借款行为的用户数”,这本质上是一个“差集”问题——先用近30天的用户集合,再剔除近7天的活跃用户。如果你能先把这个场景翻译成集合逻辑,再落到SQL上,就不容易漏条件。

这里分享两个我总结的实战技巧:

  • 先写逻辑,再写语法。动手写SQL前,先用两句话说完这段逻辑在做什么——“先按用户分组找出第一次活跃日期,再关联后续活跃记录算留存”。逻辑对了,SQL基本就对了。
  • 注意日期的开闭区间。很多SQL题查不出数据,不是因为语法错,而是因为边界条件搞错了。“近7天”到底是dt >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)还是dt > DATE_SUB(CURDATE(), INTERVAL 7 DAY),差一天结果就不同。建议在答题时先把区间条件写清楚,甚至注释出来,面试官看到这种习惯会加分。

3. Python、pandas与数据清洗实操:从数据到结论的必经之路

乐信这套题里,Python部分除了考基础语法,还会给一个实际的数据处理场景。常见的形式是:给你一张用户信息表,里面有缺失值、重复值、异常值,让你用Python完成清洗加工。这其实对应了热搜词里的“pandas+数据清洗和处理”“数据质量”等概念——在真实业务中,分析师70%的时间都花在“洗数据”上,而不是做分析。

3.1 pandas清洗数据的标准流程

假设题目给你一个DataFrame,包含用户的注册时间、借款金额、手机号、年龄等字段,要求你处理缺失值和异常值。我的处理套路通常是这样:

第一步,了解数据全貌。df.info()看字段类型,用df.isnull().sum()看缺失值分布,用df.describe()看数值列的分布情况。这一步能帮你快速判断哪些列需要重点处理。

第二步,处理缺失值。缺失值不是全都要删,也不是全都要填。对于用户ID这种键值字段,缺失了只能删掉;对于年龄、金额这种数值字段,可以用均值、中位数或众数填充;对于类别字段,可以单独填充一个“未知”类别。关键原则是:填充方式要符合业务逻辑

第三步,处理重复值。df.drop_duplicates(subset=['user_id'])去重,但要先想清楚去重的保留逻辑——保留第一条还是最后一条,取决于业务上哪个记录更有价值。

第四步,处理异常值。比如借款金额出现了负数、身份证号长度不对、注册时间在未来等。这三个都是典型的判断异常的场景。处理方式可以是直接删除、替换为缺失值、或者用上下限进行截断。

import pandas as pd import numpy as np # 常见清洗流程 df = pd.read_csv('user_info.csv') # 1. 处理缺失值:年龄用中位数填充 df['age'] = df['age'].fillna(df['age'].median()) # 2. 处理重复值:按user_id去重,保留注册时间最早的一条 df = df.sort_values('register_time').drop_duplicates(subset=['user_id'], keep='first') # 3. 处理异常值:借款金额为负的,视为异常记录,剔除 df = df[df['loan_amount'] >= 0] # 4. 日期格式统一 df['register_time'] = pd.to_datetime(df['register_time'])

3.2 Python编程题常见的出题方式

除了pandas操作,Python部分还会考一些偏基础编程的题目,比如“统计一个字符串里每个字符出现的次数”“合并两个有序数组”“实现一个简单的二分查找”。这些题看着简单,但笔试时间是有限的,速度就是分数。我的建议是平时多练collections.Counteritertools这类高频内置库的用法,能省不少时间。

另外有一类题容易被忽视——手写代码解决一个自动化需求。比如“监控一个数据文件是否在每天凌晨定时更新,如果超时没更新就发送告警”。这类题在2020年的数据分析笔试题里已经出现了,用Python的os.path.getmtime()判断文件修改时间,配合smtplib发送邮件,逻辑并不复杂,考的是你能否用编程解决实际问题。

3.3 做题时的两个“隐形杀手”

超时和内存溢出。如果题目要求处理的数据量很大,比如几百万行数据,你用for循环去遍历,速度会非常感人。这时候要考虑向量化操作——能靠pandas内置函数实现的,就不要用循环。

提示:处理大数据量时,pd.concat的性能往往不如pd.merge;用apply逐行处理,不如用np.where向量化处理。笔试时虽然不强制要求写出最优解,但优秀答案和及格答案的差距就在这里体现。

4. 统计概率与机器学习考点:区分“相关”与“因果”的科学武器

统计概率题在数据岗笔试里永远不会缺席,因为它直接决定分析师能不能给出靠谱的结论。乐信这套题在这个模块有个特点——不考死记硬背的公式推导,而是考你能否用统计思维解决业务问题

4.1 概率题常考的两个知识点

第一个是条件概率与贝叶斯公式。比如“一批用户中违约率为5%,风控模型预测违约的准确率为90%,误报率为10%,现有一用户被模型预测为违约,问其真实违约的概率是多少”。这道题的陷阱在于很多人会把“预测准确率”等同于“真实违约概率”,实际上需要用贝叶斯公式计算后验概率。根据题目给出的数字,先写出事件和条件:

  • 违约率:P(违约)=0.05
  • 模型预测真阳性率:P(预测违约|违约)=0.9
  • 模型误报率:P(预测违约|不违约)=0.1

那么P(违约|预测违约)=0.050.9 / (0.050.9 + 0.95*0.1)≈0.321。也就是说,即使模型说某用户会违约,真实概率也才三成左右。这类题考的不是计算,而是是否理解“前置概率”对结论的影响

第二个是期望值计算。比如“一个营销活动赠品分三种,成本不同,转化率不同,问期望收益是多少”。这类题只要把概率和收益相乘再求和就行,重点在于决策树思维——在不确定性面前,用期望值来指导决策。

4.2 AB实验设计题的答题套路

AB实验是数据分析师日常接触最多的统计方法,笔试也几乎必考。常见的问法包括:“某功能上线后,实验组转化率比对照组高0.5个百分点,能判断功能有效吗?”、“样本量怎么确定?”、“实验周期设多久合适?”

答这类题要特别注意“动手能力”。我看到很多同学的答案只写“用t检验”就结束了,这远远不够。更好的回答是给出完整的检验流程:

  1. 提出原假设和备择假设(H0:转化率无差异;H1:转化率有差异)
  2. 确定显著性水平(通常取0.05)和检验功效(通常取0.8)
  3. 根据预期效应量计算最小样本量
  4. 实验结束后,对两组转化率做两独立比例z检验,计算p值
  5. 如果p < 0.05,拒绝原假设,认为差异显著
  6. 再补充一步:对比两组在关键分层维度上的差异,防止辛普森悖论

这里有个细节很多人忽略——实验周期要覆盖一个完整的业务周期。比如贷款产品,至少要覆盖一个完整的还款周期,否则你看到的转化率差异可能是“新功能新鲜感”带来的,而不是真实效果。我在实际工作中就踩过这个坑,实验跑了三天就出了显著结果,结果放到两周后看,效果完全消失了。

4.3 机器学习基础题:从“调包”到“懂原理”

2020年的校招笔试题里,机器学习通常只占一小部分,但不代表可以完全放弃。考察方向一般包括:过拟合的解决办法、特征选择的方法、数据不平衡的处理手段、PCA的原理等。这类题的考察目的不是让你手推梯度下降,而是看你是否具备特征工程意识

最近两年,随着大模型和深度学习的热度起来,很多同学一上来就研究复杂模型,反而忽略了“结构化数据建模”的基本功。笔试面试中,面试官更看重的是你能不能用逻辑回归、决策树这类基础模型解决业务问题,因为这类模型有可解释性,在风控领域尤其重要。所以复习机器学习时,优先掌握基础模型的核心原理和适用场景,再用XGBoost、LightGBM这些进阶模型做补充。

5. 业务理解与场景题:数据人是如何用数据支持金融决策的

业务场景题是整套题里最容易拉分、也最考验“数据思维”的部分。乐信的业务是消费金融,所以场景题往往会围绕“风控”“增长”“运营”等方向展开。这类题没有标准答案,但有一套完整的分析框架会让你的答案明显高出别人一截。

5.1 指标异动类题目:用“拆解+归因”代替“我觉得”

典型的问法是:“某月平台新增借款用户数环比下降了20%,请分析原因。”

很多人的第一反应是“可能因为大环境不好”“可能因为竞争对手抢客户”。这类回答太笼统,面试官看了只会觉得你没有分析框架。一个及格的答案应该做到“先拆解、再归因”:

  • 维度拆解:先按渠道拆(不同广告渠道的新增用户变化分别是什么),再按城市等级拆(一线/二线/三线),再按产品类型拆(不同分期产品的用户量变化)。通过拆解,你把一个宏观的“20%下降”转化成了若干微观的“哪里降了”。
  • 归因分析:找出下降幅度最大的几个维度后,再进一步分析是“曝光量下降”还是“转化率下降”。如果是曝光量下降,大概率是渠道投放策略或预算调整导致的;如果是转化率下降,则可能和产品流程、利率调整、用户资质审核变严有关。
  • 数据验证:结合外部数据交叉验证,比如竞品同期数据、行业大盘数据。如果全行业在跌,那你的下降可能是共性问题;如果只有你在跌,那内部原因的可能性更大。

这个分析框架在职场上也同样适用。我见过一个实习生,刚来的时候只会说“数据下降了”,后来带他跑完一次完整的拆解归因,他就学会了用结构化的方式表达问题——这才是数据思维的核心。

5.2 策略设计类题目:从“想到”到“想到可落地”

另一类常见题是:“如何提升平台老用户的复借率?”这类题考的是运营思维和落地能力。

“发优惠券!做活动!”这种答案太天真。现实中的策略设计需要考虑成本、用户分层、触达方式、效果评估等多个环节。参考的实现思路:

  1. 先分层:按用户历史借款行为,把老用户分为高活跃、低活跃、流失边缘等客群。不同客群的诉求完全不同——高活跃用户不需要太多刺激,流失边缘用户则需要大力度的召回策略。
  2. 再定向策略:对低活跃用户,可以设计“限时免息”或“提额”策略;对流失边缘用户,可能要用“新品体验”或“专属客服”的方式触达。
  3. 再定评估方式:策略上线前,先设计好AB实验方案,明确实验组和对照组的拆分逻辑,以及核心评估指标和护栏指标。
  4. 最后考虑成本约束:营销预算有限,要用有限的成本撬动最大的增量,因此必须按用户价值排序来分配预算。

这类题的得分点在于:你有没有把策略想完整,而不是只说出一个点子

5.3 金融数据岗特有的敏感点:风险与合规意识

在金融科技公司做数据,还有一个特别的考察点——风险合规意识。笔试中可能会问:“如果让你分析用户的消费行为数据,有哪些需要注意的地方?”这个问题其实是在考察你对用户隐私和数据安全的态度。作答时应该提到:数据脱敏、最小可用原则、权限管控等。2020年后,数据合规的要求越来越高,面试官非常看重候选人有没有这个意识。

这几年我在带校招生的时候,也发现了一个现象——技术能力强的人不少,但能同时把“懂业务”和“有合规意识”落到实处的稀缺。如果你能在笔试中就展现出这种意识,会是一个非常加分的差异化优势。

6. 笔试复盘与备考建议:把一套题的价值榨干

题目本身是有限的,但一套好题背后反映的能力要求是长期的。乐信这套2020年的笔试题,放到现在看依然很有参考价值。想把这套题的价值榨干,我在备考和带人的过程中总结了几点经验,供你参考。

6.1 刷题不是目的,构建知识体系才是

很多同学喜欢大量刷题,刷完一套忘了上一套,这种“题海战术”对数据岗笔试并不高效,因为数据岗的考点范围相对固定,重要的是把每个知识点的原理搞懂。我自己复习时的习惯是:每做完一道题,不管对错,都写一个“考点卡片”——这道题考的是什么知识点、解题的关键路径是什么、如果我做错了错在哪里。这样复习到最后,你会发现题目千变万化,但考点就是那么几十个。

6.2 平衡刷题与业务理解

还有一个常见的误区是只看技术题,不关注业务。我经常对准备校招的同学说:数据岗笔试和技术岗笔试最大的区别,在于它永远有“业务场景”这个维度。纯代码题可以通过刷题解决,但业务场景题需要平时积累——比如多关注一些数据分析社区、多看行业分析报告、在实习中有意识地思考业务逻辑。这些东西不是考前突击能补上的。

6.3 时间分配与答题节奏

笔试的时间通常比较紧张,合理的时间分配能让你多拿不少分。我的建议是:先快速浏览所有题目,按“会做的题 > 有思路的题 > 需要硬啃的题”的顺序答题。SQL和Python题如果卡壳了,不要死磕超过10分钟,先跳过做后面的统计和业务题——这些题更容易拿分。一套试题,最重要的是“总分最大化”,而不是“单题完美”。

关于答题节奏,我还有一个独门技巧:在笔记本上把每个模块的预估用时先列出来,比如SQL 30分钟、Python 20分钟、统计概率20分钟、业务场景20分钟,留下10分钟检查。这样做的好处是,你不会在前面的难题上耗费太久,导致后面的送分题都没时间做。

6.4 从笔试题看职业方向:数据这条路怎么走

最后说点题外的。这套笔试题的背后,其实映射了数据岗位的职业发展方向。从热搜词里能看到“数据分析师”和“数据科学与大数据技术就业方向”被大量搜索——这反映出很多同学对数据岗的职业路径还不清晰。数据岗细分下来,有偏底层建设的数据工程师、偏分析洞察的数据分析师、偏模型算法的机器学习工程师,还有近几年越来越重要的数据治理工程师。

不同方向,笔试侧重点完全不同。如果你想做分析师,那就多练业务场景和统计学;如果你想做算法,那机器学习和数据结构就要多花功夫;如果你想做数仓工程师,那SQL和底层原理就是重中之重。先想清楚方向,再针对性准备,效率远高于无差别刷题

写在最后:一些实操体会

现在回头看乐信2020年这套校园招聘数据笔试题,最大的感受是:它考察的很多东西,不只是“能不能进面试”的门槛,更是你未来在职场上能不能站稳脚跟的基本功。SQL、Python、统计学、业务思维,这四个能力里,前三项可以通过短期内的高强度训练快速提升,但业务思维需要长期积累和刻意练习——多看、多想、多拆解身边的业务案例。

最后分享一个小技巧:准备笔试的时候,不要只看题目本身,最好把题目当成一个“项目”来做。每道题做完后,问自己一句“如果这是一个真实需求,我会不会做得更好?”带着这种心态刷题,收获会比单纯刷题多出一倍。希望这套拆解能帮你在数据岗校招的路上少踩几个坑。数据这条路很长,方向对了,每一步都算数。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 22:03:51

树状数组精讲:从二进制索引到逆序对与第K小问题

树状数组&#xff08;Binary Indexed Tree&#xff0c;又称 Fenwick Tree&#xff09;是一种轻量级的区间数据结构&#xff0c;常用于单点更新和前缀和查询。它能把一次更新或一次查询从 O(n) 降到 O(log n)&#xff0c;而且代码量只有十来行&#xff0c;非常适合在算法题、实时…

作者头像 李华
网站建设 2026/9/1 22:02:54

腾讯音乐暑期实习笔试复盘:后端开发算法题与备考策略

收到腾讯音乐娱乐&#xff08;TME&#xff09;2023暑期实习生招聘技术类笔试&#xff08;I&#xff09;的邀请邮件&#xff0c;是在一个工作日的下午。我当时正在图书馆里刷LeetCode&#xff0c;看到邮箱提醒弹出来&#xff0c;第一反应是确认考试时间&#xff0c;第二反应是有…

作者头像 李华
网站建设 2026/9/1 22:02:46

STM32F103+12864点阵LCD多级菜单设计:表驱动框架从零实现

简介&#xff1a;本资源是一份面向嵌入式初学者与中级开发者的STM32人机交互实战项目&#xff0c;聚焦STM32F103微控制器驱动12864点阵LCD并实现多级菜单功能&#xff0c;解决工业控制、智能家居等场景中图形界面开发与用户交互设计的实际问题。压缩包为RAR格式&#xff0c;大小…

作者头像 李华
网站建设 2026/9/1 21:59:26

基于Pytorch的视觉操作关系推理与多物体抓取系统实战

简介&#xff1a;本资源是一个面向机器人视觉与工业自动化领域的PyTorch实战项目&#xff0c;聚焦于视觉操作关系推理与多物体协同抓取任务&#xff0c;适用于具备深度学习基础的算法工程师、高校研究者及智能机器人方向开发者。系统基于VMRD数据集训练验证&#xff0c;融合Cas…

作者头像 李华
网站建设 2026/9/1 21:56:00

x64dbg脚本编程:从手动调试到自动化逆向分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/1 21:55:36

Three.js 3D机房可视化项目源码拆解与二次开发指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华