尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

2023牛客模考(五模)数据分析笔试复盘:考点拆解与实战策略

2023牛客模考(五模)数据分析笔试复盘:考点拆解与实战策略 2023牛客模考五模数据分析笔试复盘从考点拆解到实战策略每年的这个时间点都是数据分析岗求职者最焦灼的阶段。刷了大量面经、背了一堆业务模型结果一到笔试环节发现三个小时根本不够用甚至在SQL窗口函数上卡了半小时。牛客模考五模这套数据分析笔试卷我前后做了两遍第一遍勉强压线第二遍整理完考点之后正确率明显上了一个台阶。这篇文章不打算写那种“XX题选A”的答案流水账而是把这套模考题背后的考察逻辑、每类题型的破题思路、以及我在实际作答过程中遇到的坑和应对方式完整复盘一遍。无论你是在准备校招还是打算跳槽这套试卷涵盖的知识点分布都很有参考价值——统计概率、SQL、Python、业务案例分析基本把数据分析笔试常驻题型都覆盖到了。文末我也会聊一下时间分配策略和错题复盘的具体方法希望能帮正在备考的你少走一点弯路。1. 五模试卷的题型分布与考察重点拿到一套卷子不要急着埋头做。先用五分钟把整份试卷扫一遍搞清楚每道题的分值、难度和考察方向心里有数之后再动手效果比闷头刷题好得多。我复盘了牛客模考五模这套题整体题型大致可以分成四块模块题量占比主要考察点统计概率与业务常识约30%假设检验、概率计算、抽样方法、业务指标体系SQL编程约30%窗口函数、多表关联、聚合函数、时间函数、去重写法Python数据分析约20%Pandas数据处理、数据清洗、可视化基础、算法逻辑业务案例分析约20%指标体系搭建、AB实验设计、异动归因、运营策略这个分布和多数互联网公司数据分析岗的笔试结构很接近。统计概率和SQL是基本盘占比最大属于“基础题不能丢分”的板块。Python题通常给一段代码让补全或判断输出结果难度不会太深但容易在细节上翻车。业务案例分析则是拉分项没有标准答案考察的是分析框架和逻辑表达。有意思的是这套模考里统计概率部分的题目比我想象中更偏应用——题干给场景、选项是结论而不是纯粹的计算题。这意味着死记硬背公式已经不够用了你得理解每个统计方法在什么业务场景下用、为什么用、结果怎么解读。还有一点需要提醒这套卷子里有多选题而且不少是“以下说法正确的是”这种形式。多选题的评分规则通常是少选得部分分、错选不得分所以拿不准的选项宁可不选。我用第一遍刷题时吃过这个亏——一道关于置信区间的多选我为了展示“知识面”四个选项全选了结果有一个表述不严谨整题零分。这种亏大家在模考中越早踩越好总比正式笔试时丢掉送分题强得多。2. 统计概率题高频考点和常见陷阱统计概率是数据分析笔试里最容易拿分也最容易丢分的部分。说容易拿分是因为考察范围相对固定说容易丢分是因为出题人特别擅长在选项的文字表述上做文章——公式你都懂但稍不留意就会选到那个“看起来对”的错误选项。2.1 假设检验重点不在计算而在结论解读五模考卷里有两道假设检验相关的题目。一道是给出一组A/B测试的p值为0.03显著性水平为0.05问结论是否正确。这里考察的是p值定义的理解——p值是在原假设为真的前提下观察到当前样本结果或更极端结果的概率。很多候选人会把它解读成“原假设为假的概率”这是经典的误解。正确结论是差异在统计意义上显著可以拒绝原假设但不代表实际业务效果一定足够大还需要结合效应量来判断业务价值。另一道题考的是第一类和第二类错误。这类题几乎每一套笔试题都会出现考察方式通常是给一个场景比如医疗检测、风控拦截问哪种错误的代价更高。在数据分析业务场景里第一类错误意味着“没有效果却投入了资源”第二类错误意味着“有效果却错过了机会”。不同行业侧重点不同比如风控更怕放过坏人第二类错误的代价更高但营销场景里频繁打扰用户第一类错误的代价可能更大。答这类题不要只套定义要结合场景分析。2.2 概率计算题贝叶斯公式不是每次都需要模考里有一道关于产品转化率的概率题某产品新用户转化率为20%老用户转化率为40%新老用户比例为6:4问随机抽取一名用户其发生转化的概率是多少。这就是一道全概率公式的应用题。有些同学看到“已知条件有两个转化率”就马上上贝叶斯其实这里只需要做加权平均0.6乘以0.2加上0.4乘以0.4结果是0.28。贝叶斯公式的典型问法是“已知某用户发生了转化求他是新用户的概率”这时候才需要用到后验概率。拿到概率题先区分清楚题目要求的是“全概率”还是“后验概率”这是快速正确作答的关键。还有一个高频陷阱是“条件概率的方向性”。比如“在转化用户中新用户占比”和“在新用户中转化用户占比”完全是两个不同的概率。前者是P(新用户|转化)后者是P(转化|新用户)。做题时要养成圈出“在……中”“的概率”这些关键词的习惯很多错误都是在这里发生的。2.3 分布判断与抽样方法五模还有一道题问某App的次日留存率在长期运营中基本稳定但某天突然大幅下降更适合用哪种分布来建模答案是泊松分布用来描述单位时间内随机事件发生次数的分布。这道题的核心不是计算而是理解各类分布的适用场景。二项分布描述固定次数下的成功次数正态分布描述连续型数据的分布指数分布描述事件发生的时间间隔。把这些分布的业务含义弄清楚比刷一百道计算题更有用。抽样方法的考察也不难主要区分简单随机抽样、分层抽样、整群抽样和系统抽样。模考题里的场景是将用户按城市维度分组然后从每个城市随机抽取一定比例用户做问卷调研这属于分层抽样。关键判断点是“先分组再在各组内随机抽”。如果题干描述的是“随机抽取若干城市对选中城市的全部用户调研”那才是整群抽样。这两个概念在笔试中非常容易混淆。3. SQL题窗口函数和表关联的实战套路SQL是数据分析笔试中占比高、规则清晰、最容易通过短期训练拿到高分的板块。五模的SQL题主要围绕订单表、用户表、支付流水表展开题型涵盖了窗口函数排名、多表关联聚合、时间序列处理和经典的去重写法。3.1 窗口函数排名问题记住“三大件”模考的第12题是一个非常典型的排名场景-- 现有订单表orders(order_id, user_id, order_date, amount) -- 需求查询每个用户金额最高的前3笔订单 SELECT user_id, order_id, amount, order_rank FROM ( SELECT user_id, order_id, amount, ROW_NUMBER() OVER ( PARTITION BY user_id ORDER BY amount DESC, order_date ASC ) AS order_rank FROM orders ) t WHERE order_rank 3;窗口函数是数据分析笔试SQL题的绝对重点。绝大多数公司笔试题中窗口函数必考而且至少占SQL题的一半以上分值。常用的三个排名函数要分清楚ROW_NUMBER()唯一连续排名即使金额相同排名也不同RANK()相同金额会重复名次后续名次跳过如1、1、3DENSE_RANK()相同金额重复名次后续名次不跳过如1、1、2。五模有一道题就是让判断这三个函数的区别给出了相同的数据集问哪一种写法可以保证每个用户查询到的订单数恰好是3笔。答案是ROW_NUMBER()。因为用RANK()或DENSE_RANK()时如果出现并列第3名实际查询出来的记录数会超过3笔。这个细节很重要很多同学知道三个函数的名字却不知道在真实业务里“取TopN”场景下该选哪个。3.2 多表关联聚合先明确粒度再写GROUP BY模考里有一道计算“用户首单品类分布”的题。底层有用户注册表含注册日期、城市、订单表含订单号、用户ID、订单日期、品类、支付表含支付单号、订单号、支付金额。这道题的正确思路是先用窗口函数或MIN(order_date)找到每个用户的首单时间再关联订单表取出首单对应的品类最后按品类聚合统计。我第一遍做的时候直接三表JOIN后GROUP BY结果首单品类被算重了——因为一个用户有多笔订单直接关联会把非首单的品类也带进来。这里有一个重要经验多表关联前先问自己“关联后的行粒度是什么”。三张表关联后每一行代表的是“某个用户某个订单的某次支付记录”在这个粒度上做用户级别的首次行为分析逻辑上就是错的。正确做法是先在子查询里把用户首单算好再回到明细表取首个订单记录。整体SQL写法如下WITH first_orders AS ( SELECT user_id, MIN(order_date) AS first_order_date FROM orders GROUP BY user_id ) SELECT o.category, COUNT(DISTINCT fo.user_id) AS user_cnt FROM first_orders fo LEFT JOIN orders o ON fo.user_id o.user_id AND fo.first_order_date o.order_date GROUP BY o.category;很多实际业务指标都是这种“先取特征再关联明细”的套路笔试中把这种结构练熟基本能应对80%以上的关联聚合题。3.3 去重写法COUNT(DISTINCT)还是ROW_NUMBER模考里有一道“统计有支付行为的独立用户数”的题。用户表里同一个用户ID可能出现多次比如一个用户有多个设备ID支付表中一个用户也可能有多笔支付记录。最稳妥的写法是用COUNT(DISTINCT user_id)直接在支付表上计数。但如果表非常大COUNT(DISTINCT)可能性能较差。笔试中通常不会考性能优化这种深度但面试官可能会追问所以备一手ROW_NUMBER()去重方案会显得更专业。在写SQL时还有一个容易踩的坑LEFT JOIN和INNER JOIN的语义差异。统计“有支付行为的用户数”时如果使用FROM users LEFT JOIN payments未支付的用户也会被保留需要WHERE p.payment_id IS NOT NULL来过滤。很多笔试多选题会故意把JOIN类型和WHERE条件搭配成迷惑项让你判断哪种写法能得出正确答案。SQL部分的整体备考建议是把牛客SQL题库里的窗口函数题、TopN题、连续登录题全部刷一遍再整理几个常用模板连续登录N天、累计求和、同环比计算、分组TopN笔试时基本可以直接套用。4. Python题读题、补全、输出的细节把控五模的Python题目不要求你从零写一个完整脚本更多是给出一段代码让你判断输出结果、找出错误或者补全缺失的代码行。这其实比手写代码更考验对API细节的掌握程度。4.1 Pandas数据清洗inplace和链式操作的坑模考里有一道关于Pandas处理缺失值的题给定一个DataFrame问下面哪种写法可以正确删除含有缺失值的行# 选项1 df.dropna(inplaceTrue) # 选项2 df df.dropna() # 选项3 df.dropna()正确答案是选项1和选项2选项3没有赋值也没有设置inplace所以不会对原数据产生任何影响。这个知识点看似简单但每年都有一批人在这里丢分。究其原因是把Pandas的API行为和返回机制搞混了。记住一个原则Pandas中大多数方法默认返回新对象不会修改原DataFrame除非显式传入inplaceTrue。但是在链式调用中inplaceTrue可能会导致SettingWithCopyWarning所以更推荐的实践是老老实实用df df.dropna()这种显式赋值方式。4.2 GroupBy聚合as_index参数的影响还有一道题要求判断分组后得到的数据类型。df.groupby(category).sum()输出的结果索引是什么答案是category列。这是因为groupby默认情况下as_indexTrue分组的键会变成结果DataFrame的索引。如果要把category恢复成普通列需要加.reset_index()。很多刚入门的朋友会在这道题上栽跟头因为他们直接用列名去取数据报KeyError之后才发现索引层级的问题。这类细节问题在笔试中很常见但不代表只能靠背。平时写代码时养成一个习惯每做一个groupby或聚合操作都打印一下.info()和.head()看一下结构时间长了自然就能预判结果。4.3 数据可视化与业务分析脚本五模的Python题还涉及了一道简单的可视化代码判断核心考点是plt.bar和plt.plot的参数区别。plt.bar需要设置条形图的宽度、颜色plt.plot适合画折线图。这类题对做过完整项目的人来说非常简单但只看书不动手的同学容易混淆。总的来说Python题部分不是靠考前突击能拿高分的需要平时在项目中真正用过这些函数。如果时间有限优先掌握Pandas的这几类操作数据读取与预览read_csv、head、info、describe、缺失值处理dropna、fillna、行筛选布尔索引、query、列操作rename、astype、分组聚合groupby、agg、拼接concat、merge、排序sort_values。把这些烂熟于心笔试中90%以上的Pandas题都能应对。5. 业务案例分析题框架比结论更值钱业务案例分析是数据分析笔试的拉分项。这类题目通常没有标准答案但并不代表可以随意发挥。评分老师看的是你的分析框架是否完整、逻辑是否严密、能否把业务问题转化成可执行的数据方案。五模的业务案例题是这样的某内容社区App近期新用户次日留存率从35%下降到28%假设你负责这次异动排查请描述你的分析思路。这类问题在真实工作里就是“异动归因”也是面试中最高频的场景题之一。我建议按照以下框架来作答第一步确认数据口径。先确认次日留存率的计算口径是什么——是按注册当天是否有登录行为定义还是按注册当天是否有内容浏览行为定义近期口径有没有调整过统计周期有没有从T1变成实时计算从而导致数据延迟这些问题看着基础但实际工作中80%的“异动”最后都查出来是口径问题或底层数据问题。第二步做维度拆解。增长可能不是全量下降而是某个特定维度下暴跌。常用维度包括新增渠道、设备型号、系统版本、App版本、地域、注册时段、用户注册前的行为来源。拆解之后才能找到“哪里出了问题”比如某个渠道买量质量下滑或某个版本更新引入了必现Bug。第三步看同期事件。这个时间窗口内业务做了什么调整有没有改版、推送策略变化、积分体系调整、推荐算法变更把这些事件列出来与留存率下降的拐点时间进行对比可以快速缩小排查范围。第四步做AB分析或因果推断。如果怀疑是某个功能改版导致的体验问题可以通过分组对比分析看受影响用户和未受影响用户的留存差异或者用双重差分法来估计影响幅度。第五步给出建议。不要只说“问题可能是由XX引起的”要进一步说明如果确认是渠道质量下降是暂停投放还是调整定向策略如果是版本问题是紧急回滚还是在下个版本修复。回答要有可落地性。这道题在模考中分值最高也比较能拉分。我的体会是案例分析题考查的不是你能不能找到正确答案本来也没标准答案而是你有没有一套稳定的分析框架能不能在限定篇幅内输出一条逻辑完整的分析链路。平时在准备时多练习“异动归因”类问题把上面这套框架内化成自己的表达笔试题不用怕面试场景题也能顺带一起练了。AB实验设计也值得单独说一嘴。模考中有一道选择题问实验组和对照组样本量相同实验组指标显著高于对照组是否可以判定功能有效并全量上线正确答案是不能因为还需要考虑以下因素样本量是否足够检验出预期效果、指标是否经过多重假设检验校正、实验是否运行了足够长的周期以覆盖时间效应比如新奇效应、是否考虑过用户分组之间的干扰。这道题背后的潜台词是数据分析师不能只看p值还要看整个实验设计是否合理。6. 笔试时间分配策略与复盘方法模拟考最大的价值不是让你背住某几道题的答案而是让你在真实考试节奏下找到自己的弱点。时间分配和复盘方法其实比多刷一套题更能提高笔试竞争力。6.1 三类题的时间优先级我的策略是用总时长的50%做SQL题30%做统计概率和业务分析20%做Python题。原因是SQL题分值高、规则明确是笔试中的“稳分项”Python题通常只有几道且题干较长花太多时间性价比不高。但要注意如果某个SQL题卡了超过15分钟先跳过最后有时间再回来看——不要因为一道题卡死打乱整场节奏。统计题里如果遇到复杂的贝叶斯计算先估算一下计算量如果五分钟内做不出来可以先选一个最可能的答案并标记做完其他题后再回来验证。在牛客的在线笔试系统里所有题目可以自由往返利用好这个特性。多选题策略前面提到过不确定的选项不选。少选最多扣一半分错选直接零分。在数据岗笔试中多选题的分值占比不低保守策略整体上更划算。6.2 建立个人错题本第二遍做五模卷子时我建了一个简单的错题表格记录每道题的错误原因分成几类知识盲区根本没学过、概念混淆学过了但理解不准确、粗心失误会做但看错了题目条件、时间不足其实能做但对题目不熟导致耗时太长。分类之后复习重点就很清晰了。针对知识盲区短期解决方案是找到对应模块的专项题库集中刷20到30道同类题快速补齐。针对概念混淆比如ROW_NUMBER和RANK的区别这类问题建议自己整理一张对比表格把易混淆的知识点放在一起记忆。对于粗心失误唯一的解决方式是在交卷前留出十分钟专门检查题目条件特别是判断题中的“不属于”“错误的是”这类否定词。在复盘过程中我还养成了一个习惯不仅看正确选项还要分析错误选项为什么错。一道统计题如果选错了我会逐个选项研究一遍写下每个选项对应的知识点。很多出题人设置的干扰项都来自真实工作场景中的常见误解比如“置信区间越窄说明数据质量越好”“p值小于0.05说明效果一定显著”这类说法在业务沟通中也确实是很多人经常挂在嘴边的话。笔试现场看似是一道选择题其实是在帮你校准对这些概念的准确理解这对后续面试表达和实际工作都有帮助。6.3 推荐练习资源我自己备考时实践的补充训练组合按优先级排列牛客网SQL题库重点是窗口函数专项、经典TopN题连续登录问题、分组TopN、同环比计算统计概率基础刷历年校招真题卷里的统计选择题不需要做太偏的数理统计证明题但概率计算和假设检验的应用题一定要练熟Python/Pandas实操推荐用真实数据集比如Kaggle的电商订单数据练手把常见的数据清洗和聚合操作写成自己的“工具箱”脚本笔试时看到题目能快速反应出对应API业务案例分析每天抽15分钟做一道异动归因题或指标设计题练完不求多但每一次都要按框架完整写下来。这套组合练下来大概一两周就能感觉到做题速度和处理陌生情境时的不慌程度有明显变化。模拟考的意义不在于预测分数而在于把可能会摔的坑提前暴露出来。五模这套卷子我做了两遍第二遍做的时候明显更从容因为知道自己擅长什么、薄弱点在哪里、遇到卡壳该先跳过还是继续啃。希望这篇复盘笔记能帮你把自己的备考路径理得更清楚一些。最后再分享一个小技巧每次模考结束后花15分钟把所有题目快速过一遍把每道题对应的知识点写下来然后和往年的笔试真题做对比你就能大致总结出这家平台或目标公司出题人的偏好和变化趋势。笔试做多了你会发现知识点的重复率其实相当高认真做一次错题复盘比盲目刷五套新题都更有用。
返回列表