机器学习期末复习资料:老师重点整理版

0. 使用说明与重点来源

这份资料根据你拍摄的老师重点清单整理,并结合机器学习课程的常见考试方式进行补全。照片中有反光和遮挡,个别词我按课程常见写法修正:PACA 按 PCA 处理,AKSAISZ 按 batch size 处理,K算法按 KNN 和 K-means 分开整理。整体识别置信度为中,核心知识点置信度为高。

复习时不要只背定义,要能判断题目属于分类、回归、聚类、降维还是优化问题。考试中最容易丢分的地方不是概念本身,而是把 KNN 和 K-means 混淆,把逻辑回归当成普通回归,把 PCA 当成分类算法,把准确率当成唯一评价指标。

1. 机器学习总览

机器学习是让计算机从数据中学习规律,再用学到的规律对未知样本进行预测、分类、聚类、降维或决策。传统程序通常是“人写规则,机器执行规则”;机器学习是“人提供数据和目标,机器从数据中学习规则”。

1.1 机器学习基本流程

  1. 明确任务目标:先判断是分类、回归、聚类、降维、推荐还是异常检测。
  2. 收集数据:数据可以来自数据库、传感器、日志、图片、文本、表格等。
  3. 数据预处理:处理缺失值、异常值、重复值和格式不一致问题。
  4. 特征工程:提取、构造、选择和变换特征。
  5. 划分数据集:通常划分训练集、验证集和测试集。
  6. 选择模型:根据任务和数据特点选择算法。
  7. 训练模型:用训练集拟合模型参数。
  8. 验证与调参:用验证集选择超参数,例如 K 值、树深度、学习率。
  9. 测试模型:用测试集评估泛化能力。
  10. 部署应用:将模型用于真实预测,同时持续监控效果。

1.2 机器学习分类

学习类型 是否需要标签 目标 常见算法 例子
监督学习 需要标签 学习输入到输出的映射 线性回归、逻辑回归、KNN、SVM、决策树、随机森林、朴素贝叶斯 房价预测、肿瘤良恶性分类、信用卡欺诈识别
无监督学习 不需要标签 发现数据内部结构 K-means、层次聚类、PCA 客户分群、数据降维、异常发现
半监督学习 少量有标签,大量无标签 降低人工标注成本 半监督分类、伪标签方法 医学图像、网页分类
强化学习 通过奖励信号学习 学习最优行动策略 Q-learning、DQN 游戏智能体、机器人控制、自动驾驶

1.3 分类、回归、聚类、降维的区别

分类预测的是离散类别,例如“是或否”“良性或恶性”“猫或狗”。回归预测的是连续数值,例如房价、温度、销售额、身高。聚类是在没有标签的情况下把相似样本分组,例如客户分群。降维是把高维特征压缩到低维空间,例如把几十个指标压缩成几个主成分。

判断题时可以抓关键词:出现“类别、是否、哪一类”通常是分类;出现“价格、分数、温度、数值”通常是回归;出现“分群、划分客户、相似样本聚在一起”通常是聚类;出现“减少维度、可视化、保留主要信息”通常是降维。

2. 数据预处理

数据预处理是在建模前把原始数据变得更干净、更统一、更适合模型学习。很多模型效果不好,不一定是算法差,而是数据中存在缺失、异常、尺度差异或类别编码问题。

2.1 缺失值处理

常见处理方法包括删除缺失样本、均值填充、中位数填充、众数填充、插值填充和模型预测填充。

如果缺失比例很低,可以直接删除。若数值型特征分布比较平稳,可用均值填充;如果存在极端值,中位数比均值更稳健。类别型特征常用众数填充,也可以新增一个“未知”类别。

2.2 异常值处理

异常值是明显偏离正常范围的数据,例如年龄为 300、身高为 5 米、价格为负数。处理方式包括删除、截断、分箱、平滑或保留并标记。是否删除异常值要看业务含义,有些异常点可能是真实重要事件,例如欺诈交易。

2.3 标准化与归一化

标准化公式:

x' = (x - μ) / σ

其中 μ 是均值,σ 是标准差。标准化后数据通常均值接近 0,标准差接近 1。

归一化公式:

x' = (x - xmin) / (xmax - xmin)

归一化后数据被压缩到固定区间,常见为 [0, 1]。

方法 结果 适合情况 典型算法
标准化 均值约为 0,标准差约为 1 数据近似正态或算法对尺度敏感 SVM、逻辑回归、线性回归、神经网络
归一化 数值压缩到固定区间 需要控制输入范围 KNN、K-means、神经网络

KNN、K-means、SVM、逻辑回归、线性回归和神经网络通常需要标准化或归一化。决策树和随机森林通常不太需要,因为它们主要根据阈值划分数据,不依赖距离大小。

2.4 类别特征编码

机器学习模型通常不能直接处理“男、女、北京、武汉”这类字符串,需要转成数值。常见方法包括标签编码和独热编码。

标签编码把类别映射为数字,例如男为 0,女为 1。独热编码把类别展开为多个 0/1 特征,例如城市有北京、上海、武汉三类,就变成三个特征。没有大小顺序的类别通常更适合独热编码,否则模型可能误以为数字大小代表类别强弱。

3. 特征工程

特征工程是把原始数据转化为更适合模型学习的特征。它包括特征清洗、构造、选择、变换、编码和降维。

3.1 特征工程过程

  1. 理解任务目标和业务含义。
  2. 清洗数据,处理缺失值、异常值和重复值。
  3. 构造新特征,例如由出生日期得到年龄,由销售额和数量得到单价。
  4. 编码类别特征,例如独热编码。
  5. 特征缩放,例如标准化或归一化。
  6. 特征选择,删除无关特征和冗余特征。
  7. 特征降维,例如使用 PCA。
  8. 通过交叉验证检验特征是否真的提升效果。

3.2 特征工程应用

房价预测中,面积、楼层、房龄、地段是原始特征,可以进一步构造距离地铁距离、是否学区房、单位面积价格等特征。信用卡欺诈检测中,可以构造交易频率、异常时间交易、交易地点变化、单笔金额与历史均值的偏离程度。图像识别中,传统方法会提取边缘、纹理、颜色直方图,深度学习则通常由 CNN 自动学习图像特征。

3.3 特征工程优缺点

优点是可以显著提升模型效果,减少噪声影响,提高泛化能力和可解释性。缺点是耗时、依赖经验,错误特征可能引入噪声,还可能造成过拟合。

