
聊到网易2018校招数据挖掘工程师的笔试卷很多准备校招的同学私信问我到底考什么、该怎么复习。我在国内某厂做数据挖掘也快五年了带过几届实习生也帮部门出过笔试题对这类校招笔试的出题思路还算熟悉。今天就把网易这套校招数据挖掘笔试卷拆开聊一聊从考察方向、核心考点、答题策略到复习路线把我的真实经验全部摆出来。无论是正在准备秋招的应届生还是想转行数据挖掘方向的朋友这篇都能帮你少走不少弯路。网易这套卷子我整体刷下来的感觉是不刁钻但覆盖面很全特别看重基础功和业务直觉。它不像有些公司喜欢出偏题怪题来卡人而是通过一批“看着眼熟但细节多变”的题目把基础扎实和只会背八股的同学区分开。如果你现在正在为数据挖掘岗笔试发愁这篇文章建议先收藏然后花半小时认真消化一遍。1. 网易校招数据挖掘笔试的考察全局1.1 网易的出题风格与筛选逻辑先说一个很多人容易忽略的点网易笔试的考察逻辑不是看你“会不会”某个算法而是看你在“真实业务约束下还能不能把算法用对”。它跟学校期末考试不一样学校考的是公式定理的复现笔试考的是面对不完整信息时做决策的能力。整套卷子下来我印象最深的几个出题特点是题型混合度很高选择、填空、简答、手写推导、SQL、编程题全都有。这就决定了你没法用“只刷算法题”来糊弄过去每一块都得有一定的储备量。时间分配上如果你在选择题上卡太久后面的SQL和编程题基本来不及做完。业务场景嵌入很深它不会直接问你“什么是过拟合”而是给你一个具体的业务场景比如网易云音乐的歌单推荐、严选的商品销量预测问你在这种场景下怎么识别和解决过拟合。这种题目看着不难但如果没有真实项目经验答起来就会很空抓不住得分点。基础概念考察灵活针对经典算法不只是问优缺点而是深入到“当数据出现某种变化时这个算法的结果会不会变”这种细节层面。比如数据归一化之后决策树的结果变不变K-Means初始点选不好会有什么后果这类题目是拉开差距的关键。结合这些特点我建议的复习策略是不要死记硬背机器学习算法的结论而是要把每个算法的“最底层假设”和“业务适用边界”吃透。只有理解了模型为什么在这个业务下能用、换个业务为什么可能失效面对网易这种偏业务场景的出题风格你才能做到游刃有余。1.2 整体考点分布与分值格局网易这套卷子在我看来考点分布大致可以分成四块机器学习与概率统计、数据结构与算法、数据库与SQL、特征工程与业务场景题。从分值占比看机器学习和概率统计是绝对的大头估计占了40%以上这也符合数据挖掘工程师岗位的核心要求。数据结构与算法相关的代码题大概占20%-30%主要目的是“确保你真的会写代码而不是只会理论”。SQL和业务题大约占20%-30%这部分是很多科班出身但项目经验不足的同学最容易丢分的地方。从难度梯度上看这套卷子设计得相当有层次。基础题大概占50%主要考察概念定义和经典结论比如“什么是偏差方差分解”“常见聚类算法的区别”这是决定你是否能过线的保底分。进阶题大概占30%需要你做一些推导和计算比如给我一组数据让你手动计算ID3决策树的信息增益或者推导逻辑回归的梯度更新公式。区分题大概占20%这些题目没有标准答案更像是在跟面试官对话考察你的思路是否清晰、能否把问题拆解清楚。我把这四块的复习优先级排了个序机器学习基础概念尤其是算法原理与适用边界 概率统计计算能力 SQL和编程基础 业务场景题框架。把这个优先级吃透了你备考时就知道时间该往哪里砸了。2. 核心考点拆解机器学习与概率统计2.1 经典机器学习算法的高频考法网易笔试在机器学习算法部分的考察最常出现的算法是逻辑回归、决策树、SVM、朴素贝叶斯、K-Means、随机森林和GBDT。注意我这里说的是“频繁出现”而不是“全部出现”你可以根据目标岗位方向做局部调整但核心算法群基本就是这些。逻辑回归的考察深度在“损失函数推导”和“正负样本不平衡怎么办”。笔试里很可能给你一个逻辑回归的损失函数让你化简求梯度。这里有个容易出错的地方很多同学能背出交叉熵损失函数的样子但一问到“为什么逻辑回归要用交叉熵而不是均方误差”就愣住了。交叉熵配合sigmoid求导之后梯度是干干净净的没有sigmoid饱和区导致的梯度消失问题而均方误差在sigmoid两端梯度几乎为0收敛会非常慢。这个解释你写上去阅卷人一眼就知道你真的懂。决策树这边重点绕不开信息增益、信息增益比和基尼系数。我之前见过一道印象很深的题给一个只有8个样本的小数据集让你手算当某个特征被选为分裂节点时ID3和C4.5分别选哪个特征。这个题看上去简单但手算过程非常考验细致程度对数计算稍微马虎一点结果就不对。我建议备考时把决策树的三种分裂指标的纯手工计算练到滚瓜烂熟别依赖sklearn否则考场上一紧张真的会算错。SVM的经典考点是“硬间隔、软间隔的区别”“核函数的作用与选择”“为什么SVM对高维稀疏数据友好”。我当时备考时的一个心得是不要死磕SVM的完整对偶推导但一定要理解“最大间隔”这个直觉以及核函数本质上是在做“隐式的特征映射”。把这两个点吃透了SVM相关题目基本不会丢分。对于朴素贝叶斯网易很喜欢考“条件独立性假设在现实业务中失效了怎么办”这个点。比如在文本分类场景中“的”和“地”这两个词在语法功能上相关但朴素贝叶斯假设它们独立。这种题没有标准答案核心是在考你有没有意识到“假设不成立时模型会怎样”“实际工程中我们是怎么绕过去的”比如用特征选择干掉强相关特征或者换用线性SVM/逻辑回归。聚类算法里K-Means和DBSCAN是高频双雄。K-Means的考察重点是K值怎么选、初始点怎么选、对离群点敏不敏感。DBSCAN的考察重点是两个参数eps和min_samples怎么取值以及它为什么能处理不规则形状的簇。这道题可以当作业务分析题来答因为它本质上问的是“你拿到一堆无标签数据怎么用合理的流程把它们聚成有业务含义的群体”。2.2 概率统计题的三大方向概率统计在数据挖掘笔试中的地位怎么说都不为过。网易这套卷子的概率统计题我总结为三个方向条件概率与贝叶斯公式、期望与方差的性质、常见分布的参数估计。贝叶斯公式基本是必考但网易不喜欢考裸公式而是喜欢套一个业务场景。比如“网易严选的一个商品推荐位点击率是0.1在点击的人中最终购买的概率是0.3在未点击的人中购买概率是0.1现在已知一个人购买了求他曾经点击过的概率”。这题用贝叶斯公式一套就能做关键是条件概率的分母要用全概率公式展开很多同学在这步漏项。这类题考察的是谨慎而不是技巧。期望与方差的考察相对简单但容易丢分的是“独立随机变量期望方差的性质”和“协方差与相关系数的区别”。给你两个分布让你求新随机变量的期望和方差这是必须拿分的题。考试时可以把常考的几条性质提前写在小本子上考前当天翻一遍非常管用。常见分布的参数估计网易倾向于考最大似然估计。比如给一组服从正态分布的样本让求均值和方差的最大似然估计。这题唯一的坑是方差的最大似然估计是有偏的它除以的是n而不是n-1。很多人在这一步纠结要不要修正为无偏估计但题目如果明确写“求最大似然估计”那就不要修正严格按似然函数最大化步骤来。这个细节阅卷时是能看出你基础扎不扎实的。2.3 手写推导与计算题的经验网易笔试里有一类题是“纸上推公式”很多同学一看就慌。其实这类题看起来吓人但背后就是照着固定的几套路子在走。我备考时把常见推导分成四类线性模型推导逻辑回归梯度、线性回归闭式解、概率模型推导最大似然估计、朴素贝叶斯分类器、距离计算欧氏距离、曼哈顿距离、余弦相似度在具体数据上的计算、树模型的信息增益计算。做这类题我有个特别实用的建议平时练习一定要用纸笔完整地推每一个公式不要眼高手低地只看不写。逻辑回归的梯度推导你把链式法则展开到每一步都写清楚考场上的手速和心态都会好很多。另外还要注意书写规范推导过程不要跳步因为它不是选择填空题阅卷老师是按步骤给分的跳步丢分真的很可惜。还有一个很多同学不知道的细节手写推导时字母不要写得模棱两可比如“l”和“1”、“z”和“2”容易混阅卷时产生歧义是会扣分的。这是我当年惨痛教训写公式跟写代码一样宁可慢一点也要保持清晰。3. 特征工程与业务场景题3.1 特征处理与特征选择的高频思路特征工程这块网易笔试的出题水平是我见过比较高的它不会让你背“什么是独热编码”而是会问你在“某个具体场景下你会怎么做特征”。这里我推荐一个特别好用的答题框架先回答缺失值、异常值怎么处理再回答特征缩放和编码怎么做最后回答如何做特征选择和评估。这三个层次递进下来就是一套完整的特征工程SOLUTION。缺失值处理经常会提到的就是均值/中位数/众数填充但要拿高分你必须多补一句“根据业务含义决定是否填充、用什么填充”比如点击率预估值缺失直接用0填充可能比均值填充更合理。异常值处理不要只说“3σ原则”还可以补充基于IQR的方法和基于业务规则的方法比如某个订单金额超过历史峰值10倍就不该用统计方法而是应该先跟业务确认是不是数据错误。特征编码这里独热编码和标签编码的区别是基础一定要知道。但网易更可能考的是“高基数类别特征怎么处理”。比如用户ID这种上千万级别的类别直接独热编码会把特征维度炸开。实践中常用的是频数编码、目标编码、Embedding编码。笔试时你能把这些方法都讲清楚并且说清楚各自的风险比如目标编码容易过拟合基本就是满分水平。特征选择上过滤式、包裹式、嵌入式这三大类你都要能说清楚并给出对应的代表方法。我给你的记忆方法是过滤式就是想快速筛选不依赖模型比如卡方检验、皮尔逊相关系数包裹式是把模型当作“试金石”比如递归特征消除RFE嵌入式是模型训练过程中自己选比如L1正则和树模型的特征重要性。网易很爱考“L1正则和L2正则对特征选择的影响有什么不同”本质就是在问嵌入式特征选择。L1会把不重要的特征系数压到0天然做选择L2只会让系数变小但不会为0起的是防止过拟合的作用。3.2 业务场景题的回答框架与话术业务场景题是网易笔试的“区分题”它考察的不是某一个算法而是你面对一个不确定的业务问题时能否有条理地把它拆成一个可执行的机器学习方案。我总结了一套万能四步框架每次遇到这种题都按这个走基本不会乱。第一步定义问题和目标。把业务问题翻译成数学问题。比如“预测严选商品未来7天销量”你要说清楚这是回归问题还是时间序列问题、预测粒度是SKU还是品类、评价指标用MAE还是MAPE。第二步数据与特征。说清楚需要哪些数据数据从哪来如何构造特征。第三步模型选型与训练。给出候选模型说明为什么选它如何做验证。第四步评估与上线。说明用什么指标评估效果如果效果不好怎么迭代如何做AB实验。回答业务场景题的时候一定要把“为什么要做这一步”说清楚不要只列步骤。比如你说“对异常值做处理”阅卷人可能会想“用什么方法处理为什么用这个方法”你补上一句“销量为负的日期是明显的异常应该剔除而不是填充”这个回答就会立刻显得有实战经验。另外业务场景题的答案没有唯一标准我见过很多同学在这类题上写“我用XGBoost建模”就完事了这样只能拿及格分。高分答案的差异在于有没有人提出“这个问题其实可以拆成两个子问题”例如销量预测可能应分别对待新品和存量品因为新品没有历史数据需要用相似品的数据来迁移这种洞察一下就拉开了差距。4. 数据结构、编程与SQL4.1 数据结构与算法笔试的应对策略网易数据挖掘岗笔试题里的编程题不会像纯后端工程师那么夸张但也不是白送分。从过往经验看它通常不会跳开以下三个主题字符串处理、数组与哈希、动态规划与递归。我备考时重点刷了LeetCode上与这三个主题相关的简单和中等难度题效果非常明显。字符串处理题常考“最长不重复子串”“字符串匹配”“字符统计”等。这类题一定要熟练掌握滑动窗口技巧另外Python的字典和collections.Counter能用得特别熟。数组与哈希题目中“两数之和”这种经典题要手到擒来但还要学会“如何从暴力解法优雅地优化到哈希解法”因为笔试有时会要求你先给出暴力解再给出优化解。动态规划和递归在数据挖掘笔试中偶尔会出现但难度通常不会太深。我备考时的策略是重点掌握斐波那契、爬楼梯、最长公共子序列、01背包这四大件。如果压轴编程题是动态规划大概率也是这四件套的变种。实在不会也没关系可以把递归的暴力写法写出来并注明“可以加备忘录优化”阅卷人也能看出你有思路。还有一个容易被忽略的点笔试编程题的环境和你本地IDE不一样输入输出的处理很容易出错。网易笔试一般用的是牛客网或者赛码网输入输出格式比较奇葩有的一行多个整数用空格分隔有的用换行分隔。建议考前一定要去牛客网用真题环境练几道题把sys.stdin.readline()这种输入输出写法练熟不然你解题思路完全正确却因为输入解析写错了而0分实在太冤了。4.2 SQL高频题型与分析函数SQL在数据挖掘岗位笔试中的重要性怎么说都不为过。网易的SQL题基本不会只考简单的SELECT而是集中在聚合统计、分组排序、留存率计算、连续登录这三大经典命题方向。分组排序是最常考的比如“找出每个类目下销量最高的前三个商品”。这类题用窗口函数ROW_NUMBER()或RANK()就能解决先按类目分组再按销量排序然后取排名小于等于3的。唯一容易踩坑的点是要区分RANK、DENSE_RANK、ROW_NUMBER三者的差异同一销量时这三个函数给出的排名结果是不同的题目如果没有明确要求建议先用ROW_NUMBER因为它对主键唯一场景最安全。留存率计算也是高频题比如“计算用户次日留存率”。标准做法是用一个LEFT JOIN把某一天活跃的用户和第二天仍活跃的用户关联起来再用COUNT(DISTINCT)来计算。这里要特别注意去重一个用户在同一天内可能有多次活跃记录不对用户ID去重的话留存率会虚高。用COUNT(DISTINCT user_id)是稳妥的做法。连续登录类题目是进阶题考察“找出连续登录3天以上的用户”。核心思路是用窗口函数ROW_NUMBER()给每个用户的登录日期排序然后用“登录日期减去排名天数”得到一个分组日期连续登录的日期减排名后的值是相同的。你能理解到这个“日期减排名”的技巧SQL这题基本就稳了。我强烈建议你把窗口函数ROW_NUMBER、RANK、DENSE_RANK、LAG、LEAD、SUM OVER练熟。网易SQL题中大约70%的复杂查询都可以用窗口函数优雅解决。面试前用LeetCode数据库题库或者牛客SQL题库刷上几十道手感就会完全不同。5. 备考策略与实战经验5.1 冲刺阶段的时间规划如果你现在距离笔试还有一个月左右我给你一套可执行的复习规划。这个方法我在辅导学弟学妹时反复推荐亲测有效。第一周重心放在机器学习理论和概率统计上。花3-4天把算法原理串一遍重点是那几个高频模型的损失函数、优化方法和适用场景。剩下3天专门刷概率统计题尤其是贝叶斯和最大似然估计的手算题。第二周重心转向编程和SQL。每天至少花2小时在LeetCode刷题上同时花1小时刷SQL题。这周的目标是把代码的手感练出来拿到一道题能在10-15分钟内有思路并跑通。第三周重心是查漏补缺和整套模拟。找2-3套近年网易或其他大厂的数据挖掘真题按真实笔试的时间限制来模拟。第四周就是考前冲刺不再做新题只翻错题集和笔记把高频知识点和公式印在脑子里。这套规划最关键的一点是不要前松后紧。很多同学觉得算法基础好就大量练代码把理论和业务题拖到最后结果笔试时能编题写得飞起但业务场景题却什么也写不出来直接与面试擦肩而过。5.2 考场时间分配与答题顺序网易数据挖掘笔试的时间通常比较紧2小时左右做一套题题量不小。我在考场上最推荐的时间分配方式是优先保证选择填空和简单计算题的准确率因为这是你的“保底分”。然后再集中精力做SQL和编程题这两块分值高且答案客观容易拿分。业务场景题和推导题放在最后它们没有唯一答案就算时间紧张写出框架也能拿一部分分数。我踩过一个教训那年笔试我在一道手推逻辑回归梯度的题上花了将近20分钟还写错了最后一步导致后面SQL题只写了一半。后来我把做题策略改了先把所有题目快速浏览一遍标记出自己“一眼就会”的题目并快速完成再回头啃难啃的题目。别再跟一道题死磕这么做并不值得。这个策略我在后来的所有线上笔试里一直复用基本上能保证120分钟内有整体完成度。还有一点是线上笔试时千万注意“保存草稿”和“提交”的区别。牛客网这类平台你可以先把答案写在草稿里最后统一提交。要防止时间到自动交卷时还有题目尚未填入答题区那就真的血亏了。建议每隔20分钟看一眼剩余时间按自己的进度动态调整。5.3 错题复盘与长期思维笔试结束之后不要一下子把题目忘光。建议趁热打铁把自己做错的、不会的、考场上蒙对的题全部整理进错题本。这也是我从校招一路到职场坚持下来的习惯。不要害怕错题多数据挖掘岗的笔试复习本质上就是在“把错题中暴露出的盲区补齐”。我每年都会翻看自己当年的笔试错题本很多当时卡住的概念后来在工作中都成了日常操作。长期来看数据挖掘工程师的笔试复习不仅仅是应付考试。概率统计、特征工程、SQL、机器学习原理这套东西跟真实工作中的建模流程高度重合。你在笔试阶段把这些基础打扎实入职后会少走很多弯路。我个人在校招入职后的第一个月就明显感受到笔试时练过的“如何从业务问题转化为建模问题”的思维方式直接帮我快速上手了第一个真实业务项目。如果你能过笔试这一关后续面试大概率会围绕项目经历和算法细节展开。但笔试阶段请先把这些基础题稳稳地做好。回头看网易这套2018校招数据挖掘工程师笔试卷我最大的感受是它不考你天赋考的是你有没有认真准备过。把高频考点全部吃透把该拿的分都拿到你离网易数据挖掘工程师的offer就真的不远了。