以下题目为之前做过的笔试题里面我不太清楚,或者做错的题目
题1
以下哪种算法不是基于集成学习(Ensemble Learning)的? A. 随机森林 (Random Forest) B. 支持向量机 (SVM) C. 梯度提升树 (GBDT) D. AdaBoost
B SVM是单一模型,不是集成学习方法
题2
主成分分析(PCA)的主要目的是? A. 可视化数据 B. 降低数据维度 C. 防止过拟合 D. 以上都是
D PCA可用于降维、可视化、去噪和防止过拟合
题3
关于偏差(Bias)和方差(Variance),以下描述正确的是? A. 简单模型通常有高偏差和高方差 B. 复杂模型通常有低偏差和高方差 C. 我们的目标是同时最小化偏差和方差 D. 过拟合与高偏差有关
B 复杂模型容易过拟合,表现为低偏差、高方差。
题4
以下评估指标中,哪个对不平衡数据集最不敏感? A. 准确率 (Accuracy) B. 精确率 (Precision) C. 召回率 (Recall) D. F1-Score
A 准确率在不平衡数据集中容易误导,其他指标更敏感。
详解
为什么是准确率? 1. 什么是不平衡数据集? 假设我们有一个医疗数据集,要预测病人是否患有一种罕见病(阳性)。 负样本(未患病):10,000人 正样本(患病):100人 这个数据集中,负样本占绝大多数(~99%),这就是一个典型的不平衡数据集。 2. 准确率 (Accuracy) 是如何计算的? 准确率是最直观的指标,计算的是所有预测正确的样本占总样本的比例。 准确率 = (TP + TN) / (TP + TN + FP + FN) 现在,我们来看一个极端的例子: 如果一个模型非常“懒”,它不管输入什么数据,永远只预测“未患病”(负类)。那么在这个数据集上: 真阴性 (TN) = 10,000(所有未患病的人都预测对了) 假阴性 (FN) = 100(所有患病的人都预测错了) 真阳性 (TP) = 0 假阳性 (FP) = 0 我们来计算这个“懒”模型的准确率: 准确率 = (10000 + 0) / (10000 + 0 + 0 + 100) = 10000 / 10100 ≈ 99.01% 这个模型明明一个病人都没检测出来,准确率却高达99%!这是一个完全无效的模型,但准确率却给了我们一个非常乐观的假象。 3. 为什么其他指标(B, C, D)更敏感? 其他指标关注的是少数类(正类)的表现,因此能立刻暴露模型的问题。 精确率 (Precision):在所有预测为阳性的样本中,有多少是真正的阳性。 上面的“懒”模型没有预测任何阳性,所以 TP = 0。它的精确率是 0 / (0 + 0),是未定义的(或可视为0),这直接表明模型在识别正类上完全失败。 召回率 (Recall):在所有真正为阳性的样本中,有多少被成功预测了出来。 “懒”模型的召回率是 0 / (0 + 100) = 0。这也清楚地表明它没能找出任何一个病人。 F1-Score:是精确率和召回率的调和平均数。它综合了对正类的判断能力。 因为精确率和召回率都是0,所以F1-Score也是0。 结论对比 指标 “懒”模型的值 是否暴露问题? 原因 准确率 (Accuracy) ~99% 否 被多数类(负类)的巨大数量所“淹没”,对少数类不敏感 精确率 (Precision) 0 是 直接关注模型对正类的判断是否准确 召回率 (Recall) 0 是 直接关注模型找出了多少正类 F1-Score 0 是 综合了精确率和召回率 因此,准确率是最容易受到不平衡数据集误导的指标,它对于数据分布是“不敏感”的(即无法有效反映模型在少数类上的表现)。在处理不平衡数据时,应该优先使用精确率、召回率、F1-Score或AUC-ROC等指标。
题5
OpenCV中,用于计算两个图像或图像块之间相似度的函数是? A. `cv2.compare()` B. `cv2.matchTemplate()` C. `cv2.similarity()` D. `cv2.diff()`
B cv2.matchTemplate() 用于模板匹配,衡量图像相似度。
A cv2.compare() 功能:这个函数用于逐像素地比较两个图像,并输出一个结果图像(而不是一个相似度分数)。它根据指定的比较操作(如是否相等、谁更大等)来生成一个新图像。 操作类型:例如 cv2.CMP_EQ(相等), cv2.CMP_GT(大于), cv2.CMP_GE(大于等于)等。 输出:一个与源图像大小相同的单通道图像,其中每个像素的值是比较结果(通常是255表示“真”,0表示“假”)。 示例用途:比较两幅图像哪些位置的像素完全相同,或者找出图像A中哪些像素值大于图像B。 与题目的区别:它输出的是一个图像掩膜(mask),而不是一个标量相似度值。 C cv2.similarity() (OpenCV中不存在此函数) D cv2.absdiff() 计算两个图像的绝对差
题6
32. 一个机器学习模型在训练数据集上表现优异,准确率达到了99%,但在从未见过的测试数据集上表现很差,准确率只有65%。这种现象最可能是什么原因造成的? A. 模型出现了欠拟合,无法捕捉数据中的基本规律。 B. 模型出现了过拟合,过度学习了训练数据中的噪声和细节。 C. 测试数据集的数量远大于训练数据集,导致模型无法泛化。 D. 学习率设置得太高,导致模型训练过程不稳定。
B 训练集表现好、测试集表现差是典型的过拟合。
1. 欠拟合 (Underfitting) 别名:高偏差 (High Bias) 什么意思? 学生根本没学明白。 他连课本上的练习题都没做好,知识点的皮毛都没掌握。 这通常是因为学生太“笨”(模型太简单)或者学习时间太短(训练不足)。 在机器学习中表现为何? 模型在训练数据上表现就很差(准确率低,误差大)。 模型在测试数据上表现同样很差。 模型没有捕捉到数据中的基本规律。 主要原因: 模型过于简单(例如用线性模型处理非线性问题)。 特征太少或特征工程没做好。 训练时间/轮数不够。 解决方法: 使用更复杂的模型(如从线性回归切换到多项式回归、决策树、神经网络)。 增加有价值的特征。 减少正则化(正则化是防止过拟合的,所以欠拟合时要减弱它)。 增加训练时间。 2. 过拟合 (Overfitting) 别名:高方差 (High Variance) 什么意思? 学生成了一个“死记硬背的书呆子”。 他把课本上的每一道练习题(包括里面的印刷错误和笔迹污点)都背得滚瓜烂熟,甚至记住了每道题的答案在书上的第几页第几行。 但他没有理解题目背后的知识点和原理。 在机器学习中表现为何? 模型在训练数据上表现极好(准确率非常高,误差几乎为0)。 模型在测试数据(新数据)上表现非常差。 模型不仅学习了数据中的普遍规律,还记住了训练数据中的噪声和随机波动。导致它对新的、没见过的情况泛化能力很差。 主要原因: 模型过于复杂(相对于数据量和特征数而言)。 训练数据量太少。 训练时间过长(“学过头了”)。 特征过多,其中包含了很多不相关或冗余的特征。 解决方法: 获取更多的训练数据(最有效的方法)。 降低模型复杂度(如降低多项式次数、剪枝决策树、减少神经网络层数或神经元数)。 应用正则化(如L1, L2),给模型增加约束,防止它变得太复杂。 提前终止训练。 使用Dropout(针对神经网络)
题7
33. 以下关于OpenCV中Mat对象描述错误的是? A. 它是OpenCV中存储图像的主要数据结构 B. 它代表矩阵(Matrix) C. 它自动管理内存 D. 它的形状总是(高度,宽度,通道数)
D Mat对象的形状不总是包含通道数,灰度图只有(height, width)。
什么是Mat对象? 你可以把 Mat 理解成OpenCV的“万能容器”或“数字矩阵”。它的全称是 Matrix,设计初衷就是用来高效地存储和操作任意维度的数值数据。在图像处理领域,它最常用的就是存储图像。 一张图像,本质上就是一个数字矩阵: 灰度图:是一个2D矩阵。每个元素(像素)的值代表该点的灰度强度(如0是黑色,255是白色)。 形状:(高度, 宽度) 例如:一个100x200的灰度图,Mat对象的形状就是 (100, 200) 彩色图(如BGR):是一个3D矩阵。你可以想象它是由3个2D矩阵(蓝色通道、绿色通道、红色通道)叠在一起构成的。 形状:(高度, 宽度, 通道数) 例如:一个100x200的彩色图,Mat对象的形状就是 (100, 200, 3) 它是OpenCV中存储图像的主要数据结构 正确。 这是Mat对象最核心的用途。无论是用cv2.imread()读图,还是用cv2.VideoCapture()读视频帧,得到的都是Mat对象。几乎所有OpenCV函数都以Mat对象作为输入和输出。 它代表矩阵(Matrix) 正确。 Mat就是Matrix的缩写。它的数据结构就是一个多维数组,完美符合矩阵的定义。 它自动管理内存 正确。 这是Mat对象一个非常强大的特性。它使用引用计数系统来自动管理内存。当你将一个Mat对象赋值给另一个变量时,OpenCV并不会立即复制整个数据矩阵,而是创建一个指向同一数据块的“头部信息”,并增加引用计数。只有当你要修改这个新变量的数据时,才会真正复制一份数据(写时复制,Copy-on-Write)。这大大提高了效率,避免了不必要的内存拷贝。你不需要像在C++中那样手动释放内存,Python的垃圾回收机制会与Mat的引用计数协同工作。 它的形状总是(高度,宽度,通道数) 错误。 这就是本题的答案,也是你需要理解的关键。 为什么D是错的? 因为Mat对象的形状取决于它存储的数据的维度和类型。 灰度图像:只有高度和宽度,没有通道数。它的形状是 (height, width)。如果你用 .shape 查看一个灰度图的Mat,你会得到一个包含2个元素的元组,例如 (480, 640)。 彩色图像:形状才是 (height, width, channels),例如 (480, 640, 3)。 非图像数据:Mat对象可以存储任何矩阵数据。例如: 一个机器学习中的特征数据集,形状可能是 (10000, 50),表示10000个样本,每个样本50个特征。 一个单行向量,形状是 (1, N)。 一个单列向量,形状是 (N, 1)。 一个纯标量,甚至可以是1x1的矩阵。
题8
1. 在机器学习中,将类别数据转换为数值格式的常用技术是 _____________。(例如:将‘红’,‘绿’,‘蓝’转换为0, 1, 2)
答案: 标签编码或者独热编码
题9
4. 在模型评估中,_____________ 指标是指所有预测正确的样本占总体本的比例。
答案: 准确率 (这题主要是忘记了,这里再复习一遍)
顺便把TP、TN、FP、FN复习一遍
- True Positives (TP):正确地预测为正类的数量
- False Positives (FP):错误地预测为正类的数量
- True Negatives (TN):正确地预测为负类的数量
- False Negatives (FN):错误地预测为负类的数量
TP + TN
准确率:指所有预测正确的样本占总体样本的比例 即 ——————————————
TP+TN+FP+FN
TP
精确率:指模型预测为正类的样本中真正为正类的比例 ————————————
TP + FP
TP
召回率:实际为正类的样本中被正确预测为正类的比例 ——————————————
TP + FN
F1 分数(F1 Score):精确度和召回率的调和平均数,用来衡量模型的综合性能

题10
9. OpenCV中,用于计算图像直方图的函数是 _____________。
答案: cv2.calcHist() 单纯忘记了
题11
10. 机器学习中,_____________ 是一种通过组合多个弱模型来创建一个强模型的技术
答案: 集成学习
题12
11. 在OpenCV中,从摄像头循环读取帧,并在按下‘q’键时退出的循环中,判断键盘输入的语句通常是 `if cv2._____________(1) & 0xFF == ord('q'):`。
答案:waitKey
这个还是有必要熟悉一下,最好记住
if cv2.waitkey(1) & 0xFF == ord('q'):
题13
12. 线性回归模型的参数通常通过 _____________ 方法进行估计,以最小化损失函数。
答案: 最小二乘法
1万+

被折叠的 条评论
为什么被折叠?