考试回答时可以写:特征工程不是单纯“加特征”,而是围绕任务目标把原始信息转化为有效输入。好的特征可以让简单模型也获得较好效果,差的特征会让复杂模型也难以学习。

4. 监督学习重点

监督学习使用带标签数据训练模型。输入样本通常记为 X,标签或目标值记为 y。监督学习主要分为分类和回归。

4.1 线性回归

线性回归用于预测连续数值,其模型形式为:

y = w1*x1 + w2*x2 + ... + wn*xn + b

其中 w 是权重,b 是偏置。线性回归通过最小化预测值和真实值之间的误差来学习参数,常用损失函数是均方误差 MSE。

MSE = (1/m) * Σ(yi - ŷi)^2

线性回归适合变量之间近似线性关系的场景,例如根据面积预测房价,根据广告投入预测销售额。它的优点是简单、速度快、可解释性强;缺点是表达能力有限,无法很好处理复杂非线性关系,并且对异常值比较敏感。

4.2 逻辑回归

逻辑回归虽然名字中有“回归”,但主要用于分类,尤其是二分类。它先计算线性组合,再通过 Sigmoid 函数把结果压缩到 0 到 1 之间,表示属于正类的概率。

σ(z) = 1 / (1 + e^(-z))

如果输出概率大于阈值,例如 0.5,就判断为正类,否则判断为负类。逻辑回归常用于垃圾邮件识别、肿瘤良恶性判断、用户流失预测和信用风险评估。

需要注意:逻辑回归不是用来预测连续数值的普通回归模型。它输出的是类别概率,最终通常用于分类。

4.3 KNN 算法

KNN 全称 K-Nearest Neighbors,中文是 K 近邻算法。它的核心思想是:一个样本属于哪一类,可以参考它附近最近的 K 个样本,多数邻居属于哪一类,新样本就归为哪一类。

KNN 的步骤:

  1. 选择 K 值。
  2. 计算待预测样本与所有训练样本之间的距离。
  3. 找到距离最近的 K 个样本。
  4. 分类任务采用多数投票。
  5. 回归任务采用 K 个邻居目标值的平均值。

常用距离包括欧氏距离、曼哈顿距离和余弦距离。欧氏距离公式为:

d = sqrt((x1-y1)^2 + (x2-y2)^2 + ... + (xn-yn)^2)

KNN 效果受以下因素影响:K 值大小、距离度量方式、数据是否标准化、特征是否有效、样本数量、噪声和异常值、类别是否均衡。

K 值过小,模型容易受噪声影响,容易过拟合。K 值过大,分类边界过于平滑,容易欠拟合。一般通过交叉验证选择较合适的 K 值。

KNN 优点是原理简单、容易实现、不需要复杂训练。缺点是预测时计算量大,对特征尺度敏感,对噪声敏感,高维数据下效果可能下降。

4.4 支持向量机 SVM

SVM 全称 Support Vector Machine,中文是支持向量机。它是一种监督学习算法,常用于分类,也可以用于回归。

SVM 的核心思想是找到一个最优分类超平面,使不同类别之间的间隔最大。离分类边界最近的样本点叫支持向量,它们决定了分类边界的位置。

二维空间中的分类边界是一条直线,三维空间中是一个平面,更高维空间中称为超平面。

SVM 不是只能处理线性问题。对于非线性可分数据,SVM 可以使用核函数把数据映射到更高维空间,使其在高维空间中更容易被线性划分。常见核函数包括线性核、多项式核和 RBF 高斯核。

核函数 适用情况
线性核 数据近似线性可分,特征维度较高
多项式核 数据存在多项式关系
RBF 高斯核 非线性边界复杂,实际应用中很常见

SVM 的优点是适合小样本、高维数据,泛化能力较好。缺点是大数据训练较慢,核函数和参数选择比较困难,对噪声和异常值敏感。

4.5 决策树

决策树是一种树形结构模型,通过一系列条件判断完成分类或回归。它很像人类做选择的过程。例如判断是否购买电脑,可以依次根据年龄、收入、是否学生、信用等级做判断。

决策树常见划分指标包括信息增益、信息增益率和基尼指数。ID3 常用信息增益,C4.5 常用信息增益率,CART 常用基尼指数。

决策树通常不需要标准化,因为它根据特征阈值划分样本,不依赖距离计算。它可以处理非线性关系,可解释性强,但容易过拟合。常见解决方式包括限制树深度、设置最小样本数、剪枝和使用随机森林。

4.6 随机森林

随机森林是集成学习方法,由多棵决策树组成。单棵决策树容易过拟合,而随机森林通过多个模型投票或平均,使结果更稳定。

随机森林构建过程:

  1. 从原始训练集中进行有放回抽样,得到多个训练子集。
  2. 每个训练子集训练一棵决策树。
  3. 每棵树在节点划分时随机选择部分特征参与划分。
  4. 多棵树分别预测。
  5. 分类任务采用多数投票,回归任务采用平均值。

随机森林的优点是泛化能力强、不容易过拟合、可以处理高维数据、可以评估特征重要性。缺点是模型较大,训练和预测成本比单棵树高,可解释性下降。

4.7 朴素贝叶斯

朴素贝叶斯是一种基于贝叶斯定理的分类算法。贝叶斯公式为:

P(A|B) = P(B|A)P(A) / P(B)

“朴素”是指它假设各特征在类别给定的条件下相互独立。这个假设在现实中不一定完全成立,但在文本分类、垃圾邮件识别等任务中效果常常不错。

朴素贝叶斯优点是训练速度快、实现简单、适合文本分类和小规模数据。缺点是特征独立假设较强,如果特征之间相关性很强,效果可能下降。

5. 无监督学习重点

无监督学习没有标签,模型需要自己发现数据内部结构。老师重点中出现了 K-means、PCA、聚类和降维,这些都是无监督学习高频考点。

5.1 K-means 聚类

K-means 是常见聚类算法。它的目标是把数据分成 K 个簇,使同一簇内样本尽量相似,不同簇之间尽量不同。

K-means 步骤:

  1. 预先指定聚类数量 K。
  2. 随机选择 K 个初始聚类中心。
  3. 计算每个样本到各中心点的距离。
  4. 把样本分配给最近的中心点。
  5. 更新每个簇的中心点。
  6. 重复分配和更新,直到中心点基本不变或达到最大迭代次数。

