ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

机器学习笔试高频考点拆解:从数学基础到工程实践的复习框架

机器学习笔试高频考点拆解:从数学基础到工程实践的复习框架 360春招机器学习工程师笔试到底在考什么我把它拆成了这四块每年春招季总有一批准备投机器学习工程师岗位的朋友被笔试环节卡住。不是题不会做而是不知道复习方向刷了一堆LeetCode结果打开卷子发现考的是贝叶斯公式、特征选择、模型偏差方差甚至还有SQL窗口函数——直接蒙了。我拿360公司2018春招机器学习工程师笔试的客观题当样本把这类笔试的考察逻辑拆了一遍今天这篇就记录一下我的分析思路和复习方法。先说明白这篇不是给你一份原题的答案清单而是帮你搞清楚“为什么笔试长这样”“每种题在考察什么底层能力”“怎么准备才不会白费功夫”。不管你是准备春招秋招还是在校生想检验自己的机器学习基础都能从这里找到一套可执行的复习框架。1. 360机器学习笔试的整体考察维度与题型结构1.1 客观题的考察范围从数学到工程覆盖完整知识链360这类互联网公司的机器学习工程师笔试客观题一般覆盖四块数学基础、机器学习理论、数据结构与算法、工程与业务场景理解。很多人复习时只看机器学习理论忽略了数学和数据结构这是最大的误区。我统计了一下近几年几家大厂机器学习岗位的客观题分布概率统计和线性代数加起来的占比通常在30%到40%。为什么因为机器学习模型的推导、训练、调参底层都是数学。比如朴素贝叶斯分类器的推导需要条件概率和贝叶斯公式PCA降维需要特征值和特征向量逻辑回归的损失函数需要梯度下降求导。数学不会模型只会调包笔试一考细节就露馅。数据结构与算法在机器学习岗位笔试中占比也有20%左右。有人觉得奇怪机器学习工程师又不天天写排序算法为什么要考这个其实笔试考的是你的编程基本功和逻辑思维。特征工程里要对数据进行分组、排序、去重数据处理里经常要写递归和遍历这些都需要扎实的数据结构基础。而且客观题里经常出现时间复杂度和空间复杂度的计算这部分不练基本靠猜。工程与业务场景理解是第四块占15%左右。比如给你一个用户点击预测场景问你选哪个特征最合适或者问你在数据量很大的情况下用哪个模型更高效。这类题没有唯一标准答案考察的是你有没有实际做过项目能不能把技术方案落到业务场景里。1.2 岗位能力模型笔试题目背后对应的是哪几项核心技能我后来复盘发现笔试客观题表面上是一道道题实际上每道题都在对应岗位能力模型里的某一项。搞清楚这个映射关系复习的时候就不会东一榔头西一棒槌。第一项能力是数学推导能力。对应题目类型是概率计算、矩阵运算、导数与极值求解。比如给你一个二维高斯分布的概率密度函数让你判断协方差矩阵的含义这考察的是你对分布参数的理解深度。第二项能力是模型原理理解能力。对应题目是模型对比、损失函数选择、正则化项作用、过拟合欠拟合判断。这类题要求你能讲清楚为什么L2正则化能防止过拟合而不是只知道加个参数。第三项能力是编程与数据结构功底。对应题目是时间复杂度计算、排序算法稳定性判断、二叉树遍历、哈希表冲突解决。第四项能力是工程实践与业务敏感度。对应题目是特征选择、样本不均衡处理、模型评估指标选择、A/B测试设计。我在准备笔试的时候先把每一道真题归类到这四个能力模型里然后针对性地补薄弱项。这个方法效率很高比埋头刷题有用得多。你可以准备一个表格把做错的知识点按能力分类统计哪一类错得多就重点复习哪一类。2. 高频考点拆解这些题目背后的原理必须吃透2.1 概率统计与贝叶斯为什么笔试每次都考考的是什么层次概率统计是机器学习笔试的重灾区也是拉分最明显的板块。你去看360这类公司的真题概率题几乎每年都有而且考察的层次往往不是“套公式”那么简单。最基础的是条件概率和全概率公式。比如一个经典题型有两个盒子A盒子里有3个红球2个白球B盒子里有2个红球3个白球随机选一个盒子再取一个球已知取出红球问来自A盒子的概率。这就是贝叶斯公式的直接应用。但笔试不会只考这种课本原题而是会包装成业务场景比如“用户点击广告的概率是0.1点击后购买的概率是0.3未点击时购买的概率是0.05求用户购买且点击过广告的概率”之类的条件概率变形。再往上一个层次是期望和方差的运算。考察你对随机变量数字特征的理解比如独立随机变量和的方差等于方差之和这个性质在集成学习的方差分析里要用到。还有协方差和相关系数的概念PCA、线性判别分析、高斯判别分析都跟它相关。还有一个高频考点是常见分布的性质特别是正态分布、伯努利分布、多项分布、泊松分布。笔试喜欢考的是分布的期望和方差以及多个独立同分布随机变量的和服从什么分布。比如给你n个独立同分布的伯努利变量问它们的和服从什么分布答案是二项分布这个知识点在逻辑回归的误差分析里经常用到。我当时的复习方法是把所有分布的名字、参数、期望、方差、典型应用场景整理成一张表格每天过一遍高频考点基本就能拿下。2.2 机器学习的核心理论从损失函数到正则化要能讲出“为什么”机器学习理论这块的客观题考察的深度主要看你对模型的“知其所以然”程度。死记硬背模型的优缺点很难应付变化多端的题目。损失函数是第一个高频考点。线性回归的均方误差、逻辑回归的交叉熵、SVM的合页损失、AdaBoost的指数损失笔试经常出“给定一个损失函数问你对应哪个模型”或者反过来“这个模型的损失函数是哪个”这类题。这里有个容易混淆的点为什么逻辑回归用交叉熵而不用均方误差因为逻辑回归的预测值是经过sigmoid函数的使用均方误差会导致损失函数非凸梯度下降可能陷入局部最优而交叉熵配合sigmoid能保证损失函数是凸函数。能把这条逻辑链条讲清楚这类题就不怕了。正则化是第二个高频考点出镜率极高。L1正则化和L2正则化的区别、为什么L1能产生稀疏解、为什么L2能防止过拟合这些几乎年年考。我从几何直观的角度给你拆一下L1正则化的约束区域是菱形顶点在坐标轴上所以最优解容易落在顶点处某些维度系数变成0L2的约束区域是圆形最优解不会把系数压到0但会让系数整体变小。从这个角度理解比死记“L1稀疏L2平滑”要牢固得多。过拟合与欠拟合的判断也是热门。笔试经常给一个训练集和验证集的误差情况让你判断模型处于什么状态以及应该怎么调整。比如训练误差很低但验证误差很高明显是过拟合解决方案有增大数据量、降低模型复杂度、加正则化、做交叉验证反过来如果训练误差和验证误差都很高可能要换更复杂的模型或者加特征。我整理过一套判断流程先看训练误差再对比验证误差最后再决定调哪个参数这套流程在真实项目里排查模型问题也同样适用。2.3 特征工程与模型评估客观题里容易被忽视的两块很多人复习笔试时容易忽略特征工程和模型评估因为这两块知识点在教材里比较分散而且看起来“偏应用”。但实际上这两块在客观题里经常出现而且一旦出现正确率往往很低是拉开差距的好机会。特征工程常考的包括特征选择的方法过滤式、包裹式、嵌入式、主成分分析的原理、特征标准化归一化的必要性、类别特征的编码方式。其中PCA是重灾区笔试爱考“PCA的降维目标是最大化什么”正确答案是最大化投影后方差也就是让投影后的数据点尽可能分散保留最多的原始信息。容易混淆的是线性判别分析LDA它的目标是让同类样本投影后尽可能接近、异类样本尽可能远离。模型评估方面混淆矩阵、精确率、召回率、F1值是必考内容。还有ROC曲线和AUC。笔试里常给一个表格让你算精确率和召回率这时候注意区分精确率是预测为正的样本里有多少真的是正样本召回率是所有真实正样本里有多少被预测出来了。还有一个容易错的点样本不均衡时应该用什么评估指标答案是AUC而不是准确率因为准确率在正样本占比极低的时候没有区分度。交叉验证也是高频考点。K折交叉验证的原理、留一法的优缺点、分层采样在交叉验证里的作用都值得过一遍。特别是分层采样在处理分类问题且类别不均衡时每折里各类别的比例要和整体一致否则验证结果会有偏差。这个细节在真实模型评估阶段也很重要。3. 备考路线与实操方法怎么在有限时间内把分提上去3.1 三轮复习法从知识点扫盲到真题实战的时间分配我的备考周期一般是4到6周分成三轮。第一轮是知识点扫盲用2到3周把上面提到的高频考点全部过一遍重点是数学基础和机器学习理论。这个阶段不要做题关键是理解概念能用自己的话把模型原理讲清楚。比如你合上书能解释清楚“什么是梯度下降里的学习率”“为什么交叉验证能评估泛化能力”就算过关。第二轮是真题强化用1到2周刷真题。题目来源可以找往年的笔试题目合集重点关注错题。我的做法是准备一个错题本按知识点分类记录错题和错误原因。如果同一类题连续错三次以上就说明这个知识点理解有缺陷需要回到第一轮重新看书。这个阶段的目标不是刷题数量而是通过题目检验知识盲区。第三轮是考前冲刺用最后一周做模拟和查漏补缺。每天限时做一套模拟题培养做题节奏。客观题的节奏控制很重要每道题控制在2到3分钟不会的先标记跳过不要在一道题上耗太久。冲刺阶段的重点是看错题本把高频错误点再过一遍。这轮复习的时间安排不是固定的要根据自己的基础调整。数学基础薄弱的第一轮可以多花一周工作过的数据结构不用花太多时间可以压缩第二轮直接刷题。关键是每个阶段的目标要明确不要在第一轮沉迷于做难题把自己搞得很焦虑。3.2 数学复习清单哪些内容必须掌握哪些可以暂时放一放我把笔试需要的数学知识点整理了一份优先级清单供你参考。高优先级必考且高频条件概率、全概率公式、贝叶斯公式常见分布的期望与方差极大似然估计的思想与简单计算矩阵乘法、转置、逆矩阵特征值与特征向量的概念多元函数求偏导、梯度中优先级考频中等但也很重要协方差矩阵及其性质凸函数与凸优化的基本概念拉格朗日乘子法SVM推导会用到中心极限定理和大数定律低优先级可暂时放下测度论级别的概率论严格推导复杂矩阵分解的数学证明泛函分析相关内容按这个清单复习能把时间花在刀刃上。笔试考察的数学深度不会超过本科高数和概率统计的范围不需要去打竞赛级别的数学底子。我见过一些朋友花大量时间研究SVM的KKT条件推导结果笔试根本没考那么深原理级的理解完全够了。3.3 动手实践用一个小项目把知识点串起来光刷题不够我强烈建议在备考期间做一个端到端的小项目。不用太大用scikit-learn跑一个分类任务就可以比如泰坦尼克号幸存预测或者手写数字识别。这个小项目的作用不是为了写进简历而是帮你把知识点串起来。你可以在这个小项目里实践数据清洗和缺失值处理、特征标准化、类别特征编码、PCA降维、多个模型对比、交叉验证调参、用混淆矩阵和AUC评估模型。每一环都能对应到笔试考点。做项目时主动问自己几个问题为什么这个特征要标准化为什么用这个评估指标而不是那个调参时学习率太小会怎样这些问题就是笔试客观题的出题角度。我当时做完这个小项目后对“模型评估指标如何选择”“交叉验证的作用”这些知识点的理解明显加深了做相关题目时不再是死记硬背答案而是能推导出为什么选这个。这个从“知道”到“理解”的转变是笔试拿高分的关键。4. 常见失分点与笔试现场的实战经验4.1 高频踩坑点这几个错误我见过不止一次先说一个特别常见的坑混淆精确率和召回率的定义。很多人在考场上一紧张就分不清“预测为正且实际为正”和“实际为正且被预测出来”的区别。我的记忆技巧是精确率看预测分母是预测为正的所有样本召回率看实际分母是实际为正的所有样本。多默念几遍“精确率看预测召回率看实际”做题时先确定分母是谁再套公式。第二个高频失分点是时间复杂度的计算。常见错误是算错了循环嵌套的层数或者忽略了递归带来的指数级复杂度。笔试里的排序算法时间复杂度和稳定性对比也经常考比如快速排序平均O(nlogn)最坏O(n^2)、归并排序稳定但需要额外空间、堆排序不稳定但空间O(1)。把这些常用排序的时间和空间复杂度以及稳定性背到滚瓜烂熟白给的分不要丢。第三个失分点是样本不均衡的处理方法。题目问“正负样本比例1:99怎么处理”正确答案包括过采样、欠采样、调整类别权重、使用PR曲线或AUC评估。容易错的是选了“提高模型复杂度”这个选项——模型复杂度跟样本不均衡没有直接关系。这种题考察的是你有没有真实处理过数据不均衡的工程问题光看书很容易踩坑。第四个常见的坑是梯度下降的变种选择。批量梯度下降、随机梯度下降、小批量梯度下降的区别和适用场景笔试喜欢考。要记住批量梯度下降每一步用全部样本计算梯度准确但慢随机梯度下降每步用一个样本快但有波动可能跳出局部最优小批量梯度下降居中是最常用的折中方案。容易混淆的点是“动量法”和“自适应学习率”这些优化器笔试如果考到Adagrad、RMSProp、Adam的区别能说出“Adam结合了动量和自适应学习率”就够用了。4.2 客观题答题策略先易后难时间分配有技巧笔试客观题一般一个小时到九十分钟做30到50道题平均每道题只有两分钟左右。这个时间压力很大如果没有策略很容易在后半段慌了神。我总结了一套答题顺序实战下来效果不错拿到卷子先花30秒快速浏览整张卷子标记出自己确定的题、有把握但需计算的题、完全没思路的题。然后从头开始做遇到卡壳超过2分钟的题直接标记跳过不要恋战。做完一轮后回头做标记的难题这时心态更稳思路往往也更清晰。最后如果还有时间再检查一遍计算题。这套策略的核心是“先把确定的分拿到手”。客观题不会因为你“差一点就做出来”而给分只有选对才得分。所以不要在一道题上浪费大量时间导致后面简单的题没时间做。我见过太多人在一道概率计算题上卡了10分钟最后连送分的时间复杂度题都没做。关于不会做的题有一个经验不要完全蒙先排除明显错误的选项。四个选项至少能排掉一个不靠谱的二选一时正确率就高很多。尤其在机器学习理论题里有些选项的表述本身就有问题比如“决策树不需要做特征缩放”这种确定性错误选项可以直接排除。4.3 从笔试到面试客观题准备对后续环节的隐性帮助准备笔试的时候你可能只想着“别挂”但其实这个阶段的复习对后面的面试帮助也很大。笔试客观题考察的知识点几乎就是面试里“机器学习基础”环节的题库。比如笔试里做的“为什么L1正则化能产生稀疏解”这一题面试时可能就是“你讲一下L1和L2的区别顺便说说正则化的原理”。笔试里的“混淆矩阵和AUC”这一题面试时可能就是“你之前做的项目用什么指标评估为什么不用准确率”你会发现只要笔试阶段把“为什么”理解透彻了面试里类似的问题都能轻松应对。我后来跟几个面试官朋友聊过他们都说面试时最怕的不是候选人不了解最新模型而是连最基础的“偏差与方差”“过拟合怎么解决”都讲不清楚。笔试阶段逼着自己把这些基础原理搞明白等于提前给面试做了铺垫。所以别看轻了笔试的客观题它既是筛选工具也是你系统梳理知识的契机。这里再分享一个额外的小技巧准备笔试时把每个知识点整理成“模型名称-损失函数-优化方法-适用场景-优缺点”这样的卡片格式笔试前复习用卡片快速过面试前用同样的卡片准备即兴回答。一套素材两种用途省时省力。5. 给备考者的最后几点补充建议5.1 资料选择与实际操作用对工具少走弯路刷题资料的选取很关键。我建议主攻三类历年大厂笔试真题合集、经典教材的课后习题特别是周志华《机器学习》西瓜书的习题、以及机器学习的公开题库网站。网上能搜到不少往年大公司的笔试汇总帖先拿最新的年份练手再往回刷到四五年前的。西瓜书的习题质量很高但有些题难度偏大备考时间不够时可以先跳过证明题只做概念题和计算题。公开题库网站的好处是题目分类清晰可以按知识点刷。不过要注意有些网上题库的答案质量参差不齐遇到不确定的答案优先以教材和官方文档为准。还有一个很多人忽略的资料论文带读笔记。K-Means、逻辑回归、决策树这些经典模型的原始论文如果没时间读全文可以看一些深度解析公众号或者知乎专栏的笔记。这些笔记通常会把模型原理的推导过程、数学细节讲得比教材更详细适合弥补理解盲区。但不要在这上面花太多时间重点是基础知识论文是锦上添花。5.2 心态调整与健康管理笔试前的几天不要踩的雷最后说一点不那么技术但很重要的东西就是考前几天的状态管理。我见过不少实力不错的朋友因为考前熬夜刷题考场上脑子跟浆糊一样连送分题都做错。笔试前一周建议把作息调到正常模式保证每晚7小时以上睡眠。考前一天不要再学新的知识点了把错题本和高频考点卡片过一遍就好。考试当天带好证件和计算器如果允许提前到考场。不用带太多资料因为候场时间很短带多了反而焦虑。做题时如果发现自己紧张做几次深呼吸把注意力放在“这道题考的是哪个知识点”上而不是“我能不能过”心态稳定对答题准确率的影响非常大。关于刷题数量的心态我想多说一句不要和别人比进度。有人刷了500道题有人只刷了200道但每道都搞懂了笔试结果往往是后者更好。客观题的核心是理解不是题海战术。你要的是“考到的知识点我都会”不是“所有的题我都做过”。我在备考过程中踩过不少坑最深的体会就是笔试是一场高强度的基础能力检验拼的不是临时抱佛脚的能力而是平时积累的厚度。如果能静下心把每个高频考点背后的“为什么”想清楚把数学推导和模型原理串成体系客观题这一关完全可以稳稳通过。希望这篇梳理能帮你少走弯路春招顺利上岸。
返回列表