📝 使用说明:
- 本文档包含所有题目的答案和详细解析
- 建议先独立完成题目,再对照答案和解析
- 解析部分包含知识点回顾和易错点提醒
目录
- 一、模式识别基础
- 二、机器学习基础
- 三、决策树
- 四、kNN
- 五、贝叶斯
- 六、逻辑回归
- 七、线性回归
- 八、进化计算
- 九、元学习
- 十、PCA
- 十一、AdaBoost
- 十二、数据类型分类-统计描述
- 十三、缺失值处理-属性选择转换
- 十四、离散化-数据清理
- 十五、聚类基本概念-K-means
- 十六、层次聚类-DBSCAN-离群点检测
- 十七、支持度与置信度-Apriori算法-FP-Growth算法-购物篮分析
一、模式识别基础
单选题
1. ⭐ 答案:B
解析:模式是区别事物的时空特征组合,用向量表示。模式不是事物本身,而是从事物获得的信息。选项A、C、D都不准确。
2. ⭐ 答案:A
解析:模式具有三大特性:可观察性(可以通过传感器获取)、可区分性(不同模式之间存在差异)、相似性(同类模式具有共性)。这是模式识别的基础前提。
3. ⭐⭐ 答案:B
解析:模式识别的完整流程是:数据获取 → 预处理 → 特征提取 → 分类决策。这是一个从原始数据到最终分类结果的完整过程。
4. ⭐⭐ 答案:D
解析:模式识别的主要方法包括:数据聚类、模版匹配、神经网络、结构方法、统计方法。线性规划是优化方法,不属于模式识别方法。
模式识别五大主要方法:
- 数据聚类:无监督学习,从数据中发现隐藏的模式和结构(如K-means、层次聚类)
- 模版匹配:建立模版进行比较,根据相似性进行决策(如字符识别、手势识别)
- 神经网络:大规模并行计算,解决复杂非线性问题(如深度学习、CNN)
- 结构方法:将复杂模式分解为基元和关系,适合结构性强的模式(如句法模式识别)
- 统计方法:根据训练样本建立决策边界,包括生成式模型和判别式方法(如贝叶斯分类器、SVM)
线性规划:是数学优化方法,用于在约束条件下求最优解,不属于模式识别方法。
5. ⭐⭐⭐ 答案:B
解析:"没有免费的午餐"定理说明:不存在在所有问题上都最优的算法。如果一个算法在某些问题上表现好,必然在其他问题上表现差。这是模式识别的重要哲学思考。
多选题
6. ⭐⭐ 答案:ABCDE
解析:模式可以用多种方式表示,不同场景用不同方法:
-
向量表示:把数据变成一串数字,如[1.2, 3.5, 0.8],最常用,适合大多数算法(kNN、SVM等)。例如:人脸特征向量、文本的词袋模型。
-
矩阵表示:把数据排成二维表格,保留空间位置关系。例如:图像就是像素矩阵,每个位置对应一个像素值。
-
图表示:用点和线表示,点代表实体,线代表关系。例如:社交网络(用户是点,关注关系是线)、分子结构(原子是点,化学键是线)。
-
树表示:用树形结构表示层次关系。例如:句法分析树(句子结构)、XML文档结构、决策树模型。
-
字符串表示:直接用文字或符号序列。例如:文本内容、DNA序列、语音的音素序列。
选择原则:看数据特点选方法------数值特征用向量,图像用矩阵,关系数据用图,层次数据用树,文本序列用字符串。
7. ⭐⭐⭐ 答案:ABC
解析:模式识别面临的主要难点包括:非结构化数据多(图像、语音等)、机器缺乏抽象能力(难以理解概念)、数据质量问题(不完整、噪声、不一致)。计算资源有限和算法复杂度高是技术问题,不是模式识别的核心难点。
判断题
8. ⭐ 答案:×
解析:模式不是事物本身,而是从事物获得的信息。模式是信息的数学表示,不是事物的物理实体。
9. ⭐⭐ 答案:×
解析:模式识别不仅包括分类,还包括模式发现(发现新规律)、模式评估(评估可靠性)、模式解释(解释结果)等扩展任务。
10. ⭐⭐⭐ 答案:×
解析:奥卡姆剃刀原理说明:在同样能解释观测数据的理论中,应该选择最简单的。但这不意味着简单模型总是比复杂模型好,而是要在解释能力和复杂度之间平衡。
二、机器学习基础
单选题
11. ⭐ 答案:B
解析:机器学习的本质是系统在不断重复的工作中对本身能力的增强或改进,通过数据学习提升能力。选项A是传统编程,C和D不是机器学习的本质。
12. ⭐ 答案:B
解析:监督学习、无监督学习、强化学习的主要区别是是否有标签数据。监督学习有标签,无监督学习无标签,强化学习通过奖励信号学习。
13. ⭐⭐ 答案:D
解析:经验风险最小化(ERM)的核心思想是用样本误差近似期望风险。
核心概念:
- 期望风险:模型在所有可能数据上的平均误差(理想目标,但无法直接计算,因为不可能拿到所有数据)
- 经验风险:模型在训练样本上的平均误差(实际能计算的)
为什么用经验风险近似期望风险:
- 我们只有有限的训练数据,无法知道所有可能的数据
- 假设训练数据和真实数据来自同一分布,所以训练误差能代表真实误差
- 通过最小化训练误差,期望能最小化真实误差
通俗理解 :
就像考试前做练习题,我们无法知道所有可能的考题,只能通过做练习题(训练样本)来评估水平,希望练习题的成绩能代表真实考试的成绩。
注意:如果模型只记住练习题答案(过拟合),训练误差很小但真实误差很大,所以需要结构风险最小化(加正则化)来避免过拟合。
14. ⭐⭐ 答案:B
解析:机器学习模型追求的核心能力是泛化能力,即在未见过的数据上表现好的能力。训练准确率只是手段,最终目标是泛化能力。
15. ⭐⭐⭐ 答案:A
解析:一致性假设是指训练数据和测试数据来自同一分布。这是机器学习的基本假设,如果这个假设不成立,模型无法泛化。
多选题
16. ⭐⭐ 答案:ABCDE
解析:机器学习的主要方法包括:
-
监督学习:有标准答案(标签)的学习。例如:图像分类(知道每张图是什么)、垃圾邮件识别(知道哪些是垃圾邮件)。就像有老师告诉你对错。
-
无监督学习:没有标准答案,自己找规律。例如:聚类(把相似的数据分组)、降维(压缩数据维度)。就像自己探索发现。
-
强化学习:通过试错和奖励来学习。例如:下棋AI(走对了得分,走错了扣分)、自动驾驶(安全驾驶有奖励)。就像玩游戏,通过得分学习。
-
半监督学习:只有部分数据有标签,大部分没标签。例如:医疗诊断(只有少数病例有明确诊断,大部分不确定)。就像老师只批改部分作业。
-
迁移学习:把在一个任务上学到的知识用到另一个任务。例如:用识别猫狗的知识来识别其他动物。就像学会了骑自行车,学骑摩托车会更快。
核心区别:看有没有标签(监督学习有,无监督学习无),看学习方式(强化学习通过奖励,迁移学习借用知识)。
17. ⭐⭐⭐ 答案:ABCDE
解析:机器学习面临的六大挑战包括:
-
泛化能力:模型在训练数据上表现好,但在新数据上表现差(过拟合)。就像只会做练习题,考试就考不好。需要让模型真正学会规律,而不是记住答案。
-
速度:训练和预测太慢,无法满足实时需求。例如:自动驾驶需要毫秒级响应,但复杂模型可能需要几秒。需要在准确性和速度之间平衡。
-
可理解性:模型像"黑箱",不知道为什么会做出某个决策。例如:医疗诊断时,医生需要知道为什么判断是癌症。需要解释模型的决策过程。
-
数据利用:需要大量标注数据,但标注成本高。例如:标注一张医学影像需要专家几小时。需要能利用少量数据或无标签数据学习。
-
代价敏感:不同错误的代价不同。例如:把癌症误诊为健康(漏诊)比把健康误诊为癌症(误诊)更严重。需要根据错误代价优化模型。
-
可信任:模型可能出错、被攻击、有偏见。例如:人脸识别对某些人群准确率低(偏见)。需要确保模型可靠、公平、安全。
核心问题:这些挑战限制了机器学习的实际应用,需要在准确性、效率、可解释性、成本之间找到平衡。
判断题
18. ⭐ 答案:×
解析:机器学习是人工智能的一个分支,但不是人工智能的全部。人工智能还包括知识表示、推理、规划等多个领域。
19. ⭐⭐ 答案:×
解析:经验风险最小化不能保证泛化能力。
核心问题:
- 经验风险最小化:只最小化训练误差,可能让模型"死记硬背"训练数据
- 过拟合:模型在训练数据上表现很好(经验风险小),但在新数据上表现差(泛化能力差)
通俗理解 :
就像学生只背会了练习题答案,训练误差很小,但考试遇到新题就不会了。模型可能记住了训练数据的噪声和细节,而不是真正的规律。
解决方案:
- 结构风险最小化:在经验风险基础上,加入正则化项(惩罚模型复杂度)
- 正则化作用:防止模型太复杂,让它学习简单通用的规律,而不是记住所有细节
- 效果:训练误差可能稍大,但泛化能力更好
类比:就像考试时,死记硬背所有题目答案(经验风险最小)不如理解核心概念(结构风险最小),后者遇到新题也能做对。
20. ⭐⭐⭐ 答案:×
解析:黑箱模型(如神经网络)和白箱模型(如决策树)各有优缺点。黑箱模型性能可能更好,但白箱模型可解释性强。选择取决于应用场景。
三、决策树
单选题
21. ⭐ 答案:B
解析:决策树的基本思想是使用超平面递归划分输入空间,通过属性选择构建树形分类模型,自顶向下递归分治。
核心思想:
- 递归划分:从根节点开始,每次选择一个属性(特征)把数据分成两部分
- 树形结构:像问问题一样,每个节点问一个问题,根据答案走不同分支
- 自顶向下:从最一般的问题开始,逐步细化到具体分类
通俗理解 :
就像医生看病:先问"发烧吗?"(根节点),如果发烧→问"咳嗽吗?"(左分支),如果不发烧→问"肚子疼吗?"(右分支),一步步缩小范围,最终得出诊断结果(叶节点)。
关键步骤:
- 选择属性:每次选择最能区分数据的属性(如信息增益最大的)
- 划分数据:根据属性值把数据分成子集
- 递归建树:对每个子集重复上述过程,直到数据纯净或达到停止条件
优点:直观易懂,就像做选择题,每一步都有明确的判断标准。
22. ⭐ 答案:A
解析:ID3算法使用信息增益来选择分裂属性。信息增益衡量划分前后熵的减少量,增益越大,分类准确性提升越大。
核心概念:
- 熵(Entropy):衡量数据的混乱程度。熵越大,数据越混乱(各类别混在一起);熵越小,数据越纯净(主要是同一类别)
- 信息增益:用某个属性划分后,熵减少了多少。增益越大,说明这个属性越能区分数据
通俗理解 :
就像分班考试,要选一个科目来分班。如果选"数学"分班后,每个班的学生成绩都差不多(熵小,数据纯净),说明数学能很好地区分学生水平(信息增益大)。如果选"体育"分班后,每个班的学生成绩还是很混乱(熵大),说明体育不能区分学生水平(信息增益小)。
ID3算法思路:
- 计算每个属性的信息增益
- 选择信息增益最大的属性作为分裂点
- 递归地对每个子集重复上述过程
为什么信息增益大就好:信息增益大→划分后数据更纯净→分类更准确→决策树效果更好。
23. ⭐⭐ 答案:A
解析 :信息增益公式: G a i n ( A ) = E n t r o p y ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t r o p y ( D v ) Gain(A) = Entropy(D) - \sum_{v=1}^{V} \frac{|D_v|}{|D|} Entropy(D_v) Gain(A)=Entropy(D)−∑v=1V∣D∣∣Dv∣Entropy(Dv)。这是ID3算法的核心公式。
公式含义:
- E n t r o p y ( D ) Entropy(D) Entropy(D):划分前整个数据集的熵(混乱程度)
- ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t r o p y ( D v ) \sum_{v=1}^{V} \frac{|D_v|}{|D|} Entropy(D_v) ∑v=1V∣D∣∣Dv∣Entropy(Dv) :划分后各子集的加权平均熵
- D v D_v Dv:属性A取值为v的子集
- ∣ D v ∣ ∣ D ∣ \frac{|D_v|}{|D|} ∣D∣∣Dv∣:子集的权重(子集大小/总大小)
- E n t r o p y ( D v ) Entropy(D_v) Entropy(Dv):子集的熵
- G a i n ( A ) Gain(A) Gain(A):信息增益 = 划分前的熵 - 划分后的加权平均熵
通俗理解 :
就像分班前,学生成绩很混乱(熵大)。用某个属性(如"数学成绩")分班后,每个班的学生成绩更整齐了(熵小)。信息增益 = 分班前的混乱程度 - 分班后的混乱程度。增益越大,说明这个属性越能区分数据。
计算步骤:
- 计算原始数据集的熵 E n t r o p y ( D ) Entropy(D) Entropy(D)
- 用属性A划分数据,得到V个子集
- 计算每个子集的熵 E n t r o p y ( D v ) Entropy(D_v) Entropy(Dv),按子集大小加权平均
- 信息增益 = 原始熵 - 加权平均熵
为什么这样计算 :熵减少越多(信息增益越大),说明划分后数据越纯净,这个属性越有用。
24. ⭐⭐ 答案:B
解析 :C4.5算法使用增益率是为了解决信息增益偏向多值属性的问题。信息增益会偏向选择取值较多的属性,增益率通过除以属性的固有值来修正。
核心问题:
- 信息增益的缺陷:会偏向选择取值多的属性(如"学号"有1000个不同值),即使这个属性对分类没用
- 原因 :取值越多,划分后每个子集越小,熵更容易变小 ,信息增益看起来很大
- 结果:可能选到无意义的属性(如用"学号"分班,每个班只有1个人,熵为0但没意义)
增益率的解决方案:
- 增益率 = 信息增益 / 属性的固有值
- 固有值:衡量属性本身的复杂度(取值越多,固有值越大)
- 效果 :通过除以固有值,惩罚取值多的属性,让算法选择真正有用的属性
例子:
- "学号"(1000个值):信息增益大,但固有值也大,增益率小
- "成绩等级"(5个值:优秀/良好/中等/及格/不及格):信息增益适中,固有值小,增益率大
- 结果:选择"成绩等级"而不是"学号"
总结 :增益率 = 信息增益 / 固有值,既考虑分类效果,又惩罚复杂属性,避免选择无意义的属性。
25. ⭐⭐⭐ 答案:C
解析:预剪枝可能欠拟合(过早停止),后剪枝效果更好但计算量大(需要生成完全树后再剪枝)。需要根据实际情况选择。
多选题
26. ⭐⭐ 答案:ABCD
解析:决策树的优点包括:直观易懂、不需要领域知识、处理高维数据快、可解释性强。但决策树容易过拟合,这是缺点。
优点详解:
-
直观易懂:决策树像流程图一样,每一步都是"如果...那么..."的判断,普通人也能看懂。例如:"如果年龄>18,那么看学历;如果学历>本科,那么录用"。
-
不需要领域知识:不需要事先知道哪些特征重要,算法会自动选择最有用的特征。不像有些方法需要专家先筛选特征。
-
处理高维数据快:即使有很多特征(如1000个),决策树也能快速找到重要的几个特征,不需要计算所有特征之间的关系。
-
可解释性强:能清楚说明为什么做出某个预测。例如:"因为年龄>30且收入>5000,所以预测会买房"。不像神经网络是"黑箱"。
缺点:
- 容易过拟合 :如果树太深,会把训练数据的细节都记住(包括噪声),在新数据上表现差。就像学生只背会了练习题答案,考试遇到新题就不会了。
适用场景:需要可解释性的场景(如医疗诊断、金融风控),或者需要快速理解模型逻辑的场景。
27. ⭐⭐⭐ 答案:ABCDE
解析:决策树处理过拟合的方法包括:预剪枝、后剪枝、限制树的深度、限制叶节点最小样本数、增加训练数据等。
判断题
28. ⭐ 答案:√
解析:决策树是急切学习算法,在接收新测试元组之前就已经构造泛化模型(树形结构)。
29. ⭐⭐ 答案:√
解析:信息增益 = 划分前后熵的差值。增益越大,说明划分后数据更纯,分类准确性提升越大。
30. ⭐⭐⭐ 答案:×
解析:CART算法既可以处理分类问题(用基尼系数),也可以处理回归问题(用均方误差)。CART是分类和回归树。
CART算法的特点:
- CART = Classification And Regression Tree(分类和回归树)
- 是决策树算法的一种,既能做分类 ,也能做回归
分类问题:
- 使用基尼系数 :衡量数据的不纯度(类似熵),基尼系数越小,数据越纯净
- 输出:离散的类别(如:是/否、A/B/C)
- 例子:判断邮件是垃圾邮件还是正常邮件
回归问题:
- 使用均方误差 :衡量预测值与真实值的差异,误差越小越好
- 输出:连续的数值(如:价格、温度、销量)
- 例子:预测房价、预测销量
通俗理解 :
CART就像一把"万能钥匙":分类时用基尼系数找最纯的分组(如把学生分成"好学生"和"差学生"),回归时用均方误差找最准的数值(如预测学生能考多少分)。
与其他算法对比:
- ID3和C4.5只能做分类(只用信息增益/增益率)
- CART既能分类又能回归,更通用
四、kNN
单选题
31. ⭐ 答案:B
解析:kNN是惰性学习算法,只简单存储训练样本,接收到检验元组时才泛化模型,不预先构建模型。
32. ⭐ 答案:C
解析:kNN的核心思想是"近朱者赤近墨者黑",从训练集中找出k个最接近测试对象的训练对象,找出居于主导的类别赋给测试对象。
33. ⭐⭐ 答案:B
解析 :欧几里德距离(2范数)公式: d ( x i , x j ) = ∑ f = 1 p ( x i f − x j f ) 2 d(x_i, x_j) = \sqrt{\sum_{f=1}^{p}(x_{if} - x_{jf})^2} d(xi,xj)=∑f=1p(xif−xjf)2 。这是最常用的距离度量方法。
34. ⭐⭐ 答案:C
解析:k值选择很重要:k太小易受噪声影响过拟合,k太大会包含远离数据点模型过于简单。通常用检验集估计错误率选择最优k。
35. ⭐⭐⭐ 答案:B
解析:kD树是平衡二叉树索引结构,通过空间划分提高最近邻搜索效率,避免遍历所有数据点,将复杂度从O(n)降到O(log n)。
核心问题:
- kNN的痛点:找最近邻需要计算测试点到所有训练点的距离,数据量大时很慢(O(n))
- kD树的作用:通过空间划分,快速排除不可能的点,只搜索可能区域
kD树的工作原理:
- 空间划分:把数据空间递归地划分成矩形区域(类似切蛋糕)
- 二叉树结构:每个节点代表一个划分,左子树和右子树代表不同的区域
- 搜索策略:从根节点开始,根据测试点的坐标决定走左子树还是右子树,快速缩小搜索范围
通俗理解 :
就像找最近的商店:不用挨个计算距离(遍历所有点),而是先看"在城市的东边还是西边"(空间划分),排除一半区域,再继续细分,很快就能找到最近的点。
效率提升:
- 不用kD树:需要计算n个距离,复杂度O(n)
- 用kD树:通过空间划分快速定位,复杂度O(log n)
- 例子:1000个点,不用kD树需要计算1000次距离,用kD树只需要约10次(log₂1000≈10)
适用场景:数据量大、维度不太高(通常k<20)的kNN搜索场景。
多选题
36. ⭐⭐ 答案:ABCDE
解析:kNN的距离度量方法包括:欧几里德距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、余弦距离等。不同距离适用于不同场景。
各种距离度量:
-
欧几里德距离 (直线距离):两点之间的直线距离,最常用。公式: ∑ ( x i − y i ) 2 \sqrt{\sum(x_i-y_i)^2} ∑(xi−yi)2 。例如:地图上两点间的直线距离。适合大多数场景。
-
曼哈顿距离 (城市街区距离):只能沿着坐标轴走,像在城市里只能走街道。公式: ∑ ∣ x i − y i ∣ \sum|x_i-y_i| ∑∣xi−yi∣。例如:从A点到B点,只能横着走或竖着走。适合网格状数据。
-
切比雪夫距离 (棋盘距离):取各维度差值的最大值 。公式: max ∣ x i − y i ∣ \max|x_i-y_i| max∣xi−yi∣。例如:国际象棋中王走一步能到的所有格子。适合只关心最大差异的场景。
-
闵可夫斯基距离 (通用距离):欧几里德距离和曼哈顿距离的推广。公式: ( ∑ ∣ x i − y i ∣ p ) 1 / p (\sum|x_i-y_i|^p)^{1/p} (∑∣xi−yi∣p)1/p。p=1是曼哈顿距离,p=2是欧几里德距离。适合需要灵活调整的场景。
-
余弦距离 (角度相似度):衡量两个向量的夹角,不关心长度。公式: 1 − cos ( θ ) 1-\cos(\theta) 1−cos(θ)。例如:文本相似度(只关心词频比例,不关心文档长度)。适合高维稀疏数据、文本数据。
选择原则:
- 一般数据用欧几里德距离
- 网格数据用曼哈顿距离
- 文本数据用余弦距离
- 需要灵活调整用闵可夫斯基距离
37. ⭐⭐⭐ 答案:ABCDE
解析:kNN的缺点包括:对噪声敏感、计算慢(需要计算所有距离)、需要存储所有训练样本、对不平衡数据敏感、高维数据效果差(维度灾难)。
缺点详解:
-
对噪声敏感:如果训练数据中有错误标签或异常点,kNN会受影响。例如:100个样本中1个标错了,可能影响预测结果。因为kNN直接基于数据,没有"学习"去过滤噪声。
-
计算慢:每次预测都要计算测试点到所有训练点的距离。例如:10000个训练样本,预测1个点需要计算10000次距离。数据量大时很慢。
-
需要存储所有训练样本:不像其他算法只存储模型参数,kNN需要保存所有训练数据。例如:10000个样本×100个特征,需要存储100万个数值。内存占用大。
-
对不平衡数据敏感:如果某个类别样本很多,另一个类别很少,kNN容易偏向多数类。例如:90%是正常邮件,10%是垃圾邮件,kNN可能把所有邮件都预测为正常邮件。
-
高维数据效果差(维度灾难):维度越高,所有点之间的距离都差不多,kNN无法区分。例如:1000维空间中,最近邻和最近邻的距离差异很小,失去了"近邻"的意义。
改进方法:
- 对噪声:数据清洗、异常值检测
- 计算慢:用kD树等索引结构加速
- 不平衡数据:SMOTE过采样、欠采样
- 高维数据:降维(PCA)、特征选择
判断题
38. ⭐ 答案:×
解析:kNN是惰性学习,在训练阶段不需要构建模型,只存储训练样本。测试时才计算距离进行分类。
39. ⭐⭐ 答案:×
解析:kNN计算距离前必须数据标准化。不同属性的量纲不同,如果不标准化,量纲大的属性会主导距离计算。
40. ⭐⭐⭐ 答案:√
解析:kNN可以处理任意形状的决策边界,因为它是基于局部预测的,不假设全局的线性或简单边界。
核心特点:
- 局部预测:kNN只关注测试点附近的k个邻居,根据这些邻居做预测
- 无全局假设:不像逻辑回归假设线性边界,kNN不假设数据有特定的分布或形状
通俗理解 :
就像投票:kNN只看"附近的人"(k个最近邻)投什么票,然后跟着投票。不管整体数据是什么形状(圆形、月牙形、复杂曲线),只要附近的人一致,就能正确分类。不像有些算法(如逻辑回归)假设"所有人都在一条直线两边"(线性边界)。
对比其他算法:
- 逻辑回归:只能画直线边界,数据如果是圆形分布就分不好
- kNN:可以适应任意形状,因为每个点的分类只依赖附近点,不依赖全局形状
例子:
- 数据是月牙形分布:逻辑回归分不好(只能画直线),kNN可以(局部判断)
- 数据是同心圆分布:线性分类器分不好,kNN可以(看最近邻)
前提条件:需要足够的训练数据,让每个区域都有足够的邻居点。
五、贝叶斯
单选题
41. ⭐ 答案:A
解析 :贝叶斯公式: P ( C ∣ X ) = P ( X ∣ C ) ⋅ P ( C ) P ( X ) P(C|X) = \frac{P(X|C) \cdot P(C)}{P(X)} P(C∣X)=P(X)P(X∣C)⋅P(C)。这是贝叶斯方法的核心公式,用已知信息更新对未知事物的判断。
42. ⭐ 答案:B
解析:朴素贝叶斯的"朴素"假设是所有特征之间条件独立。虽然现实中往往不成立,但在文本分类等场景中表现优秀。
"朴素"的含义:
- 条件独立假设:给定类别后,所有特征之间相互独立(互不影响)
- "朴素":这个假设很简化,现实中特征往往相关,所以叫"朴素"(简单、天真)
通俗理解 :
就像判断邮件是不是垃圾邮件:朴素贝叶斯假设"出现'免费'这个词"和"出现'中奖'这个词"是独立的(互不影响)。但现实中,这两个词经常一起出现(相关)。虽然假设不完美,但算法仍然有效。
为什么假设不成立还能用:
- 计算简化:如果考虑所有特征的相关性,计算复杂度太高(需要估计太多参数)
- 实际效果好:即使假设不完美,在很多场景(特别是文本分类)中表现很好
- 数据充足时:有足够数据时,条件独立假设的影响会减小
适用场景:
- 文本分类:判断邮件是垃圾邮件还是正常邮件(词之间相对独立)
- 情感分析:判断评论是正面还是负面
- 文档分类:新闻分类、主题分类
不适用场景:
- 特征强相关的场景(如:身高和体重预测体重)
43. ⭐⭐ 答案:A
解析:先验概率是观测数据前的初始判断,似然概率是给定类别下观测到数据的概率,后验概率是观测数据后类别的概率。这是贝叶斯推理的核心。
三个核心概念:
-
先验概率 P ( C ) P(C) P(C):看到数据之前的初始判断(基于经验或历史数据)。例如:收到一封邮件,先验判断"90%是正常邮件,10%是垃圾邮件"。
-
似然概率 P ( X ∣ C ) P(X|C) P(X∣C):给定类别下,观测到这些数据的概率。例如:如果是垃圾邮件,出现"免费"这个词的概率是多少。
-
后验概率 P ( C ∣ X ) P(C|X) P(C∣X):看到数据后,更新后的判断。例如:看到邮件里有"免费"这个词后,重新判断这封邮件是垃圾邮件的概率。
贝叶斯公式 : P ( C ∣ X ) = P ( X ∣ C ) ⋅ P ( C ) P ( X ) P(C|X) = \frac{P(X|C) \cdot P(C)}{P(X)} P(C∣X)=P(X)P(X∣C)⋅P(C)
通俗理解 :
就像医生看病:
- 先验概率:看到病人前,根据经验判断"感冒的概率是60%"
- 似然概率:如果是感冒,出现"发烧"症状的概率是多少
- 后验概率:看到病人发烧后,更新判断"感冒的概率是80%"
贝叶斯推理的本质 :
用新证据(数据)更新旧判断(先验),得到新判断(后验)。这是一个"学习"的过程:从初始猜测→看到证据→更新判断。
44. ⭐⭐ 答案:A
解析:最小错误率决策不考虑错误代价(所有错误代价相同),选择概率最大的类别。最小风险决策考虑错误代价,选择风险最小的决策。
45. ⭐⭐⭐ 答案:B
解析:EM算法通过E步骤(计算隐藏变量期望)和M步骤(重新估计参数)迭代优化,适用于有隐藏变量的情况(如混合模型、聚类问题)。
核心问题:
- 隐藏变量:有些数据我们看不到(如:不知道某个样本属于哪个类别)
- 鸡生蛋问题:不知道参数→无法推断隐藏变量;不知道隐藏变量→无法估计参数
- EM算法:通过迭代解决这个循环依赖问题
EM算法的两个步骤:
-
E步骤(Expectation,期望步骤):
- 固定参数,计算隐藏变量的期望(概率分布)
- 例如:假设知道每个类别的参数,计算每个样本属于各个类别的概率
-
M步骤(Maximization,最大化步骤):
- 固定隐藏变量,重新估计参数(使似然函数最大)
- 例如:根据样本的类别概率,重新计算每个类别的参数
通俗理解 :
就像分班:不知道学生成绩分布(参数),也不知道每个学生该分到哪个班(隐藏变量)。
- E步骤:假设知道成绩分布,估计每个学生属于各个班的概率
- M步骤:根据学生的班级概率,重新估计成绩分布
- 迭代:重复E和M步骤,直到收敛(参数不再变化)
适用场景:
- 混合模型:数据来自多个分布(如:高个子和矮个子混在一起)
- 聚类问题:不知道每个样本属于哪个簇
- 有缺失数据:部分数据缺失,需要推断
优点:能处理有隐藏变量的复杂问题,通过迭代逐步优化。
多选题
46. ⭐⭐ 答案:ABC
解析:参数估计方法包括:最大似然估计(MLE,只考虑数据)、最大后验估计(MAP,结合先验知识)、贝叶斯参数估计(估计参数的概率分布)。
三种参数估计方法:
-
最大似然估计(MLE):
- 思想:选择让观测数据出现概率最大的参数
- 特点:只考虑数据,不考虑先验知识
- 例子:抛硬币10次,7次正面,MLE估计正面概率=0.7(只看数据)
- 优点:简单直接,数据量大时效果好
- 缺点:数据少时可能不准,没有利用先验知识
-
最大后验估计(MAP):
- 思想:结合先验知识和数据,选择后验概率最大的参数
- 特点:MLE + 先验知识,在MLE基础上加入先验
- 例子:抛硬币10次,7次正面,但先验认为硬币是公平的(概率=0.5),MAP会平衡两者
- 优点:数据少时也能利用先验知识,更稳健
- 缺点:需要知道先验分布
-
贝叶斯参数估计:
- 思想:不估计单个参数值,而是估计参数的概率分布
- 特点:给出参数的完整分布(不确定性),不只是点估计
- 例子:不只说"正面概率是0.7",而是说"正面概率在0.6-0.8之间,最可能是0.7"
- 优点:能量化不确定性,更全面
- 缺点:计算复杂,需要积分
通俗理解:
- MLE:只看数据说话("我看到了7次正面,所以概率是0.7")
- MAP:结合经验和数据("虽然看到7次正面,但硬币通常是公平的,所以可能是0.6")
- 贝叶斯估计:不仅给答案,还给出置信度("概率可能是0.7,但不确定,可能在0.6-0.8之间")
选择原则:数据多→MLE;数据少→MAP;需要不确定性→贝叶斯估计。
47. ⭐⭐⭐ 答案:ABCDE
解析:朴素贝叶斯的优点包括:简单易懂、训练速度快(只需要统计频率)、对小规模数据表现良好、对噪声数据不敏感、可以处理多分类问题。
判断题
48. ⭐ 答案:×
解析:贝叶斯方法可以给出概率值,能评估置信度和可靠性,遇到无法理解的场景可以拒绝分类。这是贝叶斯方法的优势。
49. ⭐⭐ 答案:×
解析:朴素贝叶斯的条件独立性假设在现实中往往不成立(特征通常相关),但实际应用中表现却出人意料地好,特别是在文本分类中。
50. ⭐⭐⭐ 答案:√
解析:如果某个属性值在训练数据中从未出现,会导致概率为0,需要使用平滑技术(如拉普拉斯平滑)避免零概率问题。
六、逻辑回归
单选题
51. ⭐ 答案:A
解析:Sigmoid函数的作用是将任意实数映射到[0,1]区间,S形曲线平滑过渡。当x=0时输出0.5,x→+∞时输出→1,x→-∞时输出→0。
52. ⭐ 答案:B
解析 :逻辑回归的损失函数是交叉熵损失(负对数似然函数): − 1 m ∑ i = 1 m [ y i ln h θ ( x i ) + ( 1 − y i ) ln ( 1 − h θ ( x i ) ) ] -\frac{1}{m}\sum_{i=1}^{m}[y_i\ln h_\theta(x_i) + (1-y_i)\ln(1-h_\theta(x_i))] −m1∑i=1m[yilnhθ(xi)+(1−yi)ln(1−hθ(xi))]。
公式含义:
- y i y_i yi:真实标签(0或1)
- h θ ( x i ) h_\theta(x_i) hθ(xi):模型预测的概率(0到1之间)
- m m m:样本数量
- 两部分 :
- y i ln h θ ( x i ) y_i\ln h_\theta(x_i) yilnhθ(xi):当真实标签是1时,希望预测概率接近1(损失小)
- ( 1 − y i ) ln ( 1 − h θ ( x i ) ) (1-y_i)\ln(1-h_\theta(x_i)) (1−yi)ln(1−hθ(xi)):当真实标签是0时,希望预测概率接近0(损失小)
通俗理解 :
就像考试评分:
- 预测对了(y=1,预测=0.9):损失很小(-ln(0.9)≈0.1)
- 预测错了(y=1,预测=0.1):损失很大(-ln(0.1)≈2.3)
- 预测越准,损失越小;预测越错,损失越大
为什么用交叉熵:
- 惩罚错误预测:预测错了(如y=1但预测=0.1),损失很大,模型会快速调整
- 梯度友好:损失函数平滑,便于梯度下降优化
- 概率解释:对应最大似然估计,有概率意义
例子:
- 样本1:真实=1,预测=0.9 → 损失 = -ln(0.9) ≈ 0.1(小)
- 样本2:真实=1,预测=0.1 → 损失 = -ln(0.1) ≈ 2.3(大)
- 样本3:真实=0,预测=0.2 → 损失 = -ln(0.8) ≈ 0.2(小)
目标:最小化所有样本的平均损失,让模型预测更准确。
53. ⭐⭐ 答案:B
解析 :逻辑回归的决策边界是线性的: θ T x = 0 \theta^T x = 0 θTx=0。虽然用了sigmoid函数,但决策边界仍然是线性的。
54. ⭐⭐ 答案:A
解析 :梯度下降法中,学习率 α \alpha α控制参数更新的步长。太小收敛慢,太大可能发散,需要选择合适的学习率。
55. ⭐⭐⭐ 答案:C
解析:批量梯度下降最稳定但最慢,随机梯度下降最快但最不稳定,小批量梯度下降平衡速度和稳定性,最常用。
三种梯度下降方法:
-
批量梯度下降(BGD):
- 做法:每次用所有训练样本计算梯度,更新一次参数
- 优点:梯度方向准确,收敛稳定,不容易震荡
- 缺点:每次都要看所有数据,速度慢,内存占用大
- 例子:10000个样本,每次更新要看全部10000个,更新一次很慢
-
随机梯度下降(SGD):
- 做法:每次随机选1个样本计算梯度,更新一次参数
- 优点:每次只看1个样本,速度快,内存占用小,能跳出局部最优
- 缺点:梯度方向不准确,收敛不稳定,损失函数会震荡
- 例子:10000个样本,每次更新只看1个,更新很快但方向不准
-
小批量梯度下降(MBGD/Mini-batch):
- 做法:每次随机选一小批样本(如32、64个)计算梯度,更新一次参数
- 优点:平衡速度和稳定性,梯度方向比SGD准,速度比BGD快
- 缺点:需要调批次大小(batch size)
- 例子:10000个样本,每次看32个,既快又稳
通俗理解 :
就像学习:
- BGD:把所有题目都做一遍才总结一次(慢但准)
- SGD:做一道题就总结一次(快但不准)
- MBGD:做32道题总结一次(又快又准,最常用)
选择原则:
- 数据小(<1000)→ BGD
- 数据大且需要快速迭代 → SGD
- 大多数情况 → MBGD(batch size通常32、64、128)
多选题
56. ⭐⭐ 答案:ABCDE
解析:逻辑回归的优化方法包括:批量梯度下降(BGD)、随机梯度下降(SGD)、小批量梯度下降(MBGD)、动量法、Adam算法等。
优化方法分类:
基础梯度下降方法:
- 批量梯度下降(BGD):用所有样本,稳定但慢
- 随机梯度下降(SGD):用1个样本,快但不稳定
- 小批量梯度下降(MBGD):用一小批样本(如32个),平衡速度和稳定性
改进的优化方法:
-
动量法(Momentum):
- 思想:加入"惯性",让参数更新有方向性,减少震荡
- 优点:收敛更快,减少震荡,能跳出局部最优
- 类比:像下坡时带惯性,不会左右摇摆
-
Adam算法:
- 思想:结合动量法和自适应学习率,为每个参数单独调整学习率
- 优点:收敛快,适应性强,适合大多数场景
- 特点:最常用的优化算法,能自动调整学习率
选择原则:
- 数据小、需要稳定 → BGD
- 数据大、需要快速迭代 → SGD或MBGD
- 大多数情况 → Adam(最常用,效果好)
- 需要更快收敛 → 动量法 + MBGD
发展趋势:从基础梯度下降 → 改进方法(动量、Adam),越来越智能和高效。
57. ⭐⭐⭐ 答案:ABC
解析:逻辑回归的缺点包括:只能处理线性决策边界、对异常值敏感、特征缺失时表现不好。计算复杂度不高,也不需要大量数据。
缺点详解:
-
只能处理线性决策边界:
- 问题:决策边界是一条直线(或超平面),无法处理非线性关系
- 例子:数据如果是圆形分布(内圈是A类,外圈是B类),逻辑回归分不好,只能画直线
- 解决:可以用特征工程(多项式特征)或核方法,但本质还是线性
-
对异常值敏感:
- 问题:异常值会严重影响模型,让决策边界偏移
- 例子:100个样本中1个异常值(如年龄=200岁),可能让整个模型变差
- 原因:损失函数对异常值惩罚大,梯度下降会被异常值"拉偏"
-
特征缺失时表现不好:
- 问题:逻辑回归需要所有特征都有值,缺失值会影响预测
- 例子:预测是否买房,如果"收入"特征缺失,无法预测
- 解决:需要先处理缺失值(填充、删除等)
不是缺点:
- 计算复杂度不高:训练和预测都很快,适合大规模数据
- 不需要大量数据:小样本也能训练,不像深度学习需要大量数据
适用场景:
- 数据线性可分或近似线性
- 数据质量好(无异常值、无缺失值)
- 需要快速训练和预测
- 需要可解释性(系数有含义)
判断题
58. ⭐ 答案:×
解析:逻辑回归虽然名字叫"回归",但实际上是分类算法,用于二分类问题。它输出的是概率值,然后根据阈值分类。
59. ⭐⭐ 答案:√
解析 :逻辑回归对对数几率是线性的: ln ( p 1 − p ) = θ T x \ln(\frac{p}{1-p}) = \theta^T x ln(1−pp)=θTx。这是逻辑回归被称为"线性"模型的原因。
60. ⭐⭐⭐ 答案:√
解析:逻辑回归是二分类算法,处理多分类问题需要特殊处理:One-vs-Rest(一对多)或Softmax回归(多分类扩展)。
核心问题:
- 逻辑回归本质:只能输出一个概率值(0到1),判断是A类还是B类
- 多分类问题:需要判断是A类、B类还是C类(3个或更多类别)
- 解决方案:把多分类问题转换成多个二分类问题,或扩展逻辑回归
两种方法:
-
One-vs-Rest(OvR,一对多):
- 做法:训练K个二分类器(K是类别数),每个分类器判断"是第i类"还是"不是第i类"
- 预测:K个分类器都预测,选择概率最大的类别
- 例子:3分类(猫/狗/鸟)→ 训练3个分类器:猫vs非猫、狗vs非狗、鸟vs非鸟
- 优点:简单,只需要K个二分类器
- 缺点:类别不平衡("非猫"包含狗和鸟,样本多),可能不准确
-
Softmax回归(多分类逻辑回归):
- 做法:扩展逻辑回归,输出K个概率值(和为1),每个对应一个类别
- 预测:选择概率最大的类别
- 例子:3分类 → 输出[0.7, 0.2, 0.1],表示猫/狗/鸟的概率
- 优点:直接多分类,概率和为1,更自然
- 缺点:需要同时训练所有类别,计算稍复杂
通俗理解:
- OvR:像投票,每个人说"是不是A"、"是不是B"、"是不是C",最后选票数最多的
- Softmax:像分配,把所有概率分配给K个类别,选概率最大的
选择原则:
- 类别少(<10)→ OvR简单有效
- 类别多或需要概率分布 → Softmax更合适
- 大多数情况 → Softmax(更常用,更准确)
七、线性回归
单选题
61. ⭐ 答案:A
解析 :线性回归的基本模型是: y = β 0 + β 1 x 1 + . . . + β D x D = x T β y = \beta_0 + \beta_1 x_1 + ... + \beta_D x_D = x^T \beta y=β0+β1x1+...+βDxD=xTβ。假设因变量与自变量之间是线性关系。
62. ⭐ 答案:A
解析 :最小二乘法的解析解是: β ^ = ( Φ T Φ ) − 1 Φ T y \hat{\beta} = (\Phi^T \Phi)^{-1} \Phi^T y β^=(ΦTΦ)−1ΦTy。这是通过求偏导数得到的闭式解。
63. ⭐⭐ 答案:B
解析:L1正则化(Lasso)可以让参数为0(实现特征选择),L2正则化(Ridge)让参数变小但不为0。这是两者的核心区别。
正则化的作用:
- 防止过拟合:惩罚模型复杂度,让参数变小,避免模型太复杂
- 提高泛化能力:让模型学习简单规律,而不是记住训练数据细节
L1正则化(Lasso):
- 公式 :损失函数 + λ ∑ ∣ β i ∣ \lambda \sum|\beta_i| λ∑∣βi∣(参数绝对值之和)
- 特点 :可以让某些参数精确为0,实现特征选择
- 效果:不重要的特征参数会变成0,模型自动选择重要特征
- 例子:100个特征,Lasso可能只保留20个(其他80个参数为0)
- 优点:自动特征选择,模型更简单,可解释性强
- 缺点:如果特征相关,可能随机选一个,其他变成0
L2正则化(Ridge):
- 公式 :损失函数 + λ ∑ β i 2 \lambda \sum\beta_i^2 λ∑βi2(参数平方和)
- 特点 :让参数变小但不为0,所有特征都保留
- 效果:所有参数都变小,但不会变成0
- 例子:100个特征,Ridge保留所有100个,但参数都变小了
- 优点:稳定,适合特征相关的情况
- 缺点:不能特征选择,模型仍然复杂
通俗理解:
- L1(Lasso):像"裁员",不重要的员工直接开除(参数=0),只留重要的
- L2(Ridge):像"降薪",所有员工都降薪(参数变小),但都保留
选择原则:
- 需要特征选择、特征多 → L1(Lasso)
- 特征相关、需要稳定 → L2(Ridge)
- 两者结合 → Elastic Net(L1+L2)
64. ⭐⭐ 答案:B
解析:过拟合是指模型在训练数据上表现好,但在新数据上表现差。原因是模型太复杂,记住了训练数据的噪声。
65. ⭐⭐⭐ 答案:B
解析 :当特征数量大于样本数时,矩阵 Φ T Φ \Phi^T\Phi ΦTΦ不可逆(秩不足),无法直接求解。需要用正则化或降维方法。
核心问题:
- 线性回归解析解 : β ^ = ( Φ T Φ ) − 1 Φ T y \hat{\beta} = (\Phi^T\Phi)^{-1}\Phi^T y β^=(ΦTΦ)−1ΦTy,需要计算 ( Φ T Φ ) − 1 (\Phi^T\Phi)^{-1} (ΦTΦ)−1(矩阵的逆)
- 矩阵可逆条件:矩阵必须是满秩的(行/列线性无关)
- 问题场景:特征数 > 样本数(如1000个特征,只有100个样本)
为什么不可逆:
- 秩不足 :特征数 > 样本数时, Φ T Φ \Phi^T\Phi ΦTΦ的秩最多等于样本数,小于特征数
- 线性相关:特征之间必然存在线性相关(1000个特征,只有100个样本,必然相关)
- 结果:矩阵不可逆,无法直接求解
通俗理解 :
就像解方程:1000个未知数(特征),只有100个方程(样本),方程不够,无法唯一确定解。矩阵 Φ T Φ \Phi^T\Phi ΦTΦ不可逆,就像方程组无解或有无穷多解。
解决方案:
-
正则化方法:
- L2正则化(Ridge) : β ^ = ( Φ T Φ + λ I ) − 1 Φ T y \hat{\beta} = (\Phi^T\Phi + \lambda I)^{-1}\Phi^T y β^=(ΦTΦ+λI)−1ΦTy
- 作用 :加上 λ I \lambda I λI让矩阵可逆,同时防止过拟合
- 优点:简单有效,还能提高泛化能力
-
降维方法:
- PCA降维:把1000个特征降到100个以下
- 特征选择:选择重要的特征,删除不重要的
- 作用:让特征数 ≤ 样本数,矩阵可逆
实际场景:
- 基因数据:几万个基因(特征),只有几百个样本
- 文本数据:几万个词(特征),只有几千个文档
- 图像数据:高维像素特征,样本相对较少
总结:特征数 > 样本数时,必须用正则化或降维,否则无法求解。
多选题
66. ⭐⭐ 答案:ABC
解析 :线性回归的基函数的作用是:对输入特征进行非线性变换,让线性回归处理非线性关系。虽然对原始特征非线性,但对变换后的特征仍线性(对参数 β \beta β线性)。
核心问题:
- 线性回归的局限 :只能拟合线性关系( y = β 0 + β 1 x y = \beta_0 + \beta_1 x y=β0+β1x),无法处理非线性关系
- 基函数的作用:通过非线性变换,把非线性问题变成线性问题
基函数的工作原理:
- 原始模型 : y = β 0 + β 1 x y = \beta_0 + \beta_1 x y=β0+β1x(只能拟合直线)
- 加入基函数 : y = β 0 + β 1 ϕ 1 ( x ) + β 2 ϕ 2 ( x ) + . . . y = \beta_0 + \beta_1 \phi_1(x) + \beta_2 \phi_2(x) + ... y=β0+β1ϕ1(x)+β2ϕ2(x)+...
- 基函数 ϕ ( x ) \phi(x) ϕ(x) :对原始特征 x x x进行非线性变换
- 关键 :虽然 ϕ ( x ) \phi(x) ϕ(x)对 x x x是非线性的,但 y y y对参数 β \beta β仍然是线性的
常见的基函数:
- 多项式基函数 : ϕ 1 ( x ) = x \phi_1(x) = x ϕ1(x)=x, ϕ 2 ( x ) = x 2 \phi_2(x) = x^2 ϕ2(x)=x2, ϕ 3 ( x ) = x 3 \phi_3(x) = x^3 ϕ3(x)=x3...
- 例子: y = β 0 + β 1 x + β 2 x 2 y = \beta_0 + \beta_1 x + \beta_2 x^2 y=β0+β1x+β2x2(可以拟合抛物线)
- 高斯基函数 : ϕ i ( x ) = exp ( − ( x − μ i ) 2 2 σ 2 ) \phi_i(x) = \exp(-\frac{(x-\mu_i)^2}{2\sigma^2}) ϕi(x)=exp(−2σ2(x−μi)2)(径向基函数)
- Sigmoid基函数 : ϕ i ( x ) = 1 1 + exp ( − x ) \phi_i(x) = \frac{1}{1+\exp(-x)} ϕi(x)=1+exp(−x)1
通俗理解 :
就像"换坐标系":
- 原始问题:数据是曲线(非线性),线性回归画不出
- 基函数变换:把数据"拉直"到新坐标系(非线性变换)
- 线性回归 :在新坐标系中画直线(对参数 β \beta β线性)
- 结果:在新坐标系中是直线,映射回原坐标系就是曲线
例子:
- 数据 : y = x 2 y = x^2 y=x2(抛物线,非线性)
- 基函数 : ϕ 1 ( x ) = x \phi_1(x) = x ϕ1(x)=x, ϕ 2 ( x ) = x 2 \phi_2(x) = x^2 ϕ2(x)=x2
- 模型 : y = β 0 + β 1 x + β 2 x 2 y = \beta_0 + \beta_1 x + \beta_2 x^2 y=β0+β1x+β2x2
- 结果 :可以完美拟合抛物线( β 2 = 1 \beta_2=1 β2=1,其他为0)
优点:
- 保持线性回归的简单性(对参数 β \beta β线性,容易求解)
- 能处理非线性关系(通过基函数变换)
- 计算效率高(仍然是线性模型)
总结:基函数 = 非线性变换 + 线性回归,既简单又能处理非线性。
67. ⭐⭐⭐ 答案:ABC
解析:线性回归的缺点包括:假设线性关系、对异常值敏感、多重共线性问题。不需要大量数据,计算复杂度也不高。
缺点详解:
-
假设线性关系:
- 问题 :假设因变量和自变量之间是线性关系( y = β 0 + β 1 x y = \beta_0 + \beta_1 x y=β0+β1x)
- 局限 :如果真实关系是非线性的(如 y = x 2 y = x^2 y=x2),线性回归拟合不好
- 例子:房价和面积可能是非线性关系(面积越大,单价可能下降),线性回归可能不准
- 解决:可以用基函数(多项式特征)处理非线性,但本质还是假设线性
-
对异常值敏感:
- 问题:异常值会严重影响模型,让回归线"被拉偏"
- 原因:最小二乘法对误差平方,异常值的误差平方很大,影响大
- 例子:100个样本,1个异常值(如房价=1000万,其他都是100-500万),可能让整个模型变差
- 解决:用稳健回归(如Huber损失)、删除异常值
-
多重共线性问题:
- 问题:特征之间高度相关(如"面积"和"房间数"相关),导致参数估计不稳定
- 影响:参数方差大,模型不稳定,难以解释(不知道哪个特征真正重要)
- 例子:用"面积"和"房间数"预测房价,两者相关,参数可能不稳定
- 解决:正则化(L1/L2)、特征选择、降维(PCA)
不是缺点:
- 不需要大量数据:小样本也能训练,不像深度学习需要大量数据
- 计算复杂度不高:训练和预测都很快,适合大规模数据
适用场景:
- 数据线性关系明显
- 数据质量好(无异常值、特征不相关)
- 需要快速训练和预测
- 需要可解释性(系数有含义)
改进方法:
- 非线性关系 → 基函数、多项式特征
- 异常值 → 稳健回归、异常值检测
- 多重共线性 → 正则化、特征选择、降维
判断题
68. ⭐ 答案:×
解析:线性回归虽然假设线性关系,但使用基函数可以对输入进行非线性变换,从而处理非线性关系。
69. ⭐⭐ 答案:√
解析:使用基函数可以让线性回归处理非线性关系。例如,可以用多项式基函数处理多项式关系。
70. ⭐⭐⭐ 答案:√
解析:L1正则化(Lasso)可以让某些参数精确为0,实现自动特征选择。这是Lasso的重要特性。
八、进化计算
单选题
71. ⭐ 答案:B
解析:遗传算法的基本思想来源于生物进化过程,模拟"物竞天择,适者生存",通过选择、交叉、变异等操作寻找最优解。
72. ⭐ 答案:D
解析:遗传算法的五个要素包括:编码方案、初始种群、适应度函数、遗传操作、参数设置。学习率是梯度下降法的参数,不是遗传算法的要素。
73. ⭐⭐ 答案:A
解析:遗传操作包括:选择(选择优秀个体)、交叉(组合父代基因产生子代)、变异(随机改变基因增加多样性)。
74. ⭐⭐ 答案:B
解析:交叉操作的作用是组合父代基因产生子代,将父代的优秀基因组合传递给下一代。
75. ⭐⭐⭐ 答案:D
解析:遗传算法与进化策略的主要区别包括:编码方式(位串编码vs实数串编码)、优化能力(全局最优vs局部最优)、适用问题(离散优化vs连续优化)。
多选题
76. ⭐⭐ 答案:ABCDE
解析:遗传算法的应用场景包括:函数优化、组合优化、机器学习参数调优、路径规划、图像处理等。
77. ⭐⭐⭐ 答案:ABCDE
解析:遗传算法的缺点包括:收敛速度慢、容易陷入局部最优、参数设置复杂、计算复杂度高、结果不稳定。
判断题
78. ⭐ 答案:×
解析:遗传算法不能保证找到全局最优解,只能找到近似最优解。这是启发式算法的特点。
79. ⭐⭐ 答案:√
解析:变异操作可以增加种群多样性,防止过早收敛到局部最优,帮助算法探索更大的解空间。
80. ⭐⭐⭐ 答案:×
解析:遗传算法适合处理离散优化问题。对于高维连续优化问题,进化策略(ES)更适合。
九、元学习
单选题
81. ⭐ 答案:B
解析:元学习的核心思想是组合多个学习器提高性能,"三个臭皮匠顶个诸葛亮"。不同学习器在不同方面有优势,组合可以互补。
82. ⭐ 答案:A
解析:Bagging和Boosting的主要区别是:Bagging并行训练(所有基学习器权重相同),Boosting顺序训练(每个学习器重点关注之前分错的样本)。
83. ⭐⭐ 答案:A
解析:随机森林是Bagging + 决策树 + 特征随机选择。对实例和属性都进行扰动,双重随机性增加差异性。
随机森林的组成:
- Bagging:并行训练多个基学习器,每个用不同的训练样本子集
- 决策树:每个基学习器都是决策树
- 特征随机选择:每个节点分裂时,随机选择部分特征(不是所有特征)
双重随机性:
-
实例随机(Bagging):
- 做法:每个树用不同的训练样本子集(有放回抽样)
- 效果:不同树看到不同的数据,增加差异性
- 例子:1000个样本,树1可能看到样本1-800,树2可能看到样本200-1000
-
属性随机(特征随机选择):
- 做法 :每个节点分裂时,从所有特征中随机选一部分(如 p \sqrt{p} p 个,p是总特征数)
- 效果:不同树用不同的特征,增加差异性
- 例子:100个特征,树1的根节点可能选特征1、5、10,树2可能选特征3、7、15
为什么需要双重随机性:
- 增加差异性:如果所有树都一样,组合起来没意义(会犯相同错误)
- 提高泛化能力:不同树从不同角度学习,组合起来更稳健
- 减少过拟合:随机性本身就是一种正则化
通俗理解 :
就像多个专家会诊:
- 实例随机:每个专家看不同的病例(样本不同)
- 特征随机:每个专家关注不同的检查指标(特征不同)
- 结果:专家们从不同角度分析,最后投票,结果更准确
与普通Bagging的区别:
- 普通Bagging:只对实例随机(样本不同)
- 随机森林:对实例和属性都随机(样本不同 + 特征不同)
- 效果:随机森林的树之间差异性更大,效果更好
优点:
- 减少过拟合(随机性提供正则化)
- 不需要剪枝(随机性已经足够)
- 能处理高维数据(特征随机选择)
- 训练速度快(可以并行训练)
84. ⭐⭐ 答案:B
解析:Stacking的核心思想是使用元学习器学习如何最好地组合基学习器的预测结果,不是简单投票而是学习组合方式。
Stacking的工作原理:
- 两层结构 :
- 第一层(基学习器层):训练多个不同的基学习器(如决策树、SVM、神经网络)
- 第二层(元学习器层):用基学习器的预测结果作为特征,训练一个元学习器学习如何组合
与简单投票的区别:
- 简单投票 :所有基学习器权重相同,直接平均或多数投票
- 例子:3个分类器预测[0.8, 0.2, 0.9],简单平均 = 0.63
- Stacking :元学习器学习最优权重,可能给不同分类器不同权重
- 例子:元学习器学到权重[0.5, 0.1, 0.4],加权平均 = 0.8×0.5 + 0.2×0.1 + 0.9×0.4 = 0.78
训练过程:
- 训练基学习器:用训练数据训练多个基学习器(如决策树、SVM、kNN)
- 生成元特征:用基学习器对验证集预测,得到预测结果作为元特征
- 训练元学习器:用元特征和真实标签训练元学习器(如逻辑回归)
- 预测:新数据先经过基学习器,再用元学习器组合预测结果
通俗理解 :
就像"专家委员会":
- 基学习器:多个专家(决策树专家、SVM专家、神经网络专家)
- 简单投票:所有专家一票,直接平均(可能某个专家不擅长某类问题)
- Stacking:有个"主席"(元学习器)学习每个专家的专长,给不同专家不同权重(决策树专家擅长A类问题,SVM专家擅长B类问题)
优点:
- 自适应组合:不是简单平均,而是学习最优组合方式
- 利用专长:不同基学习器在不同样本上表现不同,元学习器能利用这个差异
- 效果更好:通常比简单投票效果好
缺点:
- 计算复杂:需要训练两层模型
- 容易过拟合:如果基学习器过拟合,元学习器也会过拟合
- 需要交叉验证:避免基学习器和元学习器用相同数据
适用场景:需要高准确率、有足够数据和计算资源、基学习器差异性大的场景。
85. ⭐⭐⭐ 答案:B
解析:基学习器差异性越大,最终组合学习器的学习效果越好。如果都相同会犯相同错误,有差异性可以互补纠正错误。
多选题
86. ⭐⭐ 答案:ABCDE
解析:元学习方法包括:Bagging、Boosting、随机森林、Stacking、投票法等。这些都是组合多个学习器的方法。
元学习的核心思想:
- "三个臭皮匠顶个诸葛亮":组合多个学习器,利用它们的差异性,提高整体性能
- 基本思路:训练多个基学习器,然后组合它们的预测结果
各种元学习方法:
-
Bagging(Bootstrap Aggregating):
- 做法:并行训练多个基学习器,每个用不同的训练样本子集(有放回抽样)
- 组合方式:简单投票或平均
- 特点:减少方差,降低过拟合
- 例子:随机森林(Bagging + 决策树)
-
Boosting:
- 做法:顺序训练多个基学习器,每个重点关注之前分错的样本
- 组合方式:加权投票(错误率小的权重大)
- 特点:降低偏差,提高准确率
- 例子:AdaBoost、GBDT、XGBoost
-
随机森林:
- 做法:Bagging + 决策树 + 特征随机选择
- 组合方式:多数投票
- 特点:双重随机性(样本随机 + 特征随机),减少过拟合
- 例子:多个决策树组合
-
Stacking(堆叠):
- 做法:用元学习器学习如何组合基学习器的预测结果
- 组合方式:元学习器学习最优权重
- 特点:自适应组合,效果通常最好
- 例子:第一层多个基学习器,第二层元学习器(如逻辑回归)
-
投票法(Voting):
- 做法:多个学习器独立预测,然后投票
- 组合方式:硬投票(多数投票)或软投票(概率平均)
- 特点:最简单,但效果可能不如其他方法
- 例子:3个分类器,2个预测A类,1个预测B类,最终预测A类
分类:
- 并行方法:Bagging、随机森林、投票法(可以并行训练)
- 顺序方法:Boosting(必须顺序训练)
- 学习组合:Stacking(学习如何组合)
选择原则:
- 需要稳定、减少方差 → Bagging、随机森林
- 需要高准确率、降低偏差 → Boosting
- 需要最优组合、有足够数据 → Stacking
- 简单快速 → 投票法
87. ⭐⭐⭐ 答案:ABC
解析:Bagging的优点包括:减少方差、降低过拟合、可以并行训练。重点关注困难样本和降低偏差是Boosting的特点。
Bagging的优点:
-
减少方差:
- 原理:多个基学习器在不同样本上训练,预测结果有差异(方差大),但平均后方差变小
- 效果:模型更稳定,预测结果波动小
- 例子:单个决策树可能预测0.7或0.9(不稳定),Bagging平均后预测0.8(稳定)
-
降低过拟合:
- 原理:每个基学习器用不同的样本子集,不会过度拟合所有训练数据
- 效果:组合后的模型泛化能力更好
- 例子:单个决策树可能记住训练数据细节,Bagging组合后不会
-
可以并行训练:
- 原理:所有基学习器独立训练,不依赖彼此
- 效果:训练速度快,可以利用多核CPU
- 例子:100个树可以同时训练,而不是一个接一个
不是Bagging的特点(是Boosting的特点):
- 重点关注困难样本:Boosting会调整样本权重,让后续学习器重点关注之前分错的样本
- 降低偏差:Boosting通过顺序训练,逐步降低模型偏差(提高准确率)
Bagging vs Boosting对比:
- Bagging:减少方差、降低过拟合、并行训练
- Boosting:降低偏差、提高准确率、顺序训练、关注困难样本
通俗理解:
- Bagging:像"民主投票",多个专家独立判断,然后平均(稳定但可能不够准)
- Boosting:像"重点突破",先解决简单问题,再集中解决困难问题(准确但可能过拟合)
适用场景:
- 需要稳定预测、减少过拟合 → Bagging
- 需要高准确率、降低偏差 → Boosting
判断题
88. ⭐ 答案:×
解析:元学习不是使用多个相同的学习器,而是使用多个不同的学习器(有差异性),组合它们的预测结果。
89. ⭐⭐ 答案:×
解析:Boosting不能并行训练多个基学习器,因为每个学习器都依赖前一个学习器的结果,必须顺序训练。
90. ⭐⭐⭐ 答案:√
解析:随机森林不需要对决策树进行剪枝,因为随机性(实例采样和特征随机选择)已经提供了足够的正则化。
核心问题:
- 决策树容易过拟合:如果树太深,会把训练数据的细节都记住(包括噪声)
- 剪枝的作用:限制树的深度,防止过拟合(正则化)
- 随机森林的特殊性:通过随机性自然防止过拟合,不需要额外剪枝
随机森林的正则化机制:
-
实例采样(Bagging):
- 做法:每个树用不同的训练样本子集(有放回抽样)
- 效果:每个树不会看到所有数据,不会过度拟合全部训练数据
- 例子:1000个样本,每个树只看到约63%的样本,不会记住所有细节
-
特征随机选择:
- 做法 :每个节点分裂时,随机选择部分特征(如 p \sqrt{p} p 个)
- 效果:每个树用不同的特征,增加差异性,减少过拟合
- 例子:100个特征,每个节点只考虑10个,不会过度依赖某些特征
-
组合效应:
- 做法:多个树投票,平均预测结果
- 效果:即使单个树过拟合,组合后也会平滑掉过拟合的影响
- 例子:10个树,即使2个过拟合,其他8个会"纠正"
为什么不需要剪枝:
- 随机性 = 正则化:随机性本身就能防止过拟合,相当于自动正则化
- 组合平滑:多个树组合,即使单个树深一点,组合后也不会过拟合
- 剪枝反而可能有害:剪枝可能让树太简单,失去学习能力
对比:
- 单个决策树:需要剪枝防止过拟合(没有随机性)
- 随机森林:不需要剪枝(随机性已经足够)
通俗理解 :
就像学习:
- 单个决策树:把所有题目都背会(过拟合),需要限制学习范围(剪枝)
- 随机森林:每个学生只做部分题目(实例采样),每个题目只看部分知识点(特征随机),最后投票(组合),自然就不会过拟合
总结:随机森林的双重随机性(样本随机 + 特征随机)已经提供了足够的正则化,不需要额外剪枝。
十、PCA
单选题
91. ⭐ 答案:C
解析:PCA的主要作用是降维,将高维数据投影到低维空间,保留主要信息,去除噪声和冗余。
92. ⭐ 答案:B
解析:PCA的核心思想是最大化方差(寻找方差最大的投影方向)。方差大的方向包含更多信息,是主要变化方向。
93. ⭐⭐ 答案:B
解析:PCA降维后,主成分之间是正交的(不相关)。这是通过协方差矩阵对角化实现的。
94. ⭐⭐ 答案:A
解析:PCA的适用场景是数据维度高且存在相关性。如果数据维度低或没有相关性,降维意义不大。
95. ⭐⭐⭐ 答案:B
解析:PCA的局限性是假设数据是线性相关的。对于非线性关系,PCA效果不好,需要用核PCA或其他非线性降维方法。
PCA的核心假设:
- 线性相关性:PCA假设数据的主要变化方向是线性的(可以用直线或超平面表示)
- 工作原理:通过线性变换(旋转和投影)找到方差最大的方向
- 局限:如果数据的主要变化是非线性的(如曲线、流形),PCA效果不好
为什么非线性关系效果不好:
- 线性投影:PCA只能做线性投影,无法捕捉非线性结构
- 信息丢失:非线性数据的主要信息可能在曲线的"弯曲"处,线性投影会丢失
- 例子:数据是"瑞士卷"形状(非线性流形),PCA会把它"压扁"成平面,丢失结构信息
非线性数据的例子:
- 瑞士卷数据:三维数据卷成卷状,PCA无法展开
- 同心圆数据:数据分布在同心圆上,PCA会投影到一条线,丢失圆的形状
- 螺旋数据:数据呈螺旋状,PCA无法捕捉螺旋结构
解决方案:
-
核PCA(Kernel PCA):
- 思想:先用核函数把数据映射到高维空间(非线性变换),再在高维空间做PCA
- 效果:可以捕捉非线性关系
- 例子:把二维的圆映射到三维,再用PCA降维
-
其他非线性降维方法:
- t-SNE:保持局部结构,适合可视化
- LLE(局部线性嵌入):假设局部是线性的,全局非线性
- Isomap:保持测地距离(流形上的距离)
- UMAP:保持局部和全局结构
通俗理解:
- PCA:像用"直线"来总结数据(只能处理线性关系)
- 非线性数据:数据是"曲线"或"曲面"(非线性关系)
- 问题:用直线总结曲线,会丢失很多信息
- 解决:先用"弯曲的镜子"(核函数)把曲线拉直,再用PCA
选择原则:
- 数据线性相关 → PCA(简单有效)
- 数据非线性相关 → 核PCA或其他非线性方法
- 需要可视化 → t-SNE、UMAP
- 需要保持流形结构 → Isomap、LLE
总结:PCA适合线性数据,非线性数据需要用核PCA或其他非线性降维方法。
多选题
96. ⭐⭐ 答案:ABCDE
解析:PCA的步骤包括:零均值化(数据预处理)、计算协方差矩阵、特征值分解、选择主成分(按方差大小)、投影到低维空间。
PCA的完整步骤:
-
零均值化(数据预处理):
- 做法:每个特征减去该特征的均值,让数据中心在原点
- 公式 : x ′ = x − x ˉ x' = x - \bar{x} x′=x−xˉ( x ˉ \bar{x} xˉ是均值)
- 目的:方便计算协方差矩阵,消除均值的影响
- 例子:身高[170, 175, 180] → [170-175, 175-175, 180-175] = [-5, 0, 5]
-
计算协方差矩阵:
- 做法:计算所有特征对之间的协方差
- 公式 : C = 1 n X T X C = \frac{1}{n}X^T X C=n1XTX(X是零均值化后的数据)
- 目的:衡量特征之间的相关性,找到主要变化方向
- 例子:2个特征,协方差矩阵是2×2,对角线是方差,非对角线是协方差
-
特征值分解:
- 做法 :对协方差矩阵进行特征值分解, C = V Λ V T C = V\Lambda V^T C=VΛVT
- 结果 :得到特征值( λ \lambda λ)和特征向量( V V V)
- 意义:特征值 = 方差大小,特征向量 = 主成分方向
- 例子:特征值[10, 2, 0.5]表示3个主成分的方差
-
选择主成分(按方差大小):
- 做法:按特征值从大到小排序,选择前k个(保留多少方差)
- 标准:通常保留85%-95%的方差,或选择前k个主成分
- 例子:特征值[10, 2, 0.5],如果保留前2个,保留方差比例 = (10+2)/(10+2+0.5) = 96%
-
投影到低维空间:
- 做法:用选定的主成分(特征向量)对原始数据投影
- 公式 : Y = X V k Y = XV_k Y=XVk( V k V_k Vk是前k个特征向量)
- 结果:高维数据变成低维数据
- 例子:1000维数据 → 100维数据(保留主要信息)
通俗理解 :
就像"找主要方向":
- 零均值化:把数据移到原点(方便计算)
- 协方差矩阵:看数据在哪些方向变化最大
- 特征值分解:找到主要变化方向(主成分)
- 选择主成分:选最重要的几个方向(保留主要信息)
- 投影:把数据投影到这些方向上(降维)
完整流程:原始数据 → 零均值化 → 协方差矩阵 → 特征值分解 → 选择主成分 → 投影降维
97. ⭐⭐⭐ 答案:ABCD
解析:PCA的应用包括:数据可视化、特征提取、噪声去除、数据压缩。PCA不直接用于分类,但可以用于特征提取后再分类。
PCA的应用场景:
-
数据可视化:
- 做法:把高维数据降到2维或3维,画图展示
- 目的:人眼只能看2D/3D,高维数据需要降维才能可视化
- 例子:1000维的基因数据 → 2维散点图,看数据分布
- 优点:直观理解数据结构,发现模式
-
特征提取:
- 做法:用PCA提取主要特征,再用这些特征训练分类器
- 目的:减少特征数量,提高模型效率和准确率
- 例子:图像识别,10000个像素特征 → 100个主成分 → 训练SVM分类器
- 优点:去除冗余特征,保留主要信息
-
噪声去除:
- 做法:保留前k个主成分(主要信息),丢弃后面的(噪声)
- 目的:主成分包含主要信息,后面的成分主要是噪声
- 例子:图像去噪,保留前80%方差的主成分,去除20%的噪声
- 优点:提高数据质量,改善模型性能
-
数据压缩:
- 做法:用少量主成分表示原始数据,减少存储空间
- 目的:压缩数据,节省存储和传输成本
- 例子:1000维数据 → 100维数据,压缩90%的空间
- 优点:节省存储,加快传输速度
PCA不直接用于分类:
- 原因:PCA是无监督方法,不利用类别标签,只是降维
- 做法:先用PCA降维,再用分类器(如SVM、逻辑回归)分类
- 流程:原始数据 → PCA降维 → 分类器训练 → 预测
通俗理解:
- 可视化:把高维数据"拍扁"到2D,方便看
- 特征提取:从1000个特征中选最重要的100个
- 噪声去除:去掉"不重要的细节",保留"主要信息"
- 数据压缩:用更少的数据表示同样的信息
实际应用:
- 图像处理:图像压缩、去噪、特征提取
- 基因分析:基因数据可视化、降维
- 文本分析:文本特征降维、主题提取
- 人脸识别:人脸特征提取(Eigenfaces)
总结:PCA主要用于降维和特征提取,不直接分类,但可以为分类做准备。
判断题
98. ⭐ 答案:×
解析:PCA不能保留数据的所有信息,降维会丢失部分信息。PCA的目标是保留主要信息(方差大的方向),去除噪声和冗余。
99. ⭐⭐ 答案:√
解析:PCA降维后,主成分的方差是递减的。第一个主成分方差最大,第二个次之,以此类推。
100. ⭐⭐⭐ 答案:√
解析:PCA可以用于分类问题的特征提取。先降维提取主要特征,再用分类算法(如SVM、逻辑回归)进行分类。
十一、AdaBoost
单选题
101. ⭐ 答案:B
解析:AdaBoost的核心思想是组合多个弱分类器形成强分类器。通过权重调整将正确率50%-60%的弱分类器组合成正确率90%+的强分类器。
102. ⭐ 答案:A
解析 :AdaBoost中,分类器权重的计算公式是: α = 1 2 ln ( 1 − ε ε ) \alpha = \frac{1}{2}\ln(\frac{1-\varepsilon}{\varepsilon}) α=21ln(ε1−ε)。错误率 ε \varepsilon ε越小,权重 α \alpha α越大。
103. ⭐⭐ 答案:B
解析:AdaBoost的权重调整:错误分类的样本权重提高(多关注),正确分类的样本权重降低。让算法"多练习错题"。
104. ⭐⭐ 答案:B
解析:AdaBoost使用的弱分类器通常是单层决策树(决策桩),结构简单(一个特征一个阈值),计算快,不容易过拟合。
105. ⭐⭐⭐ 答案:D
解析:AdaBoost的缺点包括:对噪声敏感、计算复杂度高(需要多轮迭代)、无法并行化(每轮依赖前一轮结果)。
缺点详解:
-
对噪声敏感:
- 原因:AdaBoost会重点关注之前分错的样本,如果数据中有噪声(错误标签),会被反复关注
- 问题:噪声样本权重越来越大,模型会过度拟合噪声
- 例子:100个样本,5个噪声样本,AdaBoost会反复尝试分对这5个,导致过拟合
- 影响:模型在训练数据上表现好,但在新数据上表现差
-
计算复杂度高(需要多轮迭代):
- 原因:需要训练多个弱分类器,每轮都要重新计算样本权重和训练新分类器
- 问题:如果训练100个弱分类器,需要100轮迭代,计算量大
- 例子:1000个样本,100个弱分类器,每轮都要遍历所有样本,总计算量 = 1000×100 = 100000
- 影响:训练时间长,不适合实时应用
-
无法并行化(每轮依赖前一轮结果):
- 原因:每轮训练都要依赖前一轮的样本权重和错误率,必须顺序训练
- 问题:不能像Bagging那样并行训练多个分类器
- 例子:训练第2个分类器需要第1个的结果,训练第3个需要第2个的结果,无法同时训练
- 影响:训练速度慢,无法利用多核CPU加速
对比其他方法:
- Bagging:可以并行训练,训练速度快
- AdaBoost:必须顺序训练,训练速度慢
- 随机森林:可以并行训练,训练速度快
改进方法:
- 对噪声敏感:数据清洗、异常值检测、使用稳健的弱分类器
- 计算复杂度高:限制弱分类器数量、使用更简单的弱分类器
- 无法并行化:这是算法特性,无法改变(但可以用更快的弱分类器加速单轮训练)
适用场景:
- 数据质量好(无噪声)
- 有足够计算资源
- 需要高准确率
- 可以接受顺序训练
总结:AdaBoost效果好但训练慢,对噪声敏感,无法并行化是其固有特点。
多选题
106. ⭐⭐ 答案:ABCDE
解析:AdaBoost的算法流程包括:初始化样本权重、迭代训练弱分类器、计算分类器权重、更新样本权重、组合所有分类器。
107. ⭐⭐⭐ 答案:ABCD
解析:AdaBoost的适用场景包括:二分类问题、数据质量较好、计算资源充足、需要可解释性。噪声很大的数据不适合AdaBoost。
适用场景详解:
-
二分类问题:
- 原因:AdaBoost最初设计用于二分类,每个弱分类器判断"是A类"还是"不是A类"
- 做法:多分类问题需要特殊处理(如One-vs-Rest)
- 例子:垃圾邮件分类(是/否)、疾病诊断(有病/无病)
- 注意:虽然可以扩展到多分类,但二分类效果最好
-
数据质量较好:
- 原因:AdaBoost对噪声敏感,会过度关注错误样本
- 要求:数据标签准确,无异常值,噪声少
- 例子:医疗诊断数据(标签准确)、金融风控数据(数据质量高)
- 避免:用户生成内容(可能有噪声)、传感器数据(可能有异常值)
-
计算资源充足:
- 原因:需要多轮迭代训练,计算复杂度高,无法并行化
- 要求:有足够时间和计算资源
- 例子:离线训练、批处理任务
- 避免:实时预测、资源受限的场景
-
需要可解释性:
- 原因:AdaBoost基于弱分类器(如决策树),可以解释每个分类器的作用
- 优势:能说明为什么做出某个预测,哪些特征重要
- 例子:医疗诊断(需要解释)、金融风控(需要可解释性)
- 对比:神经网络是"黑箱",难以解释
不适合的场景:
- 噪声很大的数据 :
- 问题:AdaBoost会反复尝试分对噪声样本,导致过拟合
- 例子:用户评论数据(可能有错误标签)、传感器数据(可能有噪声)
- 替代:用Bagging、随机森林等对噪声更鲁棒的方法
其他不适合的场景:
- 多分类问题:虽然可以处理,但效果不如专门的多分类算法
- 实时应用:训练时间长,不适合实时预测
- 大规模数据:计算复杂度高,训练慢
选择原则:
- 二分类 + 数据质量好 + 需要可解释性 → AdaBoost
- 数据有噪声 → Bagging、随机森林
- 需要快速训练 → 简单模型(如逻辑回归)
- 多分类问题 → Softmax回归、多分类SVM
总结:AdaBoost适合二分类、数据质量好、需要可解释性的场景,不适合噪声大的数据。
判断题
108. ⭐ 答案:×
解析:AdaBoost不能并行训练多个弱分类器,因为每轮迭代都要依赖前一轮的结果(样本权重),必须顺序训练。
109. ⭐⭐ 答案:√
解析 :AdaBoost中,错误率越小的分类器权重越大。权重公式 α = 1 2 ln ( 1 − ε ε ) \alpha = \frac{1}{2}\ln(\frac{1-\varepsilon}{\varepsilon}) α=21ln(ε1−ε)中, ε \varepsilon ε越小, α \alpha α越大。
110. ⭐⭐⭐ 答案:×
解析:AdaBoost对噪声数据敏感。如果数据中有很多噪声,AdaBoost会过度关注这些噪声样本,导致过拟合。
十二、数据类型分类-统计描述
单选题
111. ⭐ 答案:A
解析:三种数据类型是:结构化数据(强约束,二维表)、半结构化数据(弱约束,XML/JSON)、非结构化数据(无约束,文本/图像)。
112. ⭐ 答案:A
解析:结构化数据的特点是强约束,数据严格组织在二维表中,每个字段含义确定清晰,易于处理,存储在关系型数据库中。
113. ⭐⭐ 答案:D
解析:中心趋势度量包括:均值、中位数、众数。方差是数据散布度量,不是中心趋势度量。
中心趋势度量的作用:
- 目的:用一个数值代表数据的"中心"或"典型值"
- 意义:描述数据集中在哪里,数据的平均水平
三种中心趋势度量:
-
均值(Mean):
- 定义 :所有数值的平均值, x ˉ = 1 n ∑ x i \bar{x} = \frac{1}{n}\sum x_i xˉ=n1∑xi
- 特点:考虑所有数据,对极端值敏感
- 例子:[1, 2, 3, 4, 5] → 均值 = 3
- 适用:数据分布对称、无异常值
- 缺点:有异常值时会被"拉偏"(如[1, 2, 3, 4, 100] → 均值 = 22)
-
中位数(Median):
- 定义:排序后中间的值(或中间两个值的平均)
- 特点:不受极端值影响,对异常值鲁棒
- 例子:[1, 2, 3, 4, 5] → 中位数 = 3;[1, 2, 3, 4, 100] → 中位数 = 3
- 适用:数据有异常值、分布倾斜
- 优点:比均值更稳健
-
众数(Mode):
- 定义:出现最频繁的值
- 特点:只考虑频率,不考虑数值大小
- 例子:[1, 2, 2, 3, 3, 3] → 众数 = 3
- 适用:分类数据、需要知道最常见的值
- 注意:可能有多个众数(多峰分布)
方差不是中心趋势度量:
- 方差(Variance) :衡量数据分散程度, σ 2 = 1 n ∑ ( x i − x ˉ ) 2 \sigma^2 = \frac{1}{n}\sum(x_i - \bar{x})^2 σ2=n1∑(xi−xˉ)2
- 作用:描述数据"散布"或"波动",不是"中心"
- 例子:方差大 = 数据分散,方差小 = 数据集中
- 分类:属于数据散布度量,不是中心趋势度量
通俗理解:
- 中心趋势:数据"在哪里"(均值、中位数、众数)
- 数据散布:数据"分散程度"(方差、标准差、极差)
选择原则:
- 数据对称、无异常值 → 均值
- 数据有异常值、倾斜 → 中位数
- 需要知道最常见的值 → 众数
- 需要知道分散程度 → 方差、标准差
总结:均值、中位数、众数是中心趋势度量(描述数据中心),方差是散布度量(描述数据分散程度)。
114. ⭐⭐ 答案:A
解析:数据散布度量包括:极差(最大值-最小值)、分位数(四分位数、IQR)、方差和标准差(衡量数据相对于均值的分散程度)。
115. ⭐⭐⭐ 答案:B
解析:三种数据类型的核心区别是模式(schema)对数据的约束程度不同。结构化数据强约束,半结构化数据弱约束,非结构化数据无约束。
多选题
116. ⭐⭐ 答案:ABCD
解析:中心趋势度量包括:均值(算术平均)、中位数(中间值)、众数(出现最频繁的值)、中位数(最大值和最小值的平均,很少使用)。
117. ⭐⭐⭐ 答案:ABCD
解析:数据散布度量包括:极差、分位数(四分位数、IQR)、五数概括(Min/Q1/Median/Q3/Max)、方差和标准差。均值是中心趋势度量。
判断题
118. ⭐ 答案:√
解析:半结构化数据用XML/JSON存储,有一定结构但语义不够确定,字段可以扩充,自描述(数据本身包含结构信息)。
119. ⭐⭐ 答案:√
解析:均值对极端值敏感,中位数对倾斜数据更好。当数据分布倾斜或有异常值时,中位数比均值更能代表数据的中心趋势。
120. ⭐⭐⭐ 答案:×
解析:非结构化数据难以提取和处理。数据杂乱无章没有固定结构,存储成普通文本文件或二进制文件,需要专门的方法提取信息。
十三、缺失值处理-属性选择转换
单选题
121. ⭐ 答案:D
解析:缺失值处理方法包括:忽略元组、人工填写、全局常量、均值/中位数、同类样本统计量、最可能值。删除所有数据不是合理的处理方法。
122. ⭐ 答案:C
解析:有类别信息时,优先使用同类样本统计量。例如,如果知道样本的类别,可以用同类样本的均值/中位数填充缺失值,更准确。
123. ⭐⭐ 答案:D
解析:属性选择方法包括:Filter方法(快速筛选,独立于算法)、Wrapper方法(优化组合,用算法评价)、Embedded方法(算法内置)。Random方法不是标准的属性选择方法。
124. ⭐⭐ 答案:A
解析:属性转换包括:降维(PCA、随机投影)、规范化(z-score、min-max)、特殊转换(文本TF-IDF、时间序列差值)。
125. ⭐⭐⭐ 答案:D
解析:属性选择方法的选择:大规模数据→Filter方法(快速);数据量适中且准确性要求高→Wrapper方法(优化组合);使用特定算法→Embedded方法(效率高)。
多选题
126. ⭐⭐ 答案:ABCDE
解析:缺失值处理方法包括:忽略元组(<5%且随机)、人工填写(数据量小)、全局常量(快速处理)、均值/中位数(分布均匀)、同类样本统计量(有类别信息)、最可能值(预测模型,最准确)。
缺失值处理方法详解:
-
忽略元组(<5%且随机):
- 做法:直接删除有缺失值的样本
- 条件:缺失值比例小(<5%)且随机分布(不是系统缺失)
- 优点:简单,不影响数据分布
- 缺点:丢失信息,如果缺失不是随机的会有偏差
- 例子:1000个样本,50个有缺失值(5%),且随机分布,可以删除
-
人工填写(数据量小):
- 做法:人工查看并填写缺失值
- 条件:数据量小,可以人工处理
- 优点:最准确,能利用领域知识
- 缺点:成本高,不适合大数据
- 例子:100个样本,5个缺失值,可以人工填写
-
全局常量(快速处理):
- 做法:用同一个值填充所有缺失值(如0、-1、"未知")
- 条件:需要快速处理,不关心准确性
- 优点:最快,简单
- 缺点:可能引入偏差,不准确
- 例子:缺失值全部填0或"未知"
-
均值/中位数(分布均匀):
- 做法:用该特征的均值或中位数填充
- 条件:数据分布均匀,无异常值
- 优点:保持数据分布,简单有效
- 缺点:减少方差,可能不准确
- 例子:年龄缺失,用平均年龄填充
-
同类样本统计量(有类别信息):
- 做法:用同类样本的均值/中位数填充
- 条件:有类别标签,同类样本相似
- 优点:比全局统计量更准确
- 缺点:需要类别信息
- 例子:男性年龄缺失,用男性平均年龄填充
-
最可能值(预测模型,最准确):
- 做法:用机器学习模型预测缺失值
- 条件:有足够数据训练预测模型
- 优点:最准确,考虑特征间关系
- 缺点:计算复杂,需要训练模型
- 例子:用其他特征(收入、教育)预测年龄缺失值
选择原则:
- 缺失少且随机 → 忽略元组
- 数据量小 → 人工填写
- 需要快速处理 → 全局常量
- 数据分布均匀 → 均值/中位数
- 有类别信息 → 同类样本统计量
- 需要高准确率 → 最可能值(预测模型)
总结:从简单到复杂,从快速到准确,根据数据特点选择合适的方法。
127. ⭐⭐⭐ 答案:AB
解析:属性选择的Filter方法特点包括:快速筛选、独立于算法。优化组合和用算法评价是Wrapper方法的特点,算法内置是Embedded方法的特点。
判断题
128. ⭐ 答案:√
解析:缺失值处理中,最可能值方法(预测模型)最准确。使用机器学习模型预测缺失值,但计算复杂度最高。
最可能值方法(预测模型):
-
工作原理:
- 训练模型:用其他特征(无缺失的特征)训练模型,预测缺失特征
- 预测缺失值:用训练好的模型预测缺失值
- 例子:年龄缺失,用收入、教育、职业等特征训练模型,预测年龄
-
为什么最准确:
- 利用特征关系:考虑特征之间的相关性,不只是简单统计
- 个性化预测:根据每个样本的其他特征,给出个性化的预测值
- 例子:高收入、高学历的人,预测年龄可能更准确(考虑相关性)
-
与其他方法对比:
- 全局常量:所有缺失值填同一个值(不准确)
- 均值/中位数:用平均值填充(不考虑个体差异)
- 预测模型:根据其他特征预测(最准确)
计算复杂度最高:
- 需要训练模型:先要用完整数据训练预测模型
- 需要预测:对每个缺失值都要预测
- 例子:1000个样本,100个缺失值,需要训练模型 + 预测100次
- 对比:均值填充只需要计算一次均值,预测模型需要训练+预测
适用场景:
- 数据量大:有足够数据训练模型
- 特征相关:特征之间有较强相关性
- 需要高准确率:对准确性要求高
- 有计算资源:可以接受较高的计算成本
权衡:
- 准确率:预测模型 > 同类统计量 > 均值/中位数 > 全局常量
- 计算复杂度:预测模型 > 同类统计量 > 均值/中位数 > 全局常量
- 选择:根据准确率要求和计算资源选择
通俗理解:
- 简单方法:像"猜平均",所有人缺失都填平均值(快但不准)
- 预测模型:像"个性化推荐",根据每个人的其他信息预测(慢但准)
总结:预测模型最准确但计算复杂,需要在准确率和效率之间权衡。
129. ⭐⭐ 答案:×
解析:Wrapper方法比Filter方法计算更慢。Wrapper方法需要用算法评价每个特征子集,计算量大;Filter方法独立于算法,计算快。
130. ⭐⭐⭐ 答案:√
解析:规范化可以消除不同属性量纲的影响。例如,z-score规范化将数据转换为均值为0、标准差为1的分布,消除量纲差异。
十四、离散化-数据清理
单选题
131. ⭐ 答案:A
解析:数值属性离散化的作用是将连续值转换为离散类别,适应算法需求(如决策树需要离散值)、提高速度、避免分布假设、提高可解释性。
132. ⭐ 答案:D
解析:无监督离散方法包括:等值区间、等频区间、聚类、概念分层。基于熵的离散是有监督离散方法,需要考虑类别信息。
133. ⭐⭐ 答案:D
解析:有监督离散方法包括:基于熵的离散(考虑类别信息,最通用,对类变化敏感)、基于误差的离散(不敏感类变化)。
有监督离散 vs 无监督离散:
- 有监督离散:利用类别标签信息,让离散化后的特征对分类更有用
- 无监督离散:不考虑类别信息,只根据数据分布离散化
两种有监督离散方法:
-
基于熵的离散:
- 原理:选择划分点,使得划分后各子集的熵最小(数据最纯净)
- 考虑类别信息:熵衡量类别纯度,熵小 = 同一子集内类别一致
- 特点:最通用,效果好,对类别变化敏感
- 例子:年龄[20, 30, 40, 50],类别[学生, 学生, 工作, 工作],在30处划分(熵最小)
- 优点:离散化后的特征对分类最有用
- 缺点:如果类别标签变化,离散化结果也会变化(敏感)
-
基于误差的离散:
- 原理:选择划分点,使得分类误差最小
- 考虑类别信息:直接优化分类准确性
- 特点:不敏感类别变化,更稳健
- 例子:年龄[20, 30, 40, 50],类别[学生, 学生, 工作, 工作],选择使分类错误最少的划分点
- 优点:对类别变化不敏感,更稳健
- 缺点:可能不如基于熵的方法通用
"对类变化敏感"的含义:
- 基于熵:如果类别标签改变,离散化结果会改变(敏感)
- 基于误差:即使类别标签有变化,离散化结果相对稳定(不敏感)
通俗理解:
- 基于熵:像"找最纯的分组",让每个组内类别一致(效果好但敏感)
- 基于误差:像"找最准的分组",让分类错误最少(稳健但不敏感)
选择原则:
- 类别稳定、需要高准确率 → 基于熵的离散
- 类别可能变化、需要稳健 → 基于误差的离散
- 无类别信息 → 无监督离散(等值区间、等频区间)
总结:有监督离散利用类别信息,基于熵的方法最通用但敏感,基于误差的方法更稳健。
134. ⭐⭐ 答案:D
解析:自动数据清理方法包括:改进决策树(自动识别错分样本)、稳健回归(抵抗离群点干扰)、离群点检测(统计方法或可视化)。删除所有数据不是合理方法。
自动数据清理的作用:
- 目的:自动识别和处理数据中的错误、异常值、噪声
- 优势:比人工清理效率高,适合大规模数据
三种自动数据清理方法:
-
改进决策树(自动识别错分样本):
- 原理:训练决策树,找出被错分的样本(预测错误),这些可能是数据错误
- 做法:用决策树预测,找出预测错误的样本,标记为可疑数据
- 优点:自动识别,不需要人工标注
- 例子:1000个样本,决策树预测,发现50个预测错误,这些可能是标签错误
- 应用:识别错误标签、异常样本
-
稳健回归(抵抗离群点干扰):
- 原理:使用对异常值不敏感的损失函数(如Huber损失),而不是最小二乘
- 做法:异常值对模型影响小,模型不会被"拉偏"
- 优点:自动处理异常值,不需要删除数据
- 例子:100个样本,1个异常值(如房价=1000万),稳健回归不受影响
- 应用:处理离群点、异常值
-
离群点检测(统计方法或可视化):
- 统计方法 :用统计指标(如Z-score、IQR)识别离群点
- Z-score:|z| > 3 的样本可能是离群点
- IQR:超出Q1-1.5×IQR或Q3+1.5×IQR的样本
- 可视化方法:画散点图、箱线图,直观看出离群点
- 优点:简单直观,容易理解
- 例子:箱线图显示有几个点超出"须"的范围,这些是离群点
- 应用:识别异常值、数据错误
- 统计方法 :用统计指标(如Z-score、IQR)识别离群点
删除所有数据不是合理方法:
- 问题:删除所有数据就没有数据了,无法分析
- 正确做法:只删除或处理有问题的数据(错误、异常值),保留正常数据
- 例子:1000个样本,10个异常值,应该删除或处理这10个,保留990个
通俗理解:
- 改进决策树:像"自动纠错",找出预测错误的样本(可能是数据错误)
- 稳健回归:像"抗干扰",异常值不影响模型(自动处理)
- 离群点检测:像"找异常",用统计或可视化找出离群点
选择原则:
- 需要识别错误标签 → 改进决策树
- 需要抵抗异常值 → 稳健回归
- 需要找出离群点 → 离群点检测
- 需要快速处理 → 统计方法
- 需要直观理解 → 可视化方法
总结:自动数据清理方法能自动识别和处理数据问题,删除所有数据不是合理方法。
135. ⭐⭐⭐ 答案:B
解析:离散化策略:全局离散优于局部离散;有类别信息→有监督离散(基于熵);无类别信息→无监督离散(等频区间或聚类)。
多选题
136. ⭐⭐ 答案:ABCD
解析:无监督离散方法包括:等值区间(简单但分布不均)、等频区间(分布均匀但区间长度差异大)、聚类(质量高)、概念分层(多分辨率)。
无监督离散的特点:
- 不考虑类别信息:只根据数据本身的分布进行离散化
- 适用场景:没有类别标签,或不需要考虑类别信息
四种无监督离散方法:
-
等值区间(Equal Width):
- 做法:把数据范围分成k个等长的区间
- 公式:区间长度 = (最大值 - 最小值) / k
- 优点:简单直观,计算快
- 缺点:分布不均,可能某些区间样本很多,某些很少
- 例子:年龄[0, 100],分成5个区间[0-20, 20-40, 40-60, 60-80, 80-100],但可能20-40岁的人很多,80-100岁的人很少
-
等频区间(Equal Frequency):
- 做法:让每个区间包含相同数量的样本
- 优点:分布均匀,每个区间样本数相同
- 缺点:区间长度差异大,可能某些区间很窄,某些很宽
- 例子:1000个样本,分成5个区间,每个200个样本,但可能[20-25]岁有200个(窄),[25-80]岁有200个(宽)
-
聚类(Clustering):
- 做法:用聚类算法(如K-means)把数据分成k个簇,每个簇作为一个离散值
- 优点:质量高,能发现数据的内在结构
- 缺点:计算复杂,需要选择聚类算法和参数
- 例子:用K-means把年龄分成3个簇:[0-30, 30-60, 60-100],每个簇内相似
-
概念分层(Concept Hierarchy):
- 做法:建立多层次的离散化,从粗到细(如:年龄 → 年龄段 → 具体年龄)
- 优点:多分辨率,可以从不同粒度看数据
- 缺点:需要领域知识,构建复杂
- 例子:年龄 → [青年, 中年, 老年] → [20-30, 30-40, 40-50, ...]
对比总结:
- 简单性:等值区间 > 等频区间 > 聚类 > 概念分层
- 质量:概念分层 ≈ 聚类 > 等频区间 > 等值区间
- 分布均匀性:等频区间 > 聚类 > 等值区间 > 概念分层
选择原则:
- 需要简单快速 → 等值区间
- 需要分布均匀 → 等频区间
- 需要高质量 → 聚类
- 需要多粒度 → 概念分层
- 有类别信息 → 有监督离散(基于熵)
通俗理解:
- 等值区间:像"平均分",每个区间长度相同(简单但不均匀)
- 等频区间:像"平均分人",每个区间人数相同(均匀但长度不同)
- 聚类:像"找相似",把相似的数据分在一起(质量高)
- 概念分层:像"多级分类",从粗到细(多分辨率)
总结:无监督离散方法各有优缺点,根据需求选择:简单→等值区间,均匀→等频区间,质量→聚类,多粒度→概念分层。
137. ⭐⭐⭐ 答案:ABC
解析:自动数据清理方法包括:改进决策树(自动识别错分样本)、稳健回归(LMedS方法最鲁棒)、离群点检测(统计方法或可视化)。
判断题
138. ⭐ 答案:√
解析:离散化可以提高算法的速度(减少计算复杂度)和可解释性(离散值更容易理解),同时避免分布假设。
139. ⭐⭐ 答案:√
解析:有类别信息时,有监督离散(基于熵)优于无监督离散。因为考虑了类别信息,离散化后的特征对分类更有用。
140. ⭐⭐⭐ 答案:√
解析:稳健回归(如LMedS方法)可以抵抗离群点的干扰,对异常值不敏感,比普通最小二乘回归更鲁棒。
十五、聚类基本概念-K-means
单选题
141. ⭐ 答案:B
解析:聚类分析是无监督学习方法,不考虑数据类标号,通过聚类产生新类标号(自动分类),将相似对象分组。
142. ⭐ 答案:A
解析:聚类的核心原则是最大化簇内相似性、最小化簇间相似性。簇内的对象应该相似,不同簇之间应该差异大。
143. ⭐⭐ 答案:C
解析:K-means算法的第一步是随机选择k个对象作为初始簇中心。然后才进行分配和更新步骤。
144. ⭐⭐ 答案:D
解析:K值选择方法包括:肘部法则(WCSS下降速度变慢的点)、轮廓系数(选择系数最大的K值)、业务需求。随机选择不是合理方法。
K值选择的重要性:
- 问题:K-means需要预先指定簇数k,但k的选择影响聚类效果
- 挑战:k太小可能欠拟合(簇太大),k太大可能过拟合(簇太小)
三种K值选择方法:
-
肘部法则(Elbow Method):
- 原理:计算不同k值下的WCSS(簇内平方和),找WCSS下降速度变慢的"拐点"
- 做法:画k-WCSS曲线,找"肘部"(像手臂弯曲的地方)
- WCSS:所有样本到其簇中心的距离平方和,k越大WCSS越小
- 优点:直观,容易理解
- 缺点:有时"肘部"不明显,主观判断
- 例子:k=1时WCSS=1000,k=2时WCSS=500,k=3时WCSS=200,k=4时WCSS=180,k=5时WCSS=175,肘部在k=3(下降变慢)
-
轮廓系数(Silhouette Coefficient):
- 原理:衡量样本与其簇的相似度,以及与其他簇的差异度
- 公式 : s = b − a max ( a , b ) s = \frac{b-a}{\max(a,b)} s=max(a,b)b−a,a=到同簇其他点的平均距离,b=到最近其他簇的平均距离
- 做法:计算不同k值下的平均轮廓系数,选择系数最大的k
- 优点:客观,有明确的评价标准
- 缺点:计算复杂,需要计算所有样本的轮廓系数
- 例子:k=2时轮廓系数=0.5,k=3时=0.7,k=4时=0.6,选择k=3
-
业务需求:
- 原理:根据实际业务需求确定k值
- 做法:业务需要分成几类,就选几类
- 优点:符合实际需求,有业务意义
- 缺点:可能不是最优的k值
- 例子:客户分群,业务需要分成"高价值、中价值、低价值"3类,就选k=3
随机选择不是合理方法:
- 问题:随机选择k值,无法保证聚类效果
- 结果:可能k太小(欠拟合)或k太大(过拟合)
- 正确做法:用上述方法选择合理的k值
选择原则:
- 需要直观判断 → 肘部法则
- 需要客观评价 → 轮廓系数
- 有明确业务需求 → 业务需求
- 综合使用 → 结合多种方法
通俗理解:
- 肘部法则:像"找拐点",WCSS下降变慢的地方就是合适的k
- 轮廓系数:像"打分",给每个k值打分,选分数最高的
- 业务需求:像"按需分配",业务需要几类就选几类
总结:K值选择有方法可循,肘部法则直观,轮廓系数客观,业务需求实用,随机选择不合理。
145. ⭐⭐⭐ 答案:C
解析 :K-means算法的复杂度是 O ( n k t ) O(nkt) O(nkt),其中n是对象数,k是簇数,t是迭代次数。空间复杂度是 O ( n + k ) O(n+k) O(n+k)。
多选题
146. ⭐⭐ 答案:ABC
解析:K-means的优点包括:算法简单、计算效率高、结果直观(每个簇用质心表示)。需要预先指定K值和只能发现球状簇是缺点。
147. ⭐⭐⭐ 答案:ABCDE
解析:K-means的缺点包括:需要预先指定簇数k、只能发现球状簇、对离群点敏感、初始中心选择影响结果、容易陷入局部最优。
缺点详解:
-
需要预先指定簇数k:
- 问题:不知道数据中有几个簇,需要事先确定k值
- 影响:k选择不当,聚类效果差(k太小欠拟合,k太大过拟合)
- 解决:用肘部法则、轮廓系数等方法选择k
- 例子:数据有3个簇,但选了k=5,会过度分割
-
只能发现球状簇:
- 问题:K-means假设簇是球状的(用欧氏距离和均值),无法发现任意形状的簇
- 原因:用均值作为簇中心,假设簇是球状分布
- 影响:对于月牙形、环形等非球状簇,效果差
- 解决:用DBSCAN、谱聚类等能发现任意形状簇的方法
- 例子:数据是月牙形分布,K-means会分成两个球,无法捕捉月牙形状
-
对离群点敏感:
- 问题:离群点会影响簇中心的位置,让簇中心"被拉偏"
- 原因:用均值计算簇中心,均值对异常值敏感
- 影响:离群点会让簇中心偏移,影响聚类结果
- 解决:先检测并删除离群点,或用K-medoids(用中位数)
- 例子:100个样本,1个离群值,会让簇中心偏移,影响其他样本的分配
-
初始中心选择影响结果:
- 问题:不同的初始中心,可能得到不同的聚类结果
- 原因:K-means是迭代优化,从初始中心开始,可能陷入不同的局部最优
- 影响:结果不稳定,每次运行可能不同
- 解决:多次运行选最好的结果,或用K-means++初始化
- 例子:运行10次,可能得到10种不同的结果
-
容易陷入局部最优:
- 问题:K-means是贪心算法,可能找到局部最优而不是全局最优
- 原因:从初始中心开始,逐步优化,可能停在局部最优
- 影响:聚类效果可能不是最好的
- 解决:多次运行,选择WCSS最小的结果
- 例子:可能找到WCSS=100的局部最优,但全局最优是WCSS=80
改进方法:
- K值选择:肘部法则、轮廓系数、业务需求
- 非球状簇:DBSCAN、谱聚类、层次聚类
- 离群点:K-medoids、离群点检测
- 初始中心:K-means++、多次运行
- 局部最优:多次运行、模拟退火、遗传算法
适用场景:
- 数据是球状分布
- 簇数已知或可估计
- 数据无离群点
- 需要快速聚类
总结:K-means简单高效,但有局限性:需要指定k、只能发现球状簇、对离群点敏感、结果受初始值影响、可能陷入局部最优。
判断题
148. ⭐ 答案:×
解析:聚类不需要类标号数据,这是无监督学习的特点。聚类可以自动发现数据中的模式,不需要人工标注。
149. ⭐⭐ 答案:×
解析:K-means计算距离前必须数据标准化。不同属性的量纲不同,如果不标准化,量纲大的属性会主导距离计算,影响聚类结果。
150. ⭐⭐⭐ 答案:√
解析:K-means只能发现球状簇,不能发现任意形状的簇。因为K-means使用欧氏距离和均值,假设簇是球状的。需要任意形状簇时用DBSCAN。
十六、层次聚类-DBSCAN-离群点检测
单选题
151. ⭐ 答案:B
解析:层次聚类的主要特点是不需要预先指定簇数,通过自底向上合并或自顶向下分裂形成层次结构。
152. ⭐ 答案:B
解析:DBSCAN的主要特点是基于密度,可以发现任意形状的簇,对噪声鲁棒,不需要预先指定簇数。
153. ⭐⭐ 答案:B
解析 :DBSCAN需要设置的参数是 ϵ \epsilon ϵ(邻域半径)和MinPts(最小点数)。这两个参数决定了密度阈值。
154. ⭐⭐ 答案:D
解析:离群点检测方法包括:统计方法(有分布假设)、距离方法(简单但计算复杂度高)、密度方法(可以发现局部离群点)。聚类方法不是离群点检测方法。
155. ⭐⭐⭐ 答案:B
解析:DBSCAN对噪声鲁棒,可以自动识别噪声点(密度低的点)。这是DBSCAN相比K-means的优势。
多选题
156. ⭐⭐ 答案:AB
解析:层次聚类方法包括:凝聚层次聚类(自底向上合并)、分裂层次聚类(自顶向下分裂)。K-means和DBSCAN不是层次聚类方法。
157. ⭐⭐⭐ 答案:ABCD
解析:离群点检测方法包括:统计方法(有分布假设)、距离方法(简单但计算复杂度高)、密度方法(可以发现局部离群点)、偏差方法(需要定义行为模式)。
判断题
158. ⭐ 答案:×
解析 :层次聚类不适合大规模数据。计算复杂度高( O ( n 2 ) O(n^2) O(n2)或更高),需要计算所有对象之间的距离,不适合大规模数据。
159. ⭐⭐ 答案:√
解析:DBSCAN可以发现任意形状的簇。基于密度的方法不假设簇的形状,可以发现任意形状的簇,这是DBSCAN的核心优势。
160. ⭐⭐⭐ 答案:×
解析:离群点不同于噪声。离群点是有趣的异常模式,可能包含重要信息,不应该简单删除。需要专门的检测方法识别和分析。
十七、支持度与置信度-Apriori算法-FP-Growth算法-购物篮分析
单选题
161. ⭐ 答案:A
解析 :支持度的定义是: Support ( X ) = ∣ { d ∈ D ∣ X ⊆ d } ∣ ∣ D ∣ \text{Support}(X) = \frac{|\{d \in D | X \subseteq d\}|}{|D|} Support(X)=∣D∣∣{d∈D∣X⊆d}∣,即包含项集X的事务个数与总事务个数之比。
162. ⭐ 答案:A
解析 :置信度的定义是: Confidence ( X → Y ) = Support ( X ∪ Y ) Support ( X ) \text{Confidence}(X \rightarrow Y) = \frac{\text{Support}(X \cup Y)}{\text{Support}(X)} Confidence(X→Y)=Support(X)Support(X∪Y),即既包含X也包含Y的事务个数与包含X的事务个数之比。
163. ⭐⭐ 答案:A
解析:Apriori算法的核心原理是先验原理:频繁项集的子集一定是频繁的,非频繁项集的超集一定是非频繁的。利用这个原理可以减少候选项集。
先验原理(Apriori Principle):
- 频繁项集的定义:支持度 ≥ 最小支持度阈值的项集
- 子集和超集 :
- 子集:项集的一部分(如{面包, 牛奶}是{面包, 牛奶, 鸡蛋}的子集)
- 超集:包含该项集的更大项集(如{面包, 牛奶, 鸡蛋}是{面包, 牛奶}的超集)
先验原理的两个方面:
-
频繁项集的子集一定是频繁的:
- 原理:如果{面包, 牛奶, 鸡蛋}是频繁的,那么{面包, 牛奶}、{面包, 鸡蛋}、{牛奶, 鸡蛋}也一定是频繁的
- 原因:子集的支持度 ≥ 超集的支持度(包含超集的事务一定包含子集)
- 用途:用于剪枝,如果子集不频繁,超集一定不频繁,可以剪掉
-
非频繁项集的超集一定是非频繁的:
- 原理:如果{面包, 牛奶}不频繁,那么{面包, 牛奶, 鸡蛋}、{面包, 牛奶, 奶酪}等超集也一定不频繁
- 原因:超集的支持度 ≤ 子集的支持度(包含超集的事务更少)
- 用途:用于减少候选项集,如果项集不频繁,不需要检查它的超集
如何减少候选项集:
- 逐层生成:从1项集开始,逐层生成k项集
- 剪枝策略 :
- 生成k项集前,先检查它的所有(k-1)项子集是否频繁
- 如果某个子集不频繁,这个k项集一定不频繁,可以剪掉
- 不需要检查所有可能的k项集,大大减少计算量
例子:
- 1项集:{面包}、{牛奶}、{鸡蛋}(假设都频繁)
- 2项集候选:{面包, 牛奶}、{面包, 鸡蛋}、{牛奶, 鸡蛋}
- 假设:{面包, 鸡蛋}不频繁
- 3项集候选:只需要检查{面包, 牛奶, 鸡蛋}(因为{面包, 鸡蛋}不频繁,其他包含它的3项集都不需要检查)
通俗理解:
- 频繁项集:像"热门组合",如果"面包+牛奶+鸡蛋"热门,那么"面包+牛奶"也一定热门
- 非频繁项集:像"冷门组合",如果"面包+牛奶"不热门,那么"面包+牛奶+鸡蛋"也一定不热门
- 剪枝:像"排除法",不需要检查所有组合,只检查可能频繁的
效率提升:
- 不用先验原理:需要检查所有可能的项集(组合爆炸,2^n个)
- 用先验原理:只检查可能频繁的项集(大大减少)
- 例子:10个商品,不用先验原理需要检查2^10=1024个项集,用先验原理可能只需要检查100个
总结:先验原理是Apriori算法的核心,通过剪枝大大减少候选项集,提高算法效率。
164. ⭐⭐ 答案:A
解析:Apriori算法和FP-Growth算法的主要区别是:Apriori需要多次扫描数据库(每层一次),FP-Growth只需要扫描一次(构建FP树)。
165. ⭐⭐⭐ 答案:C
解析:先验原理包括两个方面:频繁项集的子集一定是频繁的(用于剪枝),非频繁项集的超集一定是非频繁的(用于减少候选)。两者都正确。
多选题
166. ⭐⭐ 答案:ABCD
解析:Apriori算法的步骤包括:扫描数据库生成频繁1项集、逐层生成频繁k项集、候选项集生成和剪枝、生成强关联规则。Apriori需要多次扫描数据库,不是只扫描一次。
Apriori算法的完整步骤:
-
扫描数据库生成频繁1项集:
- 做法:第一次扫描数据库,统计每个1项集(单个商品)的支持度
- 结果:得到所有频繁1项集(支持度 ≥ 最小支持度)
- 例子:扫描1000个事务,统计{面包}出现800次,{牛奶}出现600次,如果最小支持度=50%,两者都频繁
-
逐层生成频繁k项集:
- 做法:从k=2开始,逐层生成频繁k项集,直到没有频繁项集
- 过程:频繁2项集 → 频繁3项集 → 频繁4项集 → ...
- 停止条件:某一层没有频繁项集,算法停止
- 例子:先找频繁2项集{面包, 牛奶},再找频繁3项集{面包, 牛奶, 鸡蛋}
-
候选项集生成和剪枝:
- 生成:用频繁(k-1)项集生成k项集候选(连接操作)
- 剪枝:用先验原理剪枝,如果某个(k-1)项子集不频繁,剪掉该k项集
- 扫描:扫描数据库,计算候选项集的支持度
- 筛选:保留支持度 ≥ 最小支持度的项集
- 例子:用{面包, 牛奶}和{面包, 鸡蛋}生成{面包, 牛奶, 鸡蛋},检查子集是否频繁
-
生成强关联规则:
- 做法:从频繁项集中生成关联规则,计算置信度
- 筛选:保留置信度 ≥ 最小置信度的规则
- 例子:从频繁项集{面包, 牛奶}生成规则"面包 → 牛奶",计算置信度
多次扫描数据库:
- 原因:每层都需要扫描数据库计算候选项集的支持度
- 次数:最多扫描k次(k是最大频繁项集的长度)
- 例子:最大频繁项集是4项集,需要扫描4次数据库
- 对比:FP-Growth算法只需要扫描2次(构建FP树 + 挖掘)
算法流程示例:
- 第1次扫描:统计1项集支持度 → 频繁1项集
- 第2次扫描:用频繁1项集生成2项集候选 → 计算支持度 → 频繁2项集
- 第3次扫描:用频繁2项集生成3项集候选 → 计算支持度 → 频繁3项集
- ...:重复直到没有频繁项集
- 最后:从所有频繁项集生成强关联规则
通俗理解:
- 逐层生成:像"搭积木",从1个积木开始,一层层往上搭
- 剪枝:像"排除法",不需要的积木组合直接排除
- 多次扫描:像"反复检查",每层都要重新检查数据库
效率问题:
- 多次扫描:Apriori的主要瓶颈,数据库大时很慢
- 改进:FP-Growth算法只需要扫描2次,效率更高
总结:Apriori算法逐层生成频繁项集,每层都需要扫描数据库,最后生成强关联规则。
167. ⭐⭐⭐ 答案:ABCD
解析:关联规则挖掘的应用包括:购物篮分析、商品推荐、搭配销售、市场分析。分类问题不是关联规则的应用。
关联规则挖掘的特点:
- 发现关联性:找出"如果A,那么B"的关联关系
- 无监督学习:不需要类别标签,发现数据中的模式
- 应用场景:需要发现事物之间关联关系的场景
四种应用场景:
-
购物篮分析(Market Basket Analysis):
- 做法:分析顾客购物篮中商品之间的关联关系
- 目的:了解哪些商品经常一起购买
- 例子:发现"买面包的人,80%也会买牛奶"(面包 → 牛奶)
- 应用:超市布局优化、商品摆放策略
-
商品推荐(Product Recommendation):
- 做法:根据用户已购买的商品,推荐关联商品
- 目的:提高销售额,改善用户体验
- 例子:用户买了手机,推荐手机壳、充电器等关联商品
- 应用:电商推荐系统、交叉销售
-
搭配销售(Cross-selling):
- 做法:找出可以搭配销售的商品组合
- 目的:提高客单价,增加收入
- 例子:发现"买电脑的人,60%会买鼠标和键盘",可以打包销售
- 应用:促销活动设计、套餐组合
-
市场分析(Market Analysis):
- 做法:分析市场数据,发现商品、客户、地区之间的关联
- 目的:了解市场规律,制定营销策略
- 例子:发现"年轻女性客户,70%喜欢购买化妆品和服装"
- 应用:客户分群、营销策略制定
分类问题不是关联规则的应用:
- 原因:关联规则挖掘发现的是"关联性"(相关性),不是"分类"(预测类别)
- 区别 :
- 关联规则:发现"如果A,那么B"的关联(如:买面包 → 买牛奶)
- 分类:预测样本属于哪个类别(如:根据特征预测是/否买商品)
- 分类方法:决策树、SVM、逻辑回归等监督学习方法
关联规则 vs 分类:
- 关联规则:无监督,发现关联关系,应用:推荐、分析
- 分类:有监督,预测类别,应用:预测、判断
其他应用:
- 网站导航:分析用户浏览路径,优化网站结构
- 医疗诊断:分析症状和疾病的关联
- 网络安全:分析异常行为模式
通俗理解:
- 关联规则:像"找规律",发现"经常一起出现"的事物
- 分类:像"做判断",预测"是什么"或"属于哪类"
总结:关联规则挖掘用于发现关联关系(购物篮分析、推荐、搭配销售、市场分析),不用于分类问题。
判断题
168. ⭐ 答案:√
解析:支持度衡量规则是否常见(出现频率),置信度衡量规则是否可信(可靠性)。两者结合才能发现真正有价值的关联规则。
169. ⭐⭐ 答案:×
解析:Apriori算法不适合频繁项集长度较长的场景。频繁项集长度较长时,Apriori的计算复杂度很高,应该用FP-Growth算法。
Apriori算法的问题:
- 多次扫描数据库:每层都需要扫描数据库,最多扫描k次(k是最大频繁项集长度),频繁项集长度较长时I/O开销巨大
- 候选项集爆炸:候选项集数量随k呈指数级增长,内存和计算开销巨大
- 计算复杂度高:时间复杂度O(2^m × n),随项集长度增长急剧增加
FP-Growth算法的优势:
- 避免候选项集生成:通过构建FP树压缩数据库,直接产生频繁项集,避免候选项集爆炸
- 减少数据库扫描:只需要扫描2次(固定),无论频繁项集长度多长
- 计算复杂度更低:时间复杂度O(n × m),与频繁项集长度无关
通俗理解:
- Apriori:像"搭积木",一层层往上搭,每层都要重新检查,层数越多越慢
- FP-Growth:像"压缩文件",把所有内容压缩成一棵树,直接提取,速度快
决策标准:频繁项集长度较短(≤3项)→ Apriori;频繁项集长度较长(>3项)→ FP-Growth。
170. ⭐⭐⭐ 答案:√
解析:高置信度不一定意味着因果关系,需要结合业务知识判断。关联规则只能发现相关性,不能证明因果关系。
总结
题目统计:
- 单选题:85题(每题1分)
- 多选题:34题(每题2分)
- 判断题:51题(每题1分)
- 总计:170题,204分
难度分布:
- ⭐ 基础题:约60题
- ⭐⭐ 中等题:约70题
- ⭐⭐⭐ 高难度题:约40题
学习建议:
- 先独立完成题目,不要直接看答案
- 做完后对照答案,理解解析
- 对于错题,重点复习相关知识点
- 定期回顾,巩固记忆