K-means 的优点是简单、速度快、适合大规模数据。缺点是需要提前指定 K,对初始中心敏感,对异常值敏感,不适合非球形簇,并且通常需要标准化数据。

5.2 K-means++

K-means++ 是对 K-means 初始中心选择方式的改进。普通 K-means 随机选中心,可能导致初始中心太接近,从而影响聚类效果。K-means++ 倾向于选择彼此距离更远的初始中心,使聚类更稳定。

考试中如果问 K-means++ 的作用,可以回答:它主要改进 K-means 初始聚类中心的选择,减少随机初始化带来的不稳定,提高收敛效果和聚类质量。

5.3 聚类算法举例

常见聚类算法包括 K-means、层次聚类、DBSCAN 和高斯混合模型。

算法 思想 适用场景 局限
K-means 根据距离把样本分到 K 个中心附近 大规模、簇形状接近球形的数据 需指定 K,对异常值敏感
层次聚类 按样本相似度逐层合并或划分 小规模数据、需要树状结构解释 大数据效率低
DBSCAN 根据密度寻找簇 发现任意形状簇、识别噪声 参数 eps 和 min_samples 难选
高斯混合模型 假设数据由多个高斯分布混合 概率聚类、软分类 对分布假设敏感

5.4 PCA 主成分分析

PCA 是 Principal Component Analysis,中文是主成分分析。它是一种无监督降维方法,目的是在尽量保留原始数据信息的前提下,把高维特征压缩成低维主成分。

PCA 的核心思想是找到数据中方差最大的方向。第一主成分保留最多变化信息,第二主成分在与第一主成分正交的方向上保留次多变化信息,以此类推。

PCA 可以衡量的信息包括:方差贡献率、累计方差贡献率、主成分数量、信息保留程度和重构误差。

PCA 是否会损失数据?答案是会。因为降维会舍弃一部分方差较小的方向,所以一定可能损失信息。保留主成分越多,信息损失越小;保留主成分越少,压缩更强,但信息损失更大。

PCA 优点是降低维度、减少冗余、缓解维度灾难、提高训练速度、方便可视化。缺点是主成分不容易解释,只适合线性降维,对标准化敏感,并且可能丢失有用信息。

6. 模型训练、验证与评价

机器学习不只是训练模型,还要判断模型是否真的能在新数据上表现好。训练集效果好不等于模型好,关键是泛化能力。

6.1 训练集、验证集、测试集

训练集用于学习模型参数。验证集用于选择超参数和模型,例如 K 值、学习率、树深度。测试集用于最终评估模型泛化能力,理论上不应参与调参。

如果数据较少,可以使用交叉验证,让数据被更充分利用。

6.2 交叉验证

交叉验证用于更稳定地评估模型效果,减少一次随机划分数据带来的偶然性。常见方法是 K 折交叉验证。

以 5 折交叉验证为例:把数据分为 5 份,每次用 4 份训练,1 份验证,重复 5 次,最后取平均指标作为模型效果。

交叉验证常用于模型选择和超参数调优,不是为了单纯提高训练集准确率。

6.3 分类评价指标

指标 含义 适用情况
Accuracy 准确率 总体预测正确的比例 类别比较均衡时
Precision 精确率 预测为正的样本中真正为正的比例 误报代价高时
Recall 召回率 真实为正的样本中被找出来的比例 漏报代价高时
F1-score 精确率和召回率的综合 类别不平衡时
AUC 衡量模型区分正负样本的能力 二分类排序评价
混淆矩阵 展示 TP、FP、TN、FN 分析错误类型

准确率高不一定代表模型好。比如 1000 个样本中只有 10 个患病,模型全部预测为健康,准确率仍然可以达到 99%,但它完全没有识别出患病样本。

6.4 回归评价指标

指标 含义 趋势
MSE 均方误差 越小越好
RMSE 均方根误差 越小越好
MAE 平均绝对误差 越小越好
拟合优度 越接近 1 越好

MSE 对大误差更敏感,MAE 更直观,R² 表示模型解释数据变化的能力。

6.5 聚类评价指标

聚类没有真实标签时,常用轮廓系数、SSE、Calinski-Harabasz 指数和 Davies-Bouldin 指数。轮廓系数越接近 1,说明簇内越紧密、簇间越分离。SSE 是簇内误差平方和,常配合肘部法选择 K 值。

7. 过拟合、欠拟合与正则化

7.1 欠拟合

欠拟合是模型太简单,不能充分学习数据规律。表现为训练集效果差,测试集效果也差。

常见原因:模型过于简单,特征太少,训练不充分,正则化太强。

解决方法:增加模型复杂度,增加有效特征,减少正则化强度,延长训练时间,换用表达能力更强的模型。

7.2 过拟合

过拟合是模型把训练数据中的噪声和细节也学进去了。表现为训练集效果很好,测试集效果明显变差。

常见原因:模型过于复杂,样本太少,特征太多,噪声较多,训练时间过长。

解决方法:增加数据,数据增强,降低模型复杂度,特征选择,正则化,交叉验证,早停,Dropout,决策树剪枝。

7.3 正则化

正则化是在损失函数中加入惩罚项,限制模型参数过大,从而降低模型复杂度,缓解过拟合。

L1 正则化:

Loss = 原损失 + λ * Σ|wi|

L1 正则化可以让部分参数变成 0,有特征选择作用。

L2 正则化:

Loss = 原损失 + λ * Σwi^2

L2 正则化会让参数变小,使模型更平滑、更稳定,但一般不会直接让参数变成 0。

注意:正则化不是越强越好。正则化太弱可能过拟合,太强可能欠拟合。

8. 梯度下降与深度学习训练

8.1 梯度下降基本思想

梯度下降是一种优化算法,用来最小化损失函数。它沿着损失函数下降最快的方向更新参数,使损失逐渐变小。

参数更新形式为:

w = w - α * ∂J(w)/∂w

其中 α 是学习率,J(w) 是损失函数。

8.2 梯度下降类型

类型 每次使用的数据 优点 缺点
批量梯度下降 BGD 全部样本 稳定 速度慢,占内存
随机梯度下降 SGD 一个样本 更新快 波动大
小批量梯度下降 Mini-batch GD 一小批样本 效率和稳定性较平衡 batch size 需要选择
Momentum 加入动量 减少震荡,加快收敛 多一个参数
Adam 自适应学习率 深度学习中常用 需要调学习率等参数

