机器学习期末复习资料:老师重点整理版
机器学习期末复习资料:老师重点整理版
0. 使用说明与重点来源
这份资料根据你拍摄的老师重点清单整理,并结合机器学习课程的常见考试方式进行补全。照片中有反光和遮挡,个别词我按课程常见写法修正:PACA 按 PCA 处理,AKSAISZ 按 batch size 处理,K算法按 KNN 和 K-means 分开整理。整体识别置信度为中,核心知识点置信度为高。
复习时不要只背定义,要能判断题目属于分类、回归、聚类、降维还是优化问题。考试中最容易丢分的地方不是概念本身,而是把 KNN 和 K-means 混淆,把逻辑回归当成普通回归,把 PCA 当成分类算法,把准确率当成唯一评价指标。
1. 机器学习总览
机器学习是让计算机从数据中学习规律,再用学到的规律对未知样本进行预测、分类、聚类、降维或决策。传统程序通常是“人写规则,机器执行规则”;机器学习是“人提供数据和目标,机器从数据中学习规则”。
1.1 机器学习基本流程
- 明确任务目标:先判断是分类、回归、聚类、降维、推荐还是异常检测。
- 收集数据:数据可以来自数据库、传感器、日志、图片、文本、表格等。
- 数据预处理:处理缺失值、异常值、重复值和格式不一致问题。
- 特征工程:提取、构造、选择和变换特征。
- 划分数据集:通常划分训练集、验证集和测试集。
- 选择模型:根据任务和数据特点选择算法。
- 训练模型:用训练集拟合模型参数。
- 验证与调参:用验证集选择超参数,例如 K 值、树深度、学习率。
- 测试模型:用测试集评估泛化能力。
- 部署应用:将模型用于真实预测,同时持续监控效果。
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 特征工程过程
- 理解任务目标和业务含义。
- 清洗数据,处理缺失值、异常值和重复值。
- 构造新特征,例如由出生日期得到年龄,由销售额和数量得到单价。
- 编码类别特征,例如独热编码。
- 特征缩放,例如标准化或归一化。
- 特征选择,删除无关特征和冗余特征。
- 特征降维,例如使用 PCA。
- 通过交叉验证检验特征是否真的提升效果。
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 的步骤:
- 选择 K 值。
- 计算待预测样本与所有训练样本之间的距离。
- 找到距离最近的 K 个样本。
- 分类任务采用多数投票。
- 回归任务采用 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 随机森林
随机森林是集成学习方法,由多棵决策树组成。单棵决策树容易过拟合,而随机森林通过多个模型投票或平均,使结果更稳定。
随机森林构建过程:
- 从原始训练集中进行有放回抽样,得到多个训练子集。
- 每个训练子集训练一棵决策树。
- 每棵树在节点划分时随机选择部分特征参与划分。
- 多棵树分别预测。
- 分类任务采用多数投票,回归任务采用平均值。
随机森林的优点是泛化能力强、不容易过拟合、可以处理高维数据、可以评估特征重要性。缺点是模型较大,训练和预测成本比单棵树高,可解释性下降。
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 步骤:
- 预先指定聚类数量 K。
- 随机选择 K 个初始聚类中心。
- 计算每个样本到各中心点的距离。
- 把样本分配给最近的中心点。
- 更新每个簇的中心点。
- 重复分配和更新,直到中心点基本不变或达到最大迭代次数。
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 | 平均绝对误差 | 越小越好 |
| R² | 拟合优度 | 越接近 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 |
需要记住:fit(X, y) 用于训练,predict(X_new) 用于预测,coef_ 是权重或斜率,intercept_ 是截距。
16. 编程题:分类模型基本模板
如果考试不是线性回归,而是要求训练一个分类模型,可以套用下面思路。
from sklearn.datasets import load_iris |
17. 编程题:K-means 和 PCA 简短模板
K-means 聚类示例:
from sklearn.datasets import load_iris |
PCA 降维示例:
from sklearn.datasets import load_iris |
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 判断题
- 机器学习模型的效果只由算法决定,数据质量和特征工程影响不大。
- 监督学习通常需要带标签的数据。
- 逻辑回归主要用于预测连续数值,所以它和线性回归用途基本相同。
- KNN 依赖距离计算,因此不同特征量纲差异很大时,通常需要标准化或归一化。
- 决策树通常不依赖距离计算,因此一般不强制要求标准化。
- PCA 降维完全不会造成信息损失。
- SVM 可以通过核函数处理非线性分类问题。
- 准确率越高,模型一定越适合实际应用。
- L2 正则化可以限制参数过大,从而缓解过拟合。
- K-means 属于监督学习,因为它会把样本分成不同类别。
- 梯度下降在所有机器学习模型中都一定能找到全局最优解。
- 交叉验证可以更稳定地评估模型泛化能力,也常用于选择超参数。
- batch size 越大越好,因为每次使用的数据越多,模型一定泛化越强。
- 随机森林属于集成学习,它由多棵决策树组成。
- 深度学习一定优于传统机器学习,因此任何数据集都应该优先使用深度学习。
20.2 单选题
-
下列任务最典型属于分类问题的是哪一项?
A. 预测明天最高气温 B. 判断肿瘤是良性还是恶性 C. 预测房屋价格 D. 预测某商品月销量 -
下列任务最典型属于回归问题的是哪一项?
A. 预测房价 B. 判断邮件是否为垃圾邮件 C. 对客户进行分群 D. 将图片分为猫和狗 -
下列算法中,通常属于无监督学习的是哪一项?
A. 逻辑回归 B. SVM C. K-means D. 朴素贝叶斯 -
PCA 的主要作用是下列哪一项?
A. 分类 B. 降维 C. 生成标签 D. 增加样本数量 -
KNN 对标准化敏感的主要原因是下列哪一项?
A. KNN 使用神经网络训练 B. KNN 使用决策树分裂 C. KNN 依赖样本间距离 D. KNN 只能处理文本数据 -
在 SVM 中,支持向量指的是下列哪一类样本?
A. 所有训练样本 B. 被错误分类的样本 C. 离分类边界最近并决定边界的样本 D. 测试集中的样本 -
过拟合的典型表现是下列哪一项?
A. 训练集差,测试集也差 B. 训练集好,测试集差 C. 训练集差,测试集好 D. 训练集和测试集都完全一样 -
梯度下降更新参数时,一般沿哪个方向更新?
A. 正梯度方向 B. 随机方向 C. 负梯度方向 D. 与梯度无关的方向 -
CART 决策树常用的划分指标是哪一项?
A. 余弦相似度 B. 欧氏距离 C. 方差贡献率 D. 基尼指数 -
朴素贝叶斯中“朴素”的主要含义是哪一项?
A. 假设特征在类别条件下相互独立 B. 模型没有参数 C. 模型不需要训练数据 D. 只能用于回归 -
在类别极不平衡的数据中,只看准确率可能产生什么问题?
A. 准确率无法计算 B. 模型训练会停止 C. 可能掩盖少数类识别效果差的问题 D. 一定导致欠拟合 -
随机森林降低过拟合风险主要依靠哪种思想?
A. 只训练一棵很深的树 B. 多棵树集成,并引入样本随机和特征随机 C. 不使用训练集 D. 不使用任何特征 -
选择 K-means 中 K 值的常见方法是下列哪一项?
A. 肘部法和轮廓系数 B. Sigmoid 函数 C. 梯度消失法 D. 贝叶斯公式 -
Sigmoid 函数的输出范围通常是下列哪一项?
A. 负无穷到正无穷 B. 0 到 1 C. -1 到 1 D. 只能输出整数 -
验证集的主要作用是下列哪一项?
A. 最终报告模型性能 B. 直接替代训练集 C. 选择模型和调整超参数 D. 删除全部异常值
20.3 多选题
-
下列哪些算法通常可以用于分类任务?
A. 逻辑回归 B. KNN C. SVM D. 决策树 E. 随机森林 F. 朴素贝叶斯 -
下列哪些因素会影响 KNN 的效果?
A. K 值大小 B. 距离度量方式 C. 是否进行标准化 D. 噪声和异常值 E. 特征是否有效 -
下列关于 PCA 的说法,正确的有哪些?
A. PCA 是常见降维方法 B. PCA 一般属于无监督学习 C. PCA 可用方差贡献率衡量信息保留程度 D. PCA 完全不会损失信息 E. PCA 不是分类算法 -
下列哪些方法可以缓解过拟合?
A. 增加数据 B. 正则化 C. 决策树剪枝 D. 早停 E. 特征选择 F. 无限增加模型复杂度 -
下列哪些是分类任务常见评价指标?
A. Accuracy B. Precision C. Recall D. F1-score E. AUC F. MSE -
下列哪些方法有助于缓解深度学习中的梯度消失?
A. 使用 ReLU 或 Leaky ReLU B. 使用 Batch Normalization C. 使用残差连接 D. 合理初始化参数 E. 一定使用更小的数据集 -
下列哪些模型通常不强制要求标准化?
A. 决策树 B. 随机森林 C. KNN D. K-means E. SVM -
下列哪些属于聚类算法或聚类方法?
A. K-means B. 层次聚类 C. DBSCAN D. 高斯混合模型 E. 线性回归 -
下列哪些属于特征工程或数据预处理的内容?
A. 缺失值处理 B. 异常值处理 C. 类别编码 D. 标准化 E. 特征选择 F. PCA 降维 -
下列关于正则化的说法,正确的有哪些?
A. 正则化可以缓解过拟合 B. L1 正则化可能使部分参数变为 0 C. L2 正则化通常会让参数变小 D. 正则化越强越好 E. 正则化过强可能导致欠拟合
20.4 简答题
- 简述机器学习的基本思想,并说明监督学习、无监督学习、半监督学习和强化学习的区别。
- 解释分类、回归、聚类和降维的区别,并各举一个例子。
- 简述 KNN 算法的基本流程,并说明 K 值过大和过小分别可能带来什么问题。
- 简述 SVM 的核心思想,并说明它为什么可以处理非线性分类问题。
- 什么是过拟合和欠拟合?分别有哪些常见解决方法?
- 什么是特征工程?请说明常见步骤、应用和优缺点。
- 简述随机森林的构建步骤,并说明它相比单棵决策树的优势。
- 为什么在类别不平衡的数据中,不能只看准确率?请结合例子说明。
20.5 编程题
- 给定一组一维数据
X = [[1], [2], [3], [4], [5]],目标值y = [3, 5, 7, 9, 11],请使用 sklearn 写出线性回归训练、输出斜率和截距、预测X_new = [[6]]的代码。 - 使用鸢尾花数据集训练一个 KNN 分类模型,要求包括加载数据、划分训练测试集、标准化、训练模型、预测并输出准确率。
- 使用鸢尾花数据集做 K-means 聚类,要求先标准化,再设置
n_clusters=3,输出每个样本的聚类标签。 - 使用鸢尾花数据集做 PCA 降维,要求先标准化,再降到 2 维,输出降维后的数据形状和方差贡献率。
20.6 综合应用题
- 某医院有 10000 条体检数据,其中真正患某疾病的人只有 100 人。一个模型把所有人都预测为健康。请分析这个模型的准确率是否高,为什么这个模型仍然不可用,应该关注哪些指标。
- 某电商平台希望把用户分成不同消费群体,但没有提前标注每个用户属于哪一类。请说明这是分类还是聚类问题,可以选什么算法,数据预处理时要注意什么。
- 某模型训练集准确率为 99%,测试集准确率为 70%。请判断可能出现了什么问题,并给出至少 4 种改进方法。
21. 自测题答案与解析
21.1 判断题答案
- 错。算法只是一个因素,数据质量、特征工程、训练方式、参数选择和评价指标都会影响模型效果。
- 对。监督学习使用带标签样本学习输入到输出的映射。
- 错。逻辑回归主要用于分类,尤其是二分类;线性回归主要用于预测连续数值。
- 对。KNN 使用距离判断邻近样本,尺度大的特征会不合理地主导距离。
- 对。决策树按阈值划分特征,通常不像 KNN、SVM 那样依赖特征尺度。
- 错。PCA 降维会舍弃部分方向的信息,保留主成分越少,信息损失风险越高。
- 对。SVM 可以借助核函数处理非线性可分问题。
- 错。类别不平衡时,准确率可能很高但少数类识别很差。
- 对。L2 正则化通过惩罚参数平方,使参数更小、更平滑。
- 错。K-means 没有标签参与训练,属于无监督聚类。
- 错。非凸问题中可能陷入局部最优、鞍点或震荡。
- 对。交叉验证能减少单次划分带来的偶然性,并用于超参数选择。
- 错。batch size 过大可能占用显存高,也不一定带来更好的泛化。
- 对。随机森林通过多棵决策树投票或平均进行预测。
- 错。深度学习需要大量数据和算力,可解释性较弱,小数据结构化任务未必优于传统方法。
21.2 单选题答案
- B。肿瘤良恶性是离散类别判断,属于分类。
- A。房价是连续数值,属于回归。
- C。K-means 不使用标签,属于无监督聚类。
- B。PCA 的主要作用是降维,同时尽量保留主要信息。
- C。KNN 依赖距离,尺度差异会直接影响最近邻选择。
- C。支持向量是靠近分类边界、决定最大间隔超平面的样本。
- B。训练集好但测试集差,是过拟合的典型表现。
- C。梯度下降通常沿负梯度方向更新参数,使损失减小。
- D。CART 常用基尼指数进行划分。
- A。朴素贝叶斯的核心假设是特征条件独立。
- C。多数类占比很大时,模型只预测多数类也可能得到高准确率。
- B。随机森林通过样本随机和特征随机训练多棵树,降低单棵树过拟合风险。
- A。K-means 常用肘部法和轮廓系数选择 K。
- B。Sigmoid 输出范围是 0 到 1,可解释为概率。
- C。验证集主要用于模型选择和超参数调整,测试集用于最终评估。
21.3 多选题答案
- A、B、C、D、E、F。六个选项都可以用于分类任务。
- A、B、C、D、E。KNN 对 K 值、距离、尺度、噪声和特征质量都敏感。
- A、B、C、E。D 错,PCA 降维可能损失信息。
- A、B、C、D、E。F 错,无限增加复杂度通常会加重过拟合。
- A、B、C、D、E。F 是回归指标,不是分类指标。
- A、B、C、D。E 错,数据更少通常会增加过拟合风险,也不能解决梯度消失。
- A、B。决策树和随机森林一般不强制要求标准化。KNN、K-means、SVM 通常更依赖尺度。
- A、B、C、D。线性回归是回归算法,不是聚类算法。
- A、B、C、D、E、F。这些都属于数据预处理或特征工程范围。
- A、B、C、E。D 错,正则化过强会导致欠拟合。
21.4 简答题参考答案
-
机器学习是通过数据训练模型,使计算机从样本中学习规律,并对未知数据进行预测、分类、聚类或决策。监督学习使用带标签数据,常用于分类和回归;无监督学习使用无标签数据,常用于聚类和降维;半监督学习结合少量有标签数据和大量无标签数据,适合标注成本高的任务;强化学习通过奖励信号学习最优策略,常用于游戏、机器人控制和自动驾驶。
-
分类预测离散类别,例如判断邮件是否为垃圾邮件;回归预测连续数值,例如预测房价;聚类是在没有标签时把相似样本分到同一组,例如客户分群;降维是减少特征数量并尽量保留主要信息,例如用 PCA 把高维特征压缩成二维用于可视化。
-
KNN 的流程是先选择 K 值,然后计算待预测样本与训练样本之间的距离,选出最近的 K 个邻居,分类任务用多数投票,回归任务用平均值。K 过小容易受噪声影响,导致过拟合;K 过大会使分类边界过于平滑,容易欠拟合。
-
SVM 的核心思想是寻找一个最优分类超平面,使不同类别之间的间隔最大。离分类边界最近的样本称为支持向量,它们决定分类边界。SVM 可以通过核函数把原始数据映射到更高维空间,使非线性问题在高维空间中更容易线性划分,因此可以处理非线性分类。
-
欠拟合是模型太简单,训练集和测试集效果都差;可通过增加模型复杂度、增加有效特征、减少正则化、延长训练等方法改善。过拟合是模型过度学习训练数据细节和噪声,训练集好而测试集差;可通过增加数据、数据增强、正则化、特征选择、降低复杂度、交叉验证、早停、Dropout 或剪枝改善。
-
特征工程是将原始数据转化为更适合模型学习的特征的过程。常见步骤包括缺失值处理、异常值处理、类别编码、标准化或归一化、特征构造、特征选择和降维。它可用于房价预测、信用评分、图像识别和推荐系统。优点是提升模型效果、减少噪声、增强泛化能力;缺点是依赖经验、耗时,错误特征可能引入噪声或造成过拟合。
-
随机森林先对训练集进行有放回抽样,生成多个子数据集;然后分别训练多棵决策树;每棵树在节点划分时随机选择部分特征;最后分类任务用多数投票,回归任务用平均值。相比单棵决策树,随机森林更稳定,泛化能力更强,不容易过拟合,还可以评估特征重要性。
-
类别不平衡时,准确率可能被多数类掩盖。例如 1000 个样本中只有 10 个患病,模型全部预测健康也有 99% 准确率,但没有识别出任何患病者。此时应关注召回率、精确率、F1-score、AUC 和混淆矩阵,尤其在疾病检测中,漏诊代价高,召回率非常重要。
21.5 编程题参考答案
线性回归参考代码:
import numpy as np |
KNN 分类参考代码:
from sklearn.datasets import load_iris |
K-means 聚类参考代码:
from sklearn.datasets import load_iris |
PCA 降维参考代码:
from sklearn.datasets import load_iris |
21.6 综合应用题参考答案
-
这个模型准确率为 9900/10000 = 99%,表面上很高,但它把所有患病者都预测为健康,患病类召回率为 0,因此实际不可用。疾病检测中漏诊代价高,不能只看准确率,应关注召回率、精确率、F1-score、AUC 和混淆矩阵。如果任务目标是尽量找出患病者,应优先提高召回率,同时控制误报。
-
这是聚类问题,因为平台没有预先标注用户类别,目标是让模型根据用户行为自动发现群体结构。可以选择 K-means、层次聚类或 DBSCAN。预处理时应处理缺失值和异常值,对消费金额、购买频率、浏览次数等数值特征进行标准化,必要时用 PCA 降维,还要结合业务含义解释每个簇。
-
训练集准确率 99%,测试集准确率 70%,说明模型可能过拟合。改进方法包括增加训练数据、进行数据增强、减少模型复杂度、加入 L1 或 L2 正则化、使用交叉验证选择超参数、进行特征选择、对决策树进行剪枝、使用早停、检查数据泄漏和标签错误等。
