简介机器学习期末复习选择题库是一份面向期末考试备考学生的精选习题集覆盖机器学习基础概念、监督学习与无监督学习区别、线性回归、决策树、SVM、KNN等常见算法原理以及精确率、召回率、过拟合等模型评估与优化知识点并穿插CNN、RNN等深度学习应用场景题。全库按模块组织附有答案与解析适合已学完课程、希望通过做题系统梳理知识和发现盲点的学习者。压缩包内仅含一个docx文档整体大小约23KB内容结构清晰便于按基础概念、算法与模型、模型评估、深度学习等模块翻阅。目前已有482人学习/下载。通过这套题读者可快速回顾核心概念借助错题分析定位薄弱环节并结合文中复习建议进行限时模拟测试从而更从容地应对期末考试。1. 机器学习期末复习题库别急着翻书先把选择题做一遍期末复习机器学习的同学十有八九会把《机器学习西瓜书》从头翻一遍结果合上书做一套题依然在监督学习和无监督学习的区别上卡壳。这套机器学习期末复习题库选择题及答案的作用就是让你倒着学先做题被错题打疼了再回去找知识点。资源按监督学习、无监督学习、深度学习、模型评估四个板块整理覆盖吴恩达课程和西瓜书课后题的常见出题角度也适合西电、山大这类喜欢靠大题压分的卷面里用选择题先稳住基本盘。适合两类人考前两周需要快速过一遍知识点的以及刷完题但不知道错在哪、想按考点查漏补缺的。2. 监督学习高频题线性回归、逻辑回归与过拟合的概念辨析2.1 线性回归与逻辑回归先看输出值再选模型选择题里最常出现的坑是题干给了一个场景让你选“适合的模型”。我一般只抓两个信息输出是连续值还是离散类别。预测房价、温度、销售额输出是连续数字选线性回归判断邮件垃圾、肿瘤良恶性、客户会不会流失输出是类别标签选逻辑回归。这里的逻辑回归名字里带“回归”干的却是分类的活。很多题就爱在这里做文章——选项写“逻辑回归属于回归算法”看着对实际错。逻辑回归的输出是概率值经过 Sigmoid 函数压到 0 到 1 之间再按阈值定类别。另一个高频考点是损失函数。线性回归常用均方误差MSE逻辑回归用交叉熵对数损失。为什么逻辑回归不用 MSE因为 Sigmoid 函数非凸用 MSE 的话损失曲线容易掉进局部最小值训练不稳定。这个理论点几乎每年都会变成一道“下列说法正确的是”import math def mse(y_true, y_pred): return sum((y - p) ** 2 for y, p in zip(y_true, y_pred)) / len(y_true) def cross_entropy(y_true, y_pred): return -sum(y * math.log(p) (1 - y) * math.log(1 - p) for y, p in zip(y_true, y_pred)) / len(y_true) # 二分类真值 1, 1, 0预测 0.8, 0.7, 0.2 print(mse([1, 1, 0], [0.8, 0.7, 0.2])) print(cross_entropy([1, 1, 0], [0.8, 0.7, 0.2]))MSE 在这个例子里算出 0.09交叉熵算出约 0.25。单看数字没有绝对意义关键是交叉熵对“预测得很自信但错了”的样本惩罚更大——比如真值是 1模型预测 0.1交叉熵会给出一个很大的惩罚值MSE 的惩罚则温和得多。做题时如果出现“逻辑回归用 MSE 会怎样”的选项答案通常指向“非凸、难收敛”。2.2 过拟合与欠拟合训练集高分不等于卷面高分监督学习的另一类送命题是过拟合识别。题干描述往往是“模型在训练集上准确率 98%在测试集上只有 72%”——这就是典型的过拟合信号。反过来的场景“训练集和测试集准确率都只有 60%”属于欠拟合模型压根没学到规律。选择题的常见问法有三个方向哪个是过拟合的表现、哪种方法能缓解过拟合、偏差和方差谁高谁低。遇到这类题先把“训练高、测试低”和“都低”这两个信号记牢。缓解过拟合的手段这个列表要背熟增加训练数据、正则化L1/L2、Dropout深度学习用、降低模型复杂度、交叉验证调参。而加大模型层数、让特征工程更复杂这两类操作不但不能缓解过拟合反而会加剧——它们提升的是模型的拟合能力不是泛化能力。头歌平台的实验题里特别喜欢把“扩充特征数量”写成正解实际上在没有对应数据量的前提下这就是过拟合的加速器。偏差和方差的区分吴恩达课程里那段经典表述可以直接搬进考场偏差高说明模型太简单对训练数据都不够敏感方差高说明模型对训练数据过于敏感换个训练集结果就大幅波动。2.3 模型评估套路留出法、交叉验证与数据划分模型评估的题核心是“数据怎么分”和“指标怎么算”。留出法按比例切训练集和测试集常见三七开或二八开K 折交叉验证把数据切成 K 份轮流拿一份做验证集最终取平均成绩。选择题里问“为什么要用交叉验证”四个选项挨个排除标准答案是“减少评估结果对数据划分方式的依赖”。数据划分还有一个隐藏考点测试集只能走一遍。很多初学同学在调参时反复用测试集试效果这等于把测试集变成了验证集最终成绩虚高放到真实场景立刻翻车。如果题目选项里有“用测试集选择学习率”“反复在测试集上调试特征”这种表述基本可以直接排除。我在复习这一块时会把所有评估相关的选项当成一个排查清单先看它改的是训练过程还是评估过程一旦题目把“测试集”和“调参”绑定在一起这个选项大概率是错的。这套判断方法用在课件里的随堂练习和吴恩达作业的衍生题上命中率很高。3. 无监督学习与模型评估K-Means、PCA 和混淆矩阵的选择题套路3.1 K-Means 聚类K 怎么选中心点怎么动无监督学习的核心标志是“没有标签”题干里一旦出现“给一批数据自动分组”的表述答案天然偏向聚类或降维。K-Means 是最常考的聚类算法出题点集中在三处K 值的确定、初始中心点的选择、迭代收敛的条件。K 值经典方法叫“肘部法则”画出 K 值与损失SSE的曲线找拐点。但真实考题里不会真让你画图而是问你“K-Means 的 K 值无法提前精确知道时怎么办”这时候“尝试不同 K 值比较聚类效果”比“选最大的 K”“随意指定”都更接近标准答案。初始中心点的影响经常被出成判断对错K-Means 对初始点敏感不同初始化可能收敛到不同结果。这是对的也是 K-Means 被吐槽最多的地方。改良版 K-Means 的核心就是让初始中心点彼此尽量远选择题里把这两者放在一起让你辨别答案选“K-Means 改进了初始点选择”。3.2 PCA 降维方差最大化的方向才是主成分PCA 的题目理论上只有两个考点它是干什么的以及它的目标函数是什么。降维的目的是减少特征数量、压缩数据、加速训练同时尽量保留信息。“保留信息”这句话落到具体指标上就是“方差最大化”——PCA 找到数据方差最大的投影方向把数据映射过去。选择题里常见的干扰项是“PCA 需要标签参与计算”这是错的PCA 是无监督方法跟标签无关。另一个高频选项是“PCA 能提升模型可解释性”也要小心主成分是原始特征的线性组合含义往往说不清说“降低可解释性”反而更接近事实。特征值和特征向量的关系偶尔会在计算题里出现协方差矩阵特征值越大对应特征向量方向上的方差越大。做题时记住一句话特征值大信息量大优先保留。西电的卷面风格比较偏好这类“理论用在哪种场景”的题把这句话背下来能救不少分。3.3 混淆矩阵、精确率、召回率与 AUC带数字的题必须验算混淆矩阵是模型评估里最容易拿分也最容易丢分的部分。四个格子的含义必须脱口而出真正例TP、假正例FP、真反例TN、假反例FN。注意这里的“正例”是你关心的那个类别比如“垃圾邮件”“患病”不要跟“正确”混淆。很多选择题会给一组数字让你算精确率或召回率。这两个指标的长相很像区分办法看分母精确率分母是“预测为正类的样本数”召回率分母是“实际为正类的样本数”。我建议把下面这张表默认在草稿纸上指标公式回答的问题精确率 PrecisionTP / (TP FP)预测为正的样本里有多少真对了召回率 RecallTP / (TP FN)实际为正的样本里找回来了多少准确率 Accuracy(TP TN) / 全部整体判对了多少F12 * P * R / (P R)精确率和召回率的调和平均题目问“癌症筛查中更看重哪个指标”要能想明白漏诊代价高所以更看重召回率宁可把健康人误判成患病也别放跑真病人。这个场景几乎每个学校的试卷里都有一道影子般的等价题。AUC 的含义是 ROC 曲线下的面积数值越接近 1 越好越接近 0.5 越接近随机猜测。选择题常见错误选项是“AUC 等于 0.5 代表模型完美”如果看到这个表述直接判错。# 验算一个简单二分类结果的精确率与召回率 tp 8 fp 2 fn 3 precision tp / (tp fp) recall tp / (tp fn) print(精确率:, precision) # 0.8 print(召回率:, recall) # 0.727这种两位数计算考试时心算就容易翻车。熟练之后我可以直接在草稿纸上写出分子分母但刚开始刷题的同学建议每道计算题都按上面的格式走一遍不是为了那几分而是为了建立“指标公式先入脑”的肌肉记忆。4. 深度学习与机器学习边界神经网络、反向传播与激活函数的考点4.1 神经元与激活函数为什么选项里总是出现 ReLU深度学习板块选择题的密度比前面小但一考就是硬理论。首先是神经元结构输入乘权重求和过激活函数输出。权重初始值不能全零否则同一层的神经元会同步更新学不到不同特征。原题往往这样问“神经网络训练前权重为什么不能初始化为 0”答案指向“对称性破坏失败各神经元无法差异化”。激活函数是另一个固定考点。Sigmoid 的问题在于饱和区梯度趋近 0容易梯度消失ReLU 在正区间梯度恒为 1缓解了这个问题但负区间会直接“死掉”输出恒为 0。选择题问“ReLU 的优点”标准答案是计算简单、缓解梯度消失问“ReLU 的缺点”答案是神经元死亡。这个知识点在山大和华科的期末题里反复出现但很多同学只记住了优点忘记缺点也能单独出题。复习时我把激活函数做成对照表自己默写一遍Sigmoid 适合二分类输出层Tanh 零中心但同样饱和ReLU 默认选择Softmax 用在多分类输出层。4.2 反向传播与学习率梯度下降的“玄学”选择题反向传播问的是“误差从输出层往前传更新谁的参数”——权重和偏置。选择题经典问法是“反向传播中损失对第 L 层权重的梯度依赖哪些量”常见选项里混入“只用当前层输出”这种错误表述。我自己刷题时的经验是遇到反向传播题先画一条 输入层—隐藏层—输出层 的短链把链上的每个中间量都标出来梯度一定是用链式法则一路乘过去的不会只依赖某一层。学习率考得更直接学习率过大会怎样过小会怎样。过大导致损失震荡不收敛过小导致收敛极慢。答案基本是这两条的变体。这里有个常被忽略的细节——学习率不是越大越好也不是越小越好部分题目会要求你选出“最合理的后续调整方式”比如训练 loss 震荡剧烈时把学习率调小一个数量级从 0.01 改成 0.001而不是来回改大改小。4.3 CNN、RNN 与深度学习场景题哪些结论可以当常识背深度学习场景题题干给一张图片或一段序列问选什么网络结构。图片用 CNN文本序列用 RNN这是最底层的映射关系。CNN 的两个核心特点是局部感知和权值共享后者回答“为什么 CNN 参数少”——同一个卷积核扫过整张图参数数量跟图片尺寸无关只跟卷积核大小和通道数有关。RNN 的考点是“记忆”和长期依赖。RNN 能处理变长序列靠的是隐藏状态传递信息但序列太长时会梯度消失于是有了 LSTM 这类门控结构。题目如果问“LSTM 凭什么比普通 RNN 强”答案指向“门控机制控制信息保留与遗忘”。机器学习和深度学习的边界题常见问法是“以下哪项属于深度学习而非传统机器学习”。面对这种题我只看两个特征是否使用了多层神经网络是否自动从数据中学习特征。传统机器学习靠手工特征加浅层模型深度学习自动提取特征这是二者的分水岭。西瓜书里对“表示学习”的强调放在这道题上就是得分点。5. 避坑刷机器学习题库最常见的五个翻车点5.1 现象把“特征”和“标签”的位置搞反有一类题目会给出表格数据问“X 和 y 分别是什么”。我见过不少同学把要预测的列当成 X 输入模型结果读完整个题干都没看懂模型图。原因很简单上手写代码时习惯用X_train表示特征、y_train表示标签到了纸面选择题反而忘了这层对应关系。解决读题时直接在题干上圈出“预测目标”这个词凡是“预测”“分类”“识别”后面的对象一定是标签 y其余列全是特征 X。这套方法在头歌的在线实验报告题里同样适用。5.2 现象背答案式刷题换个选项顺序就错题库里有些题我会忍不住瞄一眼答案再往下做特别是连续错三四道之后。问题在于选择题选项顺序一打乱原来背的“选 C”就失效了真正该记住的“准确率是 TPTN 除以总数不是只看正类”没进脑子。解决第一遍做题时把答案遮住先在题目旁边写一句话说明“我为什么选这个”写不出来就跳题。对完答案后错的题不要只看正确选项把错误选项为什么错也写一句。这一道工序多做十分钟后面二刷能省两小时。5.3 现象只按章节刷题不按考点交叉复习题库按监督学习、无监督学习等板块组织按顺序刷没问题但考卷不会这么分章节。实际考卷里模型评估的题可能挂在任何一道大题后面。我见过同学复习了两遍聚类结果混淆矩阵的计算题照样错——因为他从来没把评估指标和聚类算法的题混着做。解决二刷时把题库打散按考点标签重新抽题一次抽 20 道混合题模拟真实试卷的跳转节奏。随机抽题的具体脚本我在下一章给出用 Python 写十几行就能实现。5.4 现象混淆“精确率”和“准确率”一碰到具体数字就翻车准确率是整体正确率精确率只看预测为正类的样本里有多少对。这两个名词长得太像选择题里把“准确率越高模型越好”这种说法放在一起很多人直接默认正确。实际场景里正负类严重不平衡时准确率会骗人——100 个样本里 99 个是负类模型全部判负准确率 99%但正类一个都没找出来。解决把第 3 章那张指标表抄在一张便利贴上考前每天默写一遍。默写的时候一定要带例子没例子的话记到考场上还是两个名词打架。5.5 现象只看结果不看过程计算题一步算错全盘皆输混淆矩阵、精确率召回率的题都是简单算术但考场上时间紧分子分母一紧张就写反。我见过一个同学算出召回率大于 1依然信心满满选了上去——计算结果违反了“召回率不大于 1”的基本约束他自己没检查。解决每道计算题算完后花三秒做一个合理性校验概率和比率值必须落在 0 到 1 之间。超过这个范围要么公式用错要么分子分母反了。这个习惯救过我很多次尤其适合西电和山大这类计算题占比高的卷面。6. 把题库变成自测系统随机抽题与错题重刷的两个小脚本题库不能只做一遍但按顺序重刷有个问题顺序一样的错题往往也是同样的位置容易靠位置记忆而不是内容记忆。我从第二遍复习开始就不再用原始顺序而是写了一个随机抽题脚本把题库里的题按考点打散模拟真实考试的知识点跳变。import random # questions 结构每个元素是 (id, 考点标签) questions [ (1, linear), (2, logistic), (3, clustering), # ... 按实际题库补全 ] def shuffle_quiz(questions, batch_size10, seed42): random.seed(seed) qs questions[:] random.shuffle(qs) return qs[:batch_size] def analyse_mistakes(mistake_list, total_count): rate len(mistake_list) / total_count return {错题数: len(mistake_list), 错误率: round(rate, 2)}seed参数控制随机顺序的可复现性同一套题想换一个顺序就改 seedbatch_size每次抽题数量我一般设置成 10刚好一张卷面的选择题量。第一次抽完的错题记录下来隔天用同一个脚本再抽一次如果还错说明这个考点需要回到对应章节重新看。这个“隔天重抽”的做法比当天重复刷要有效得多。后来又加了一个步骤给错题单独建一份清单记录错误原因分类是“概念不清”“计算失误”还是“选项理解偏差”。几次统计下来我的错误大头永远是计算失误而不是概念不懂。从那以后我每次刷题都强制把计算步骤写全不再用心算蒙答案——考场上心算翻车的概率远比想象的高。希望这份题库和这两个小技巧能帮你把期末复习的时间花在刀刃上。本文还有配套的精品资源点击获取