8.3 梯度下降能否找到全局最优

不一定。在线性回归这类凸优化问题中,如果学习率合适,梯度下降可以收敛到全局最优。但在神经网络这类非凸问题中,损失函数很复杂,梯度下降可能陷入局部最优、鞍点或震荡。

学习率太大可能越过最低点甚至发散,学习率太小训练会很慢。

8.4 batch size

batch size 是每次训练送入模型的样本数量。batch size 太小,训练波动大,但可能有一定泛化优势;batch size 太大,训练更稳定,但占用显存大,可能泛化变差。深度学习中通常使用 mini-batch 训练。

8.5 梯度消失

梯度消失是深度神经网络训练中的常见问题。反向传播时梯度需要经过多层连乘,如果每层梯度都小于 1,多层相乘后梯度会变得非常小,导致前面层参数几乎无法更新。

产生原因包括网络太深、使用 Sigmoid 或 Tanh 激活函数、参数初始化不合适、输入数据没有标准化等。

解决方法包括使用 ReLU 或 Leaky ReLU,使用 Batch Normalization,使用残差连接 ResNet,合理初始化参数,使用 LSTM 或 GRU 处理长序列,使用 Adam 等优化器。

9. 深度学习基础

深度学习是机器学习的一个分支,主要通过多层神经网络自动学习特征。它在图像、语音、文本和大模型领域表现突出。

9.1 神经网络基本结构

神经网络通常由输入层、隐藏层和输出层组成。每一层通过权重和偏置对输入进行线性变换,再经过激活函数引入非线性能力。

如果没有激活函数,多层线性网络仍然等价于一个线性模型,无法表达复杂非线性关系。

9.2 常见激活函数

激活函数 输出范围 特点
Sigmoid 0 到 1 可表示概率,但容易梯度消失
Tanh -1 到 1 零中心,但仍可能梯度消失
ReLU 大于等于 0 简单高效,深度学习常用
Leaky ReLU 可有小负值 缓解 ReLU 死亡问题
Softmax 多类别概率 多分类输出层常用

9.3 常见深度学习模型

模型 适用场景
CNN 图像分类、目标检测、图像特征提取
RNN 序列数据、时间序列、文本
LSTM/GRU 长序列、语音、文本,缓解长期依赖问题
Transformer 自然语言处理、大模型、多模态、序列建模
MLP 普通表格数据或基础神经网络任务

9.4 图像特征提取

传统图像特征提取方法包括 SIFT、HOG、LBP、颜色直方图和 PCA。深度学习中,CNN 可以自动学习边缘、纹理、形状和高级语义特征。

如果题目问“图像特征提取用什么算法”,可以答:传统机器学习可用 SIFT、HOG、LBP、PCA,深度学习通常用 CNN 自动提取图像特征。

9.5 序列数据用什么模型

序列数据指有时间顺序或上下文依赖的数据,例如文本、语音、股票价格、传感器数据和天气数据。常用模型包括 RNN、LSTM、GRU 和 Transformer。

10. 余弦相似度与向量空间

向量空间是机器学习中表示样本和特征的一种方式。一个样本可以看成一个向量,每个特征对应一个维度。例如一个人可以用身高、体重、年龄三个维度表示。

特征空间维度不是越大越好。维度太低可能信息不足,维度太高可能出现维度灾难、计算成本增加、模型更容易过拟合。合理做法是保留有效特征,删除无关和冗余特征,必要时用 PCA 降维。

余弦相似度用于衡量两个向量方向是否相似,公式为:

cos(θ) = A·B / (||A|| ||B||)

余弦相似度关注夹角,不关注绝对长度。常用于文本相似度、推荐系统和向量检索。

11. 高频判断题整理

判断说法 答案 原因
机器学习模型性能只和算法有关 数据质量、特征、参数和评价方式都会影响效果
PCA 对数据完全没有损失 降维会舍弃部分信息
PCA 属于无监督学习 PCA 不需要标签
KNN 对数据尺度不敏感 KNN 依赖距离,尺度差异会影响结果
KNN 的 K 值越大越好 K 太大会欠拟合
K-means 属于监督学习 K-means 没有标签,是无监督聚类
K-means 需要提前指定 K K 是簇的数量
SVM 只能处理线性分类 可以通过核函数处理非线性问题
支持向量机适合高维小样本 这是 SVM 的常见优势
决策树必须进行标准化 决策树按阈值划分,通常不需要标准化
梯度下降一定能找到全局最优 非凸问题中不一定
准确率越高模型一定越好 类别不平衡时准确率可能误导
正则化可以缓解过拟合 正则化限制模型复杂度
正则化越强越好 过强会导致欠拟合
随机森林属于集成学习 它由多棵决策树组成
逻辑回归主要用于分类 尤其常用于二分类
朴素贝叶斯假设特征条件独立 这是其“朴素”的含义
深度学习一定比传统机器学习好 取决于数据量、任务、算力和解释性要求

12. 多选题重点归纳

12.1 分类算法

分类算法包括逻辑回归、KNN、SVM、决策树、随机森林、朴素贝叶斯和神经网络。线性回归通常不是分类算法,K-means 也不是分类算法,而是聚类算法。

12.2 分类任务例子

肿瘤良恶性判断、信用卡是否欺诈、邮件是否垃圾邮件、图像类别识别、用户是否流失,这些都属于分类任务。房价预测、销售额预测、温度预测通常属于回归任务。客户分群属于聚类任务。

12.3 支持向量机相关说法

正确说法:SVM 是监督学习算法;SVM 可以用于分类;SVM 可以通过核函数处理非线性问题;SVM 适合高维小样本。

错误说法:SVM 只能处理线性问题;SVM 不需要调参数;SVM 一定适合所有大规模数据。

12.4 PCA 相关说法

正确说法:PCA 是降维方法;PCA 属于无监督学习;PCA 可以通过方差贡献率衡量信息保留程度;PCA 可能造成信息损失。

错误说法:PCA 是分类算法;PCA 完全不会损失数据;PCA 不需要考虑特征尺度。

12.5 集成学习算法

常见集成学习算法包括随机森林、AdaBoost、GBDT、XGBoost、LightGBM 和 Stacking。随机森林属于 Bagging 思想,Boosting 是串行训练多个弱模型,后一个模型关注前一个模型的错误。

13. 简答题模板

13.1 概述机器学习的方法和分类

机器学习是通过数据训练模型,使计算机能够从样本中学习规律,并对未知数据进行预测、分类、聚类或决策的方法。按照学习方式可以分为监督学习、无监督学习、半监督学习和强化学习。监督学习使用带标签数据,常用于分类和回归,例如肿瘤分类、房价预测;无监督学习使用无标签数据,常用于聚类和降维,例如客户分群、PCA;半监督学习结合少量有标签数据和大量无标签数据,适合标注成本高的任务;强化学习通过奖励机制学习最优策略,常用于游戏、机器人和自动驾驶。

13.2 解释欠拟合和过拟合,并说明解决方法

欠拟合是指模型过于简单,不能充分学习数据规律,表现为训练集和测试集效果都不好。解决方法包括增加模型复杂度、增加有效特征、减少正则化、延长训练时间或更换更强模型。过拟合是指模型过度学习训练数据中的细节和噪声,表现为训练集效果很好但测试集效果较差。解决方法包括增加数据、数据增强、降低模型复杂度、特征选择、正则化、交叉验证、早停、Dropout 和剪枝。

13.3 梯度下降算法有哪些,原理是什么

梯度下降是一种用于最小化损失函数的优化算法。它通过计算损失函数对参数的梯度,并沿负梯度方向更新参数,使损失逐渐减小。常见梯度下降方法包括批量梯度下降、随机梯度下降和小批量梯度下降。批量梯度下降每次使用全部样本,结果稳定但速度慢;随机梯度下降每次使用一个样本,速度快但波动大;小批量梯度下降每次使用一批样本,在效率和稳定性之间取得平衡,因此深度学习中使用较多。

13.4 特征工程有哪些过程、应用、优缺点

特征工程是将原始数据转化为适合模型学习的特征的过程。主要步骤包括数据清洗、缺失值处理、异常值处理、类别编码、标准化、归一化、特征构造、特征选择和降维。它广泛应用于房价预测、信用评分、图像识别和推荐系统等任务。优点是能提高模型性能、减少噪声并增强泛化能力;缺点是依赖经验、耗时,并且错误特征可能引入噪声或造成过拟合。

13.5 随机森林的构建步骤

随机森林是一种集成学习算法,由多棵决策树组成。构建时,首先从原始训练集中进行有放回抽样,得到多个训练子集;然后对每个子集训练一棵决策树;每棵树在节点分裂时随机选择部分特征参与划分;最后多棵树共同预测,分类任务采用多数投票,回归任务采用平均值。随机森林通过样本随机和特征随机降低单棵树的过拟合风险,提高模型稳定性和泛化能力。

13.6 深度学习和传统机器学习的优缺点

传统机器学习通常依赖人工特征工程,适合中小规模数据和结构化数据,优点是训练成本较低、可解释性较强,缺点是特征表达能力有限。深度学习通过多层神经网络自动学习复杂特征,适合图像、语音、文本等大规模非结构化数据,优点是表达能力强、效果上限高,缺点是需要大量数据和算力,可解释性较差,训练过程复杂。

14. 讨论题模板

14.1 机器学习应用前景与挑战

机器学习在医疗诊断、金融风控、智能推荐、自动驾驶、工业检测、自然语言处理等领域具有广泛应用前景。它可以从大量数据中发现规律,提高预测效率和决策质量。例如在医疗领域可以辅助疾病诊断,在金融领域可以识别欺诈交易,在电商领域可以进行个性化推荐。但机器学习也面临数据质量差、隐私安全风险、模型可解释性不足、过拟合、算力成本高和算法偏见等挑战。因此实际应用中需要重视数据治理、模型评估、隐私保护和结果解释。

14.2 怎样选择机器学习算法

选择机器学习算法需要根据任务类型、数据规模、特征形式、准确率要求和可解释性要求综合判断。如果目标是预测连续数值,可以选择线性回归、决策树回归或随机森林回归;如果目标是分类,可以选择逻辑回归、KNN、SVM、决策树或随机森林;如果数据没有标签,可以选择 K-means 或 PCA;如果是图像、语音、文本等复杂任务,可以考虑深度学习模型。实际选择时还应通过交叉验证比较不同模型效果,而不能只凭经验判断。

14.3 大数据对机器学习和深度学习的影响

大数据为机器学习提供了更丰富的训练样本,使模型能够学习更复杂、更稳定的规律,从而提升预测效果和泛化能力。对于深度学习来说,大量数据尤其重要,因为深层神经网络参数多,如果数据不足容易过拟合。大数据推动了推荐系统、搜索引擎、智能语音和大模型的发展。但大数据也带来了数据清洗难度增加、存储和计算成本提高、隐私风险增大、数据偏差导致不公平结果等问题。

14.4 梯度消失产生原因与解决方法

梯度消失是深度神经网络训练中的常见问题。其原因是在反向传播过程中梯度需要经过多层连乘,如果每层梯度都较小,传到前面层时会变得非常接近 0,导致前面层参数难以更新。它常出现在网络较深、使用 Sigmoid 或 Tanh 激活函数、初始化不合理或输入数据未标准化的情况下。解决方法包括使用 ReLU 或 Leaky ReLU,使用 Batch Normalization,使用残差连接,合理初始化参数,使用 LSTM 或 GRU 处理序列,以及采用 Adam 等优化器。

15. 编程题:线性回归模板

老师重点里出现“线性回归,给一组数据”。考试若要求写程序,通常考导入库、准备数据、创建模型、训练模型、预测输出。

import numpy as np
from sklearn.linear_model import LinearRegression

# 1. 准备数据。X 必须是二维数组,y 是一维数组
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])

# 2. 创建模型
model = LinearRegression()

# 3. 训练模型
model.fit(X, y)

# 4. 输出模型参数
print("斜率:", model.coef_)
print("截距:", model.intercept_)

# 5. 预测新数据
X_new = np.array([[6], [7]])
y_pred = model.predict(X_new)
print("预测结果:", y_pred)

需要记住:fit(X, y) 用于训练,predict(X_new) 用于预测,coef_ 是权重或斜率,intercept_ 是截距。

16. 编程题:分类模型基本模板

如果考试不是线性回归,而是要求训练一个分类模型,可以套用下面思路。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report

# 1. 加载数据
iris = load_iris()
X = iris.data
y = iris.target

# 2. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)

# 3. 标准化。KNN 依赖距离,建议标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 4. 创建并训练模型
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

# 5. 预测和评价
y_pred = model.predict(X_test)
print("准确率:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

17. 编程题:K-means 和 PCA 简短模板

K-means 聚类示例:

from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

iris = load_iris()
X = iris.data

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

model = KMeans(n_clusters=3, random_state=42, n_init=10)
labels = model.fit_predict(X_scaled)
print(labels)
print(model.cluster_centers_)

PCA 降维示例:

from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

iris = load_iris()
X = iris.data

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

print("降维后的形状:", X_pca.shape)
print("方差贡献率:", pca.explained_variance_ratio_)

18. 考前速记表

概念 一句话记忆
分类 预测类别,例如是否患病
回归 预测数值,例如房价
聚类 无标签分组,例如客户分群
降维 减少特征数量,例如 PCA
KNN 看最近 K 个邻居投票
K-means 把样本分成 K 个簇
SVM 找最大间隔分类超平面
决策树 一层层条件判断
随机森林 多棵决策树投票
朴素贝叶斯 贝叶斯公式加特征独立假设
PCA 找方差最大的方向,保留主要信息
正则化 给复杂模型加惩罚,缓解过拟合
梯度下降 沿负梯度方向更新参数
交叉验证 更稳定评估模型泛化能力
batch size 每次训练送入模型的一批样本数
梯度消失 深层网络前面层梯度太小,学不动

19. 最后复习顺序建议

第一轮先看机器学习分类、分类回归聚类降维区别、KNN、SVM、决策树、随机森林、K-means 和 PCA。第二轮重点背过拟合欠拟合、正则化、梯度下降、评价指标和交叉验证。第三轮练简答题模板和编程题模板。

最优先掌握的判断:PCA 是降维不是分类;KNN 是监督学习,K-means 是无监督学习;逻辑回归主要用于分类;SVM 可以通过核函数处理非线性;决策树一般不需要标准化;准确率高不一定模型好;梯度下降不一定在非凸问题中找到全局最优;正则化可以缓解过拟合但不是越强越好。

20. 自测题:先做题,再看答案解析

这一部分是按老师画的重点和常见期末题型补充的自测题。建议先单独写答案,不要边看答案边做。做完以后重点检查三类错误:把 KNN 和 K-means 混淆,把逻辑回归当成普通回归,把准确率当成唯一评价指标。

建议用时:判断题 5 分钟,单选题 15 分钟,多选题 15 分钟,简答题 25 分钟,编程题 25 分钟,综合题 20 分钟。总分可以按 100 分计算:判断 15 分,单选 15 分,多选 20 分,简答 24 分,编程 15 分,综合 11 分。

20.1 判断题

  1. 机器学习模型的效果只由算法决定,数据质量和特征工程影响不大。
  2. 监督学习通常需要带标签的数据。
  3. 逻辑回归主要用于预测连续数值,所以它和线性回归用途基本相同。
  4. KNN 依赖距离计算,因此不同特征量纲差异很大时,通常需要标准化或归一化。
  5. 决策树通常不依赖距离计算,因此一般不强制要求标准化。
  6. PCA 降维完全不会造成信息损失。
  7. SVM 可以通过核函数处理非线性分类问题。
  8. 准确率越高,模型一定越适合实际应用。
  9. L2 正则化可以限制参数过大,从而缓解过拟合。
  10. K-means 属于监督学习,因为它会把样本分成不同类别。
  11. 梯度下降在所有机器学习模型中都一定能找到全局最优解。
  12. 交叉验证可以更稳定地评估模型泛化能力,也常用于选择超参数。
  13. batch size 越大越好,因为每次使用的数据越多,模型一定泛化越强。
  14. 随机森林属于集成学习,它由多棵决策树组成。
  15. 深度学习一定优于传统机器学习,因此任何数据集都应该优先使用深度学习。

20.2 单选题

  1. 下列任务最典型属于分类问题的是哪一项?
    A. 预测明天最高气温 B. 判断肿瘤是良性还是恶性 C. 预测房屋价格 D. 预测某商品月销量

  2. 下列任务最典型属于回归问题的是哪一项?
    A. 预测房价 B. 判断邮件是否为垃圾邮件 C. 对客户进行分群 D. 将图片分为猫和狗

  3. 下列算法中,通常属于无监督学习的是哪一项?
    A. 逻辑回归 B. SVM C. K-means D. 朴素贝叶斯

  4. PCA 的主要作用是下列哪一项?
    A. 分类 B. 降维 C. 生成标签 D. 增加样本数量

  5. KNN 对标准化敏感的主要原因是下列哪一项?
    A. KNN 使用神经网络训练 B. KNN 使用决策树分裂 C. KNN 依赖样本间距离 D. KNN 只能处理文本数据

  6. 在 SVM 中,支持向量指的是下列哪一类样本?
    A. 所有训练样本 B. 被错误分类的样本 C. 离分类边界最近并决定边界的样本 D. 测试集中的样本

  7. 过拟合的典型表现是下列哪一项?
    A. 训练集差,测试集也差 B. 训练集好,测试集差 C. 训练集差,测试集好 D. 训练集和测试集都完全一样

  8. 梯度下降更新参数时,一般沿哪个方向更新?
    A. 正梯度方向 B. 随机方向 C. 负梯度方向 D. 与梯度无关的方向

  9. CART 决策树常用的划分指标是哪一项?
    A. 余弦相似度 B. 欧氏距离 C. 方差贡献率 D. 基尼指数

  10. 朴素贝叶斯中“朴素”的主要含义是哪一项?
    A. 假设特征在类别条件下相互独立 B. 模型没有参数 C. 模型不需要训练数据 D. 只能用于回归

  11. 在类别极不平衡的数据中,只看准确率可能产生什么问题?
    A. 准确率无法计算 B. 模型训练会停止 C. 可能掩盖少数类识别效果差的问题 D. 一定导致欠拟合

  12. 随机森林降低过拟合风险主要依靠哪种思想?
    A. 只训练一棵很深的树 B. 多棵树集成,并引入样本随机和特征随机 C. 不使用训练集 D. 不使用任何特征

  13. 选择 K-means 中 K 值的常见方法是下列哪一项?
    A. 肘部法和轮廓系数 B. Sigmoid 函数 C. 梯度消失法 D. 贝叶斯公式

  14. Sigmoid 函数的输出范围通常是下列哪一项?
    A. 负无穷到正无穷 B. 0 到 1 C. -1 到 1 D. 只能输出整数

  15. 验证集的主要作用是下列哪一项?
    A. 最终报告模型性能 B. 直接替代训练集 C. 选择模型和调整超参数 D. 删除全部异常值

20.3 多选题

  1. 下列哪些算法通常可以用于分类任务?
    A. 逻辑回归 B. KNN C. SVM D. 决策树 E. 随机森林 F. 朴素贝叶斯

  2. 下列哪些因素会影响 KNN 的效果?
    A. K 值大小 B. 距离度量方式 C. 是否进行标准化 D. 噪声和异常值 E. 特征是否有效

  3. 下列关于 PCA 的说法,正确的有哪些?
    A. PCA 是常见降维方法 B. PCA 一般属于无监督学习 C. PCA 可用方差贡献率衡量信息保留程度 D. PCA 完全不会损失信息 E. PCA 不是分类算法

  4. 下列哪些方法可以缓解过拟合?
    A. 增加数据 B. 正则化 C. 决策树剪枝 D. 早停 E. 特征选择 F. 无限增加模型复杂度

  5. 下列哪些是分类任务常见评价指标?
    A. Accuracy B. Precision C. Recall D. F1-score E. AUC F. MSE

  6. 下列哪些方法有助于缓解深度学习中的梯度消失?
    A. 使用 ReLU 或 Leaky ReLU B. 使用 Batch Normalization C. 使用残差连接 D. 合理初始化参数 E. 一定使用更小的数据集

  7. 下列哪些模型通常不强制要求标准化?
    A. 决策树 B. 随机森林 C. KNN D. K-means E. SVM

  8. 下列哪些属于聚类算法或聚类方法?
    A. K-means B. 层次聚类 C. DBSCAN D. 高斯混合模型 E. 线性回归

  9. 下列哪些属于特征工程或数据预处理的内容?
    A. 缺失值处理 B. 异常值处理 C. 类别编码 D. 标准化 E. 特征选择 F. PCA 降维

  10. 下列关于正则化的说法,正确的有哪些?
    A. 正则化可以缓解过拟合 B. L1 正则化可能使部分参数变为 0 C. L2 正则化通常会让参数变小 D. 正则化越强越好 E. 正则化过强可能导致欠拟合

20.4 简答题

  1. 简述机器学习的基本思想,并说明监督学习、无监督学习、半监督学习和强化学习的区别。
  2. 解释分类、回归、聚类和降维的区别,并各举一个例子。
  3. 简述 KNN 算法的基本流程,并说明 K 值过大和过小分别可能带来什么问题。
  4. 简述 SVM 的核心思想,并说明它为什么可以处理非线性分类问题。
  5. 什么是过拟合和欠拟合?分别有哪些常见解决方法?
  6. 什么是特征工程?请说明常见步骤、应用和优缺点。
  7. 简述随机森林的构建步骤,并说明它相比单棵决策树的优势。
  8. 为什么在类别不平衡的数据中,不能只看准确率?请结合例子说明。

20.5 编程题

  1. 给定一组一维数据 X = [[1], [2], [3], [4], [5]],目标值 y = [3, 5, 7, 9, 11],请使用 sklearn 写出线性回归训练、输出斜率和截距、预测 X_new = [[6]] 的代码。
  2. 使用鸢尾花数据集训练一个 KNN 分类模型,要求包括加载数据、划分训练测试集、标准化、训练模型、预测并输出准确率。
  3. 使用鸢尾花数据集做 K-means 聚类,要求先标准化,再设置 n_clusters=3,输出每个样本的聚类标签。
  4. 使用鸢尾花数据集做 PCA 降维,要求先标准化,再降到 2 维,输出降维后的数据形状和方差贡献率。

20.6 综合应用题

  1. 某医院有 10000 条体检数据,其中真正患某疾病的人只有 100 人。一个模型把所有人都预测为健康。请分析这个模型的准确率是否高,为什么这个模型仍然不可用,应该关注哪些指标。
  2. 某电商平台希望把用户分成不同消费群体,但没有提前标注每个用户属于哪一类。请说明这是分类还是聚类问题,可以选什么算法,数据预处理时要注意什么。
  3. 某模型训练集准确率为 99%,测试集准确率为 70%。请判断可能出现了什么问题,并给出至少 4 种改进方法。

21. 自测题答案与解析

21.1 判断题答案

  1. 错。算法只是一个因素,数据质量、特征工程、训练方式、参数选择和评价指标都会影响模型效果。
  2. 对。监督学习使用带标签样本学习输入到输出的映射。
  3. 错。逻辑回归主要用于分类,尤其是二分类;线性回归主要用于预测连续数值。
  4. 对。KNN 使用距离判断邻近样本,尺度大的特征会不合理地主导距离。
  5. 对。决策树按阈值划分特征,通常不像 KNN、SVM 那样依赖特征尺度。
  6. 错。PCA 降维会舍弃部分方向的信息,保留主成分越少,信息损失风险越高。
  7. 对。SVM 可以借助核函数处理非线性可分问题。
  8. 错。类别不平衡时,准确率可能很高但少数类识别很差。
  9. 对。L2 正则化通过惩罚参数平方,使参数更小、更平滑。
  10. 错。K-means 没有标签参与训练,属于无监督聚类。
  11. 错。非凸问题中可能陷入局部最优、鞍点或震荡。
  12. 对。交叉验证能减少单次划分带来的偶然性,并用于超参数选择。
  13. 错。batch size 过大可能占用显存高,也不一定带来更好的泛化。
  14. 对。随机森林通过多棵决策树投票或平均进行预测。
  15. 错。深度学习需要大量数据和算力,可解释性较弱,小数据结构化任务未必优于传统方法。

21.2 单选题答案

  1. B。肿瘤良恶性是离散类别判断,属于分类。
  2. A。房价是连续数值,属于回归。
  3. C。K-means 不使用标签,属于无监督聚类。
  4. B。PCA 的主要作用是降维,同时尽量保留主要信息。
  5. C。KNN 依赖距离,尺度差异会直接影响最近邻选择。
  6. C。支持向量是靠近分类边界、决定最大间隔超平面的样本。
  7. B。训练集好但测试集差,是过拟合的典型表现。
  8. C。梯度下降通常沿负梯度方向更新参数,使损失减小。
  9. D。CART 常用基尼指数进行划分。
  10. A。朴素贝叶斯的核心假设是特征条件独立。
  11. C。多数类占比很大时,模型只预测多数类也可能得到高准确率。
  12. B。随机森林通过样本随机和特征随机训练多棵树,降低单棵树过拟合风险。
  13. A。K-means 常用肘部法和轮廓系数选择 K。
  14. B。Sigmoid 输出范围是 0 到 1,可解释为概率。
  15. C。验证集主要用于模型选择和超参数调整,测试集用于最终评估。

21.3 多选题答案

  1. A、B、C、D、E、F。六个选项都可以用于分类任务。
  2. A、B、C、D、E。KNN 对 K 值、距离、尺度、噪声和特征质量都敏感。
  3. A、B、C、E。D 错,PCA 降维可能损失信息。
  4. A、B、C、D、E。F 错,无限增加复杂度通常会加重过拟合。
  5. A、B、C、D、E。F 是回归指标,不是分类指标。
  6. A、B、C、D。E 错,数据更少通常会增加过拟合风险,也不能解决梯度消失。
  7. A、B。决策树和随机森林一般不强制要求标准化。KNN、K-means、SVM 通常更依赖尺度。
  8. A、B、C、D。线性回归是回归算法,不是聚类算法。
  9. A、B、C、D、E、F。这些都属于数据预处理或特征工程范围。
  10. A、B、C、E。D 错,正则化过强会导致欠拟合。

21.4 简答题参考答案

  1. 机器学习是通过数据训练模型,使计算机从样本中学习规律,并对未知数据进行预测、分类、聚类或决策。监督学习使用带标签数据,常用于分类和回归;无监督学习使用无标签数据,常用于聚类和降维;半监督学习结合少量有标签数据和大量无标签数据,适合标注成本高的任务;强化学习通过奖励信号学习最优策略,常用于游戏、机器人控制和自动驾驶。

  2. 分类预测离散类别,例如判断邮件是否为垃圾邮件;回归预测连续数值,例如预测房价;聚类是在没有标签时把相似样本分到同一组,例如客户分群;降维是减少特征数量并尽量保留主要信息,例如用 PCA 把高维特征压缩成二维用于可视化。

  3. KNN 的流程是先选择 K 值,然后计算待预测样本与训练样本之间的距离,选出最近的 K 个邻居,分类任务用多数投票,回归任务用平均值。K 过小容易受噪声影响,导致过拟合;K 过大会使分类边界过于平滑,容易欠拟合。

  4. SVM 的核心思想是寻找一个最优分类超平面,使不同类别之间的间隔最大。离分类边界最近的样本称为支持向量,它们决定分类边界。SVM 可以通过核函数把原始数据映射到更高维空间,使非线性问题在高维空间中更容易线性划分,因此可以处理非线性分类。

  5. 欠拟合是模型太简单,训练集和测试集效果都差;可通过增加模型复杂度、增加有效特征、减少正则化、延长训练等方法改善。过拟合是模型过度学习训练数据细节和噪声,训练集好而测试集差;可通过增加数据、数据增强、正则化、特征选择、降低复杂度、交叉验证、早停、Dropout 或剪枝改善。

  6. 特征工程是将原始数据转化为更适合模型学习的特征的过程。常见步骤包括缺失值处理、异常值处理、类别编码、标准化或归一化、特征构造、特征选择和降维。它可用于房价预测、信用评分、图像识别和推荐系统。优点是提升模型效果、减少噪声、增强泛化能力;缺点是依赖经验、耗时,错误特征可能引入噪声或造成过拟合。

  7. 随机森林先对训练集进行有放回抽样,生成多个子数据集;然后分别训练多棵决策树;每棵树在节点划分时随机选择部分特征;最后分类任务用多数投票,回归任务用平均值。相比单棵决策树,随机森林更稳定,泛化能力更强,不容易过拟合,还可以评估特征重要性。

  8. 类别不平衡时,准确率可能被多数类掩盖。例如 1000 个样本中只有 10 个患病,模型全部预测健康也有 99% 准确率,但没有识别出任何患病者。此时应关注召回率、精确率、F1-score、AUC 和混淆矩阵,尤其在疾病检测中,漏诊代价高,召回率非常重要。

21.5 编程题参考答案

线性回归参考代码:

import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1], [2], [3], [4], [5]])
y = np.array([3, 5, 7, 9, 11])

model = LinearRegression()
model.fit(X, y)

print("斜率:", model.coef_)
print("截距:", model.intercept_)

X_new = np.array([[6]])
print("预测结果:", model.predict(X_new))

KNN 分类参考代码:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

iris = load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)
print("准确率:", accuracy_score(y_test, y_pred))

K-means 聚类参考代码:

from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

iris = load_iris()
X = iris.data

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

model = KMeans(n_clusters=3, random_state=42, n_init=10)
labels = model.fit_predict(X_scaled)
print("聚类标签:", labels)

PCA 降维参考代码:

from sklearn.datasets import load_iris
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

iris = load_iris()
X = iris.data

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

print("降维后的形状:", X_pca.shape)
print("方差贡献率:", pca.explained_variance_ratio_)

21.6 综合应用题参考答案

  1. 这个模型准确率为 9900/10000 = 99%,表面上很高,但它把所有患病者都预测为健康,患病类召回率为 0,因此实际不可用。疾病检测中漏诊代价高,不能只看准确率,应关注召回率、精确率、F1-score、AUC 和混淆矩阵。如果任务目标是尽量找出患病者,应优先提高召回率,同时控制误报。

  2. 这是聚类问题,因为平台没有预先标注用户类别,目标是让模型根据用户行为自动发现群体结构。可以选择 K-means、层次聚类或 DBSCAN。预处理时应处理缺失值和异常值,对消费金额、购买频率、浏览次数等数值特征进行标准化,必要时用 PCA 降维,还要结合业务含义解释每个簇。

  3. 训练集准确率 99%,测试集准确率 70%,说明模型可能过拟合。改进方法包括增加训练数据、进行数据增强、减少模型复杂度、加入 L1 或 L2 正则化、使用交叉验证选择超参数、进行特征选择、对决策树进行剪枝、使用早停、检查数据泄漏和标签错误等。