PCA降维
### PCA 知识点 **定义**:主成分分析(Principal Component Analysis)是一种**无监督线性降维**方法,通过正交变换将原始特征投影到方差最大的若干方向(主成分),实现降维。 **算法流程**: ``` 1. 数据中心化:X' = X - μ 2. 计算协方差矩阵:C = (X'ᵀX')/(n-1) 3. 特征值分解 / SVD:C = VΛVᵀ 4. 取前 k 个最大特征值对应的特征向量作为投影矩阵 5. 降维:Y = X' · Vk ``` **核心特性**: | 特性 | 说明 | |------|------| | 学习类型 | 无监督(不需标签) | | 变换性质 | **纯线性** | | 优化目标 | **最大化方差保留** | | 是否确定性 | ✅ 是(给定输入输出唯一) | | 适用问题 | "高维"(特征多),非"大数据"(样本多) | **PCA 的正则化视角**:k 值本身控制模型复杂度——k 小→约束强→正则化强;k 大→约束弱→正则化弱。 **计算成本**:协方差矩阵 O(n·d²) + 特征分解 O(d³)。100万样本×5000特征直接做 PCA 会非常慢,**不是大数据问题的解**。 **对比**:与神经网络隐藏层降维不同——隐藏层有监督、非线性、针对任务优化;PCA 无监督、线性、保方差。
### Q1 PCA 应对大数据训练? **[判断]** 建立 5000 特征、100万数据的 ML 模型,应用 PCA 降维以有效应对大数据训练。 **答案:错 ✗** **解析**: - PCA 解决的是**高维问题**(特征多,维度诅咒),不是**大数据问题**(样本多,计算/存储压力) - PCA 本身计算成本极高(O(n·d²)+O(d³)),在 100万样本上可能比直接训练还慢 - 大数据应使用:增量/在线 PCA、SGD、特征选择、分布式计算(Spark) **关键区分**:高维(d 大)→ PCA;大数据(n 大)→ 增量/分布式
### Q2 PCA 是确定性算法? **[判断]** PCA 属于确定性算法。 **答案:对 ✓** **解析**: - PCA 流程全部是确定性数学运算:中心化(减法)、协方差矩阵(确定公式)、特征值分解(唯一解)、排序选前 k(确定) - 给定相同输入 → 相同协方差矩阵 → 相同特征值/特征向量 → 相同降维结果 - 对比:K-Means(随机初始化)、随机森林(随机采样)均为非确定性 **注**:特征向量符号可能因 SVD 实现不同而正负翻转,但 v 与 -v 代表同一主轴方向,本质结果一致。
### Q3 k 越大正则化越弱? **[判断]** 用 PCA 降到 k 维作为特征,更高的 k 意味着较少的正则化。 **答案:对 ✓** **解析**: - PCA 降维本身就是一种正则化(约束模型表示能力) - k 小 → 保留特征少 → 模型简单 → **强正则化** - k 大 → 保留特征多 → 模型复杂 → **弱正则化** - 类比 L1/L2 正则、Dropout:都是通过约束容量来防过拟合
### Q4 隐藏层降维 = PCA 降维? **[判断]** 用 PCA 替代神经网络隐藏层做降维,两者输出效果一样。 **答案:错 ✗** **解析**: | 维度 | 隐藏层 | PCA | |------|--------|-----| | 学习类型 | 有监督(有标签) | 无监督 | | 优化目标 | 最小化任务损失 | 最大化方差保留 | | 变换性质 | 线性+非线性 | 纯线性 | | 输出特征 | 任务相关 | 数据主成分 | 隐藏层学到的特征针对分类/回归任务最有用(如猫狗分类学到"耳朵形状");PCA 保留的是最大方差方向(如亮度),可能与任务无关。
聚类算法
### 聚类算法知识点 **定义**:聚类是无监督学习方法,将样本划分为若干簇,使同簇样本相似、异簇样本相异。 **K-Means 算法流程**: ``` 1. 随机初始化 k 个质心 ← 关键:随机! 2. 分配:每个样本归到最近质心 3. 更新:重新计算各簇质心(均值) 4. 重复 2-3 直到收敛 ``` **核心性质**: - **非确定性**:因初始化随机,相同数据可能收敛到不同局部最优 - **目标函数非凸**:存在多个局部最优解 - **应对**:多次运行取最优(n_init=10)、K-Means++ 智能初始化、固定 random_state **聚类 vs 分类**:聚类结果可为每个样本提供 k 维 one-hot 编码(属于簇 i → 第 i 位为 1)。这揭示了"聚类即离散表示学习"的视角。 **算法确定性对比**: | 算法 | 确定性 | 原因 | |------|--------|------| | K-Means | ❌ | 随机初始化 | | PCA | ✅ | 纯数学运算 | | 层次聚类(单链接) | ✅ | 确定性距离 | | SVM | ✅ | 凸优化唯一解 |
### K-Means 是确定性算法? **[判断]** K-Means 属于确定性算法。 **答案:错 ✗** **解析**: - K-Means **初始化质心是随机的**(随机选 k 个点) - 目标函数非凸,有多个局部最优 - 不同初始化 → 不同收敛路径 → 不同最终聚类结果 - 实际工程中通过多次运行(n_init=10)选最佳结果来缓解 **结论**:相同数据可能产生不同聚类 → 非确定性算法。
SVM核方法
### SVM 知识点 **支持向量机(SVM)**:通过最大化分类间隔寻找最优超平面的二分类模型。核技巧(Kernel Trick)将其推广到非线性分类。 **RBF 核(高斯核)**: ``` K(x, x') = exp(-γ · ||x - x'||²) ``` **γ(gamma)参数与模型复杂度**: | γ | 决策边界 | 模型复杂度 | 偏差/方差 | |---|---------|-----------|----------| | 大 | 复杂、扭曲、贴近样本 | 高 | 高方差(过拟合) | | 小 | 平滑、简单 | 低 | 高偏差(欠拟合) | **调参原则**: - **欠拟合**(训练误差高)→ **增大 γ**(让边界更复杂) - **过拟合**(训练好测试差)→ **减小 γ**(让边界更平滑) **其他关键参数**: - C(惩罚系数):大 C → 严惩误分 → 过拟合倾向;小 C → 容忍误分 → 欠拟合倾向 - 求解:凸二次规划,有唯一解(确定性算法) **对比**:SVM 适合中小数据;大规模数据推荐用线性 SVM 或 SGD(如 Pegasos 算法)。
### SVM 欠拟合时减小 γ 能改善? **[判断]** 若 SVM 模型欠拟合,减小核系数(gamma)可以改善。 **答案:错 ✗** **解析**: - 欠拟合 = 模型太简单 → 应**增大** γ(决策边界更复杂、更贴合样本) - 减小 γ 会让边界更平滑、更简单,**反而加剧欠拟合** - 调参方向反了 **记忆口诀**:γ 与复杂度同向——γ↑ 复杂度↑;欠拟合要更复杂 → γ↑。
距离与相似度
### 距离与相似度知识点 **距离度量**衡量样本间差异。常见距离: | 距离 | 公式 | 性质 | |------|------|------| | 欧氏距离 | √Σ(xi-yi)² | 平移/旋转/反射不变 | | 曼哈顿距离 | Σ\|xi-yi\| | 网格路径 | | 余弦相似度 | cos(θ) | 方向相似,无量纲 | | 相关距离 | 1 - ρ(Pearson相关系数) | 无量纲,尺度无关 | **相关系数 ρ**: ``` ρ(X,Y) = Cov(X,Y) / (σx · σy) ``` 内部已除以标准差,**自动消除量纲/尺度影响**,是尺度不变的(scale-invariant)。 **KL 散度(相对熵)**:衡量两分布差异,**不对称**:KL(P\|Q) ≠ KL(Q\|P)。基于 KL 的代价函数(如 t-SNE)也因此不对称。 **t-SNE**:非线性降维可视化方法,代价函数基于 KL(P\|Q),其中 P(高维)、Q(低维)分布不对称,故本质不对称。 **选择原则**: - 特征量纲差异大 → 用余弦/相关系数,或先标准化再用欧氏 - 强调方向相似 → 余弦 - 强调绝对位置 → 欧氏
### 欧氏距离旋转不变? **[判断]** 旋转不变性是欧氏距离的性质。 **答案:对 ✓** **解析**: - 欧氏距离是两点间的直线距离 - 旋转、平移、反射等**刚体变换**不改变两点间距离 - 数学上:||Rx - Ry||² = ||R(x-y)||² = ||x-y||²(因 R 是正交矩阵,RᵀR = I) - 这是欧氏距离作为"几何距离"的基本性质 **应用**:图像识别中,欧氏距离对目标的旋转/平移具有不变性。
### t-SNE 代价函数不对称? **[判断]** t-SNE 的代价函数本质是不对称的。 **答案:对 ✓** **解析**: - t-SNE 代价函数 = KL 散度 KL(P\|Q) - P:高维空间样本相似度分布(高斯) - Q:低维空间样本相似度分布(t 分布) - **KL 散度本身不对称**:KL(P\|Q) ≠ KL(Q\|P) - 因此 t-SNE 代价函数本质不对称 **实际影响**:t-SNE 重排低维点时,对"远距离"误判惩罚大(保局部结构),对"近距离"误判惩罚小——这是其擅长可视化局部簇的原因。
### 相关系数聚类受量纲影响? **[判断]** 用相关系数作为模式相似度度量做聚类,量纲(scale)是影响结果的主要因素。 **答案:错 ✗** **解析**: - Pearson 相关系数 ρ = Cov(X,Y) / (σx·σy) - 内部已除以标准差,**自动消除量纲/尺度影响** - 所以量纲**不是**影响因素 - 真正影响因素是特征间的相关结构(变量间的线性关系) **对比**:欧氏距离受量纲影响大(差 100 倍的特征主导距离),故用欧氏聚类前须标准化。
时序与趋势
### 时间序列知识点 **时间序列分解**:一列按时间排序的数据可分解为四个成分: ``` 时序 = 趋势(Trend) + 季节性(Seasonality) + 周期(Cyclical) + 噪声(Noise) ``` **四个成分**: | 成分 | 定义 | 特征 | |------|------|------| | 趋势 | 数据**总体的统一方向**(上升/下降/平稳) | 长期、缓慢 | | 季节性 | 固定周期内重复的模式(如每年、每周) | 周期固定 | | 周期 | 非固定周期的波动(如经济周期) | 周期不固定 | | 噪声 | 不可预测的随机变动 | 零均值、无法建模 | **关键区别**: - **趋势** ≠ 单调——趋势可以改变方向(先升后降),但代表"总体方向" - **噪声** ≠ 误差——噪声是数据本身的随机性,不可消除,只能平滑 - **季节性** vs **周期**——前者固定周期,后者不固定 **建模目标**:分离出趋势和季节性(可预测),剔除噪声(不可预测)。 **常用方法**:移动平均(提取趋势)、差分(去除趋势转为平稳)、ARIMA、指数平滑。
### 时序中的噪声是什么? **[单选]** 时序背景下,"噪声"指什么? A. 时序数据中不可预测的变动 ✓ B. 数据采集设备的误差 C. 时序的长期趋势 D. 时序的季节波动 **答案:A** **解析**:噪声 = 不可预测、随机的变动,零均值,无法建模。是时序分解中的残差项。区别于趋势(C)、季节(D)这些可建模成分。B 是噪声来源之一,但不是"噪声"的定义。
### 趋势是什么? **[单选]** 时序中"趋势"指什么? A. 数据的随机波动 B. 数据的周期性变化 C. 数据总体的统一方向 ✓ D. 数据的异常值 **答案:C** **解析**:趋势 = 数据总体的统一方向(长期上升/下降/平稳)。不要求单调(可改变方向),但代表总体走势。区别于周期(B)、噪声(A)、异常(D)。 **注意**:本题文件名为"梯度.md"但实际考查"趋势"概念,是术语混淆的常见点。
拟合与过拟合
### 拟合与过拟合知识点 **三种拟合状态**: | 状态 | 训练误差 | 测试误差 | 原因 | |------|---------|---------|------| | 欠拟合 | 高 | 高 | 模型太简单(高偏差) | | 良好拟合 | 低 | 低 | 模型复杂度适中 | | 过拟合 | 极低 | 高 | 模型太复杂(高方差),记忆训练数据 | **偏差-方差权衡(Bias-Variance Tradeoff)**: ``` 总误差 = 偏差² + 方差 + 不可约误差 ``` - 模型简单 → 高偏差低方差(欠拟合) - 模型复杂 → 低偏差高方差(过拟合) **影响 bias-variance 的因素**: 1. **模型复杂度**(多项式次数、网络深度、树深度) 2. **数据量**(小数据更易过拟合) 3. **正则化强度**(λ 大 → 抑制过拟合) **不影响的因素**: - 权重的求解方式(矩阵求逆 vs 梯度下降)→ 只影响"能否找到最优解",不改变最优解本身的偏差/方差 **过拟合应对**:正则化(L1/L2)、Dropout、BatchNorm、数据增强、早停、简化模型、增加数据。
### 小数据集更易过拟合? **[单选]** 为什么在数据集较小时更容易出现过拟合? A. 模型容量自动增大 B. 噪声比例自动升高 C. 数据分布偏移加剧 D. 训练时遇到所有可能特征的可能性降低 ✓ **答案:D** **解析**:小数据 → 模型难以见到全部特征组合 → 学到的是训练样本的"特例"而非"规律" → 在新数据上泛化差(过拟合)。本质是数据不足以支撑模型复杂度。
### 权重求解方式影响过拟合? **[判断]** 学习权重的方式(矩阵求逆 vs 梯度下降)会极大影响过拟合/欠拟合的权衡。 **答案:错 ✗** **解析**: - 求解方式只影响**能否找到最优解**及**计算效率** - 不改变最优解本身的**偏差/方差特性** - 真正影响 bias-variance 的是:模型复杂度、数据量、正则化强度 - 例:线性回归无论用闭式解(求逆)还是梯度下降,最终拟合质量本质相同
### 多项式次数影响过拟合? **[判断]** 多项式回归中,多项式次数会极大影响过拟合/欠拟合权衡。 **答案:对 ✓** **解析**: - 多项式次数 = 模型复杂度/自由度 - 次数低(如 1 次线性)→ 表达能力弱 → 高偏差(欠拟合) - 次数高(如 10 次)→ 表达能力过强 → 高方差(过拟合,曲线剧烈震荡) - 多项式次数是控制 bias-variance 的**直接手段**
ML基础
### ML 基础知识点 **机器学习三要素**:模型(假设空间)、策略(损失函数)、算法(优化方法)。 **学习范式**: - **监督学习**:有标签(分类、回归) - **无监督学习**:无标签(聚类、降维、密度估计) - **半监督学习**:少量标签 + 大量无标签 - **自监督学习**:从数据自身构造标签(如 Word2vec、BERT 的 MLM) **关键概念**: - **表示学习**:让模型自动学习有用特征(深度学习的核心)。深度网络前面层 = 表示学习单元,最后一层 softmax = 分类单元 - **SGD(随机梯度下降)**:用小批量样本近似梯度,**适用于几乎所有可梯度优化的算法**(深度网络、逻辑回归、SVM/Pegasos、线性回归),不仅限深度学习 - **聚类 = 离散表示**:k-means 把样本分到 k 簇,等价为每个样本提供 k 维 one-hot 编码 **集成学习**: - **Bagging**(如随机森林 RF):并行训练多棵树,投票;用随机特征子集降相关性 - **Boosting**(如 GBDT/XGBoost):串行训练,每棵拟合前一棵的残差;**标准 GBDT 用全部特征**,只有 Stochastic Gradient Boosting 才用随机子集 **Bayes 误差**:理论最低误差,由数据本身的不可约噪声决定。实践中常以**人类最优表现**(best expert)作为 Bayes 误差的近似估计。
### 哪个说法不正确? **[单选]** 关于 ML 算法的说法,**不正确**的是: A. 监督/无监督界限模糊(特征vs目标难严格区分) B. 深度网络+softmax 可视为表示学习 + 分类 C. 聚类 = 为每个样本提供 k 维 one-hot 编码 D. **SGD 在逻辑回归、SVM 中作用很有限** ✓(不正确) **答案:D** **解析**:D 错误。SGD 是大规模 ML 的核心算法,不仅用于深度学习,也是逻辑回归、SVM(Pegasos)、线性回归的标准训练方法。A/B/C 都正确:自监督/推荐系统模糊了监督界限;深度网络前面层学表示;聚类结果天然是 one-hot 编码。
### 一元线性回归需要几个参数? **[判断]** 简单一元线性回归需要 2 个参数。 **答案:对 ✓** **解析**:一元线性回归模型 `y = wx + b`,需要 2 个参数:斜率 w(权重)和截距 b(偏置)。
### RF 和 GBDT 都用随机特征子集? **[判断]** 随机森林和 GBDT 都用随机特征子集生成树。 **答案:错 ✗** **解析**: - **随机森林(RF)**:✅ 用随机特征子集(降树间相关性,典型 Bagging) - **标准 GBDT**:❌ 用**全部特征**(串行拟合残差) - 只有 **Stochastic Gradient Boosting**(GBDT 的随机变体)才用随机子集 两者核心差异:RF 并行+随机;GBDT 串行+残差拟合。
### 特征归一化的错误说法? **[单选]** 关于特征归一化,**错误**的是: A. Z-score 标准化对异常值较鲁棒 B. 概率模型(如朴素贝叶斯)不需归一化 C. **特征值差异大时适用线性归一化(Min-Max)** ✓(错误) D. 树模型(决策树/RF)不需归一化 **答案:C** **解析**:Min-Max 归一化 `x' = (x-min)/(max-min)` 对异常值**极敏感**(一个极端值会把其他值压缩到很小区间)。特征值差异大时应优先用 **Z-score 标准化** `x' = (x-μ)/σ`。B/D 正确:概率模型和树模型对量纲不敏感。
### 如何定义人类水平作为 Bayes 误差? **[单选]** 4 位标注者的错误率分别为 0.3%、0.5%、1.0%、1.2%,如何定义"人类水平"作为 Bayes 误差基线? A. 取平均 0.75% B. 取最优 0.3% ✓ C. 取最差 1.2% D. 取中位数 0.75% **答案:B** **解析**:人类水平应取**最优专家的表现**(0.3%)作为 Bayes 误差的近似。因为: - Bayes 误差是理论下限,应取可达的最低值 - 最优专家代表人类能达到的最好水平 - 用它作为基线可判断模型是"欠拟合"还是"已接近理论极限" **应用**:训练误差与 Bayes 误差的差距 = 可避免偏差(avoidable bias)。
ML策略-数据划分
### ML 策略 - 数据划分知识点 **训练/开发/测试集的作用**: | 集合 | 作用 | 是否参与训练 | |------|------|------------| | 训练集 | 学习模型参数 | ✅ 是 | | 开发集(验证集) | 调超参、选模型 | ❌ 否 | | 测试集 | 最终评估泛化能力 | ❌ 否 | **Andrew Ng 的数据划分原则**: 1. **dev/test 必须反映目标分布**(实际部署场景的数据分布) 2. **训练集可以来自不同分布**(只要包含目标分布的信息) 3. dev 和 test 必须**同分布** **为什么这样划分?** - dev 集用于指导优化方向 → 必须和实际应用一致,否则优化方向错误 - test 集用于最终评估 → 必须和实际一致,否则评估失真 - 训练集可以宽松——模型能从相关但不完全相同的数据中学到有用特征 **分布不一致场景示例**: - 训练数据:网上的猫图(清晰、室内) - 目标应用:车载摄像头拍到的猫(模糊、室外、运动) - 正确做法:dev/test 必须用**车载摄像头**数据,训练集可混合网络图+摄像头图 **数据分布偏移类型**:协变量偏移(P(X) 变)、标签偏移(P(Y\|X) 变)、概念偏移。
### 目标分布不同如何划分? **[单选]** 你要训练一个识别汽车前摄摄像头拍到的猫的系统。手头有 100万张网络猫图 + 10万张车载摄像头猫图。如何划分? A. 全部混合后随机划分 B. 全用车载图做训练,网络图做测试 C. **90万网络图 + 8万车载图作训练;剩余 2万车载图作 dev/test** ✓ D. 全部用车载图训练和测试 **答案:C** **解析**: - **dev/test 必须匹配目标分布**(车载摄像头)→ 必须用车载图做 dev/test - 训练集可混合——用 90万网络图 + 8万车载图,既利用大数据又包含目标分布 - 保留 2万车载图作 dev/test(同分布),评估真实泛化能力 **核心原则**:dev/test 反映部署场景;训练集可包含相关但不同的数据。
决策树与集成学习
### 决策树与集成学习知识点 **1. 决策树三大分裂准则** | 算法 | 准则 | 优化方向 | 特点 | |------|------|---------|------| | **ID3** | 信息增益 | **最大化** | 偏向取值多的属性(如 ID 列) | | **C4.5** | 信息增益率 | **最大化** | 用 SplitInfo 惩罚多值属性,纠 ID3 之偏 | | **CART** | 基尼系数 | **最小化** | 二叉树,计算快,scikit-learn 默认 | **信息熵**:`H(D) = -Σ pₖ log pₖ`,不纯度越高熵越大,所需信息量越大。 **信息增益**:`Gain(D,A) = H(D) - Σ |Dᵥ|/|D| · H(Dᵥ)` = 父熵 − 子节点加权熵。 **增益率**:`GainRatio = Gain / SplitInfo`,SplitInfo 衡量属性自身取值数量。 **易错点**:基尼系数和交叉熵是"**最小化**"准则(越小越纯),题目说"最大基尼系数"是错的。 **2. 集成学习两大范式** | 范式 | 代表 | 训练方式 | 主要降低 | 并行性 | |------|------|---------|---------|--------| | **Bagging** | 随机森林 | 树之间独立,有放回采样 | **方差** | 可并行 | | **Boosting** | Adaboost / XGBoost / GBT | 顺序拟合前一棵的残差 | **偏差** | 串行 | **关键区分**: - Boosting(XGBoost/Adaboost/GBT)**降低偏差**,每棵树修正前一棵的错误,**强顺序依赖不可并行** - Bagging(随机森林)**降低方差**,多棵独立树投票/平均,**可并行** - "GBT 总是比随机森林好"是错的——噪声数据上随机森林更稳健 - 总误差 = 偏差² + 方差 + 噪声
### Q1 决策树有哪些常用的启发函数? **[多选]** 决策树有哪些常用的启发函数(分裂准则)? A. 最大信息增益 B. 最大信息增益率 C. 最大基尼系数 D. 最大交叉熵 **答案:A、B**(部分教材可选 A、B、C) **解析**: - **A ✅** ID3 用信息增益,是"最大化"准则 - **B ✅** C4.5 用信息增益率,也是"最大化" - **C ❌(严格)/ 视情况** CART 用基尼系数,但基尼是"**最小化**"准则(越小越纯),说"最大基尼系数"方向反了。若题目泛指"基尼系数是常用准则",部分教材放宽可选 C - **D ❌** 交叉熵同样是"最小化"准则 **记忆**:信息增益/增益率"最大化",基尼/交叉熵"最小化"。
### Q2 关于信息增益的论述哪些正确? **[单选]** 关于"信息增益"的论述:① 较不纯的节点需要更多信息描述;② 信息增益可通过熵推导;③ 信息增益偏向选择大量值的属性。哪些正确? A. 1 B. 2 C. 2 和 3 D. 所有都对 **答案:D** **解析**: - ① ✅ 不纯度越高 → 熵越大 → 所需信息量越大 - ② ✅ 信息增益 = 父熵 − 子节点加权熵,本质基于熵 - ③ ✅ 信息增益偏向取值多的属性(极端例子:ID 列每个样本一类,子节点全纯,增益虚高)——这正是 ID3 的缺陷,C4.5 用增益率修正 **增益率** = 增益 / 固有熵 SplitInfo,惩罚多值属性。
### Q3 随机森林和 GBT 都能并行且 GBT 总更好? **[判断]** 随机森林和 GBT 都可以并行生成单棵树(树之间无依赖),且 GBT 表现总是比随机森林好。 **答案:错 ✗** **解析**:题目含两个错误: 1. **GBT 不可并行**:GBT 是 Boosting,每棵树拟合前一棵的残差,存在强顺序依赖;只有随机森林(Bagging)的树互相独立可并行 2. **"总是更好"太绝对**:噪声数据上随机森林往往更稳健,没有"绝对更好" **记忆口诀**:Bagging 降方差可并行;Boosting 降偏差需串行。
线性模型
### 线性模型知识点 **1. 逻辑回归(Logistic Regression)的本质** 虽然名字带"回归",但它是**分类**模型: - 线性部分 `z = w·x + b` → Sigmoid `σ(z) = 1/(1+e⁻ᶻ)` → 概率 `P(y=1|x) ∈ (0,1)` - 决策边界是线性超平面 `w·x + b = 0` - 损失:交叉熵(非 MSE) - **判别式模型**:直接建模 `P(Y|X)`,无需假设数据分布 **关键性质**: - 既输出类别也输出概率 ✅ - 无需事先假设数据分布 ✅(区别于朴素贝叶斯等生成式模型) - 本质仍是**线性模型** ✅(决策边界线性) - **不是线性回归** ❌(线性回归预测连续值,用 MSE) **2. 对数几率回归 = 单层神经网络** `对数几率回归` ≡ `无隐藏层的单层神经网络`:`Linear(w,b) → Sigmoid`。公式、损失(交叉熵)、优化(梯度下降)完全一致。添加隐藏层即扩展为深度网络。 **3. 线性回归的两种求解** | 方法 | 正规方程 | 梯度下降 | |------|---------|---------| | 公式 | `θ = (XᵀX)⁻¹ Xᵀy` | 迭代 `θ -= α·∇J` | | 复杂度 | `O(n³)`(n=特征数) | `O(m·n)` 每次迭代 | | 适用 | n 小(< 10⁴) | n 大、大规模数据 | | 内存 | 需存 `XᵀX`(n²) | 可分批,内存友好 | **经验**:n > 10⁴ 优先梯度下降。线性回归是凸函数,梯度下降必收敛到全局最优。
### Q1 关于逻辑斯蒂回归的描述哪些正确? **[多选]** 以下关于逻辑斯蒂回归的描述正确的有? A. 可预测类别也可得概率 B. 无需事先假设数据分布 C. 本质仍是线性模型 D. 是线性回归模型 **答案:A、B、C** **解析**: - **A ✅** 输出经 Sigmoid 映射到 [0,1],既给类别(阈值判断)又给概率 - **B ✅** 作为判别式模型直接建模 `P(Y|X)`,不需要数据分布假设(区别于生成式模型如朴素贝叶斯) - **C ✅** 决策边界 `w·x+b=0` 是线性超平面 - **D ❌** 逻辑回归是**分类**任务(交叉熵损失),线性回归是**连续值预测**(MSE 损失),两者不同 **公式链**:线性回归 + Sigmoid = 逻辑回归;+ Softmax = 多分类。
### Q2 可以用神经网络构造对数几率回归? **[判断]** 可以用神经网络去构造对数几率回归。 **答案:对 ✓** **解析**:对数几率回归数学上**等价于一个无隐藏层的单层神经网络**: ``` 线性层 z = w·x + b → Sigmoid 激活 σ(z) = 1/(1+e⁻ᶻ) → 输出概率 ``` 两者公式、损失(交叉熵)、优化(梯度下降)完全一致。添加隐藏层即扩展为深度网络。 **PyTorch 实现**:`Linear(in, 1) + Sigmoid()`。
### Q3 高维数据选梯度下降还是正规方程? **[单选]** 数据集 m=100 万样本、n=20 万特征,多元线性回归应选? A. 梯度下降(正规方程太慢) B. 正规方程(直接求解有效) C. 梯度下降(总能收敛最优) D. 正规方程(梯度下降可能找不到最优) **答案:A** **解析**: - **A ✅** 正规方程 `θ=(XᵀX)⁻¹Xᵀy` 需矩阵求逆,复杂度 `O(n³)`。n=20 万时约 `8×10¹⁵` 运算,且 `XᵀX` 矩阵需约 **160GB 内存**,不可行。梯度下降每次迭代 `O(mn)`,可分批并行 - B ❌ 正规方程在此规模完全不可行 - C ❌ 理由错——线性回归是凸函数,**两种方法都能收敛到全局最优**,不是选梯度下降的理由 - D ❌ 梯度下降在凸问题上能找到最优,理由不成立 **经验**:n > 10⁴ 优先梯度下降。
概率与统计
### 概率与统计知识点 **1. 极大似然估计(MLE)** 通过**最大化似然函数** `L(θ) = ∏ f(xᵢ;θ)` 求解参数 θ。对数似然 `ℓ(θ) = Σ log f(xᵢ;θ)`。 **两大性质(均不保证)**: - **存在性不保证**:如正态分布 σ→0 时似然无界;均匀分布 `U(0,θ)` 在开参数空间最大值取不到 - **唯一性不保证**:混合模型标签对称、参数冗余、多峰似然都会产生多解 **结论**:严格凹似然 → 唯一解;似然无界 → 不存在。 **2. Pearson 相关系数 ρ** 由柯西-施瓦茨不等式限定:**`ρ ∈ [-1, 1]`** - `|ρ| → 1`:强线性相关(+1 正相关,-1 负相关) - `ρ = 0`:无**线性**相关(但可能有非线性关系) - `|ρ| > 1`:**数学上不可能**,数据/计算必有错 **3. 马氏距离 vs 欧氏距离** `d_马 = √((x−μ)ᵀ Σ⁻¹ (x−μ))` | 性质 | 欧氏距离 | 马氏距离 | |------|---------|---------| | 考虑分布(协方差) | ❌ | ✅(用 Σ⁻¹ 归一化) | | 尺度不变性 | ❌(量纲敏感) | ✅(自动归一化) | | 平移不变性 | ✅ | ✅(**两者共有**,非马氏独有) | | 假设各维独立 | 隐含 | 否(刻画变量相关性) | **关键**:马氏距离把"考虑分布"和"尺度不变"作为优点,但"平移不变性"是两者共有的,不是马氏独有优点。
### Q1 关于极大似然估计(MLE)的说法哪些正确? **[多选]** 关于极大似然估计(MLE),下列说法正确的是? A. MLE 可能不存在 B. MLE 总是存在 C. 若存在,解可能不唯一 D. 若存在,解一定唯一 **答案:A、C** **解析**: - **A ✅** MLE 不一定存在:正态分布 σ→0 时似然无界;均匀分布 `U(0,θ)` 在开集参数空间最大值取不到 - B ❌ "总是存在"过于绝对 - **C ✅** MLE 不一定唯一:混合模型标签对称、参数冗余、多峰似然都会产生多解 - D ❌ "一定唯一"过于绝对 **对比**:矩估计总存在但可能不有效;贝叶斯估计总有后验分布。MLE 的存在性与唯一性均需具体分析。
### Q2 相关系数矩阵含 1.23 是否可信? **[判断]** 相关系数矩阵中 3 对变量分别为 -0.98、0.45、1.23,可得出 Var1 与 Var2 非常相关。 **答案:错 ✗** **解析**:Pearson 相关系数由**柯西-施瓦茨不等式**严格限定于 **[-1, 1]**。 - 1.23 **超出取值范围**,数学上不可能 - 说明相关矩阵本身存在计算错误或数据无效,**整个矩阵不可信** - 虽然 -0.98 确实表强负相关,但矩阵含不可能值,无法得出任何可靠结论 **记忆**:`ρ ∈ [-1,1]`,任何 `|ρ| > 1` 都是错误。
### Q3 马氏距离相比欧氏距离的优点? **[判断,共 3 道]** - Q1:马氏距离的优点是考虑了模式的分布 - Q2:优点是尺度不变性 - Q3:优点是平移不变性 **答案**:Q1 **对**;Q2 **对**;Q3 **错** **解析**:马氏距离 `d = √((x−μ)ᵀ Σ⁻¹ (x−μ))` 通过协方差矩阵的逆: - **Q1 ✅** 同时刻画变量相关性(分布信息) - **Q2 ✅** 对量纲做归一化(尺度不变) - **Q3 ❌** "平移不变性"是**马氏距离和欧氏距离共有**的性质(`x+c` 与 `μ+c` 的差向量不变),并非马氏独有优点 **易错点**:平移不变性两者都有,不能算作马氏的"优点"。
评估与特征选择
### 评估与特征选择知识点 **1. 分类评估指标(基于混淆矩阵)** | 指标 | 公式 | 含义 | 适用场景 | |------|------|------|---------| | **准确率 Accuracy** | `(TP+TN)/总` | 整体预测对的比例 | 类别均衡 | | **精确率 Precision** | `TP/(TP+FP)` | 预测为正的,多少真的是正 | 垃圾邮件(重误报) | | **召回率 Recall** | `TP/(TP+FN)` | 真正的正,多少被找出 | 疾病诊断(重漏报) | | **F1** | `2·P·R/(P+R)` | 精确与召回的调和平均 | 类别不均衡 | **2. 回归评估指标** - **RMSE(均方根误差)** = `√(mean((y-ŷ)²))`,对大误差敏感(平方放大) - **MAE** = `mean(|y-ŷ|)`,对异常值鲁棒 - **R²** = 决定系数,越接近 1 越好 **3. 特征选择的信息论方法** **期望交叉熵** `CE = -Σ p(x) log q(x)` 衡量引入特征后类别分布相对先验的偏离,**偏离越大特征越有价值**。与信息增益、互信息同源。 **特征选择方法分类**: - **信息论**:信息增益、期望交叉熵、互信息 - **统计检验**:卡方检验 - **正则化**:L1(Lasso)产生稀疏权重 - **模型内置**:树模型的 feature_importance_
### Q1 哪些指标可用于模型评估? **[多选]** 下列哪些指标可用于模型评估? A. 准确率(Accuracy) B. 精确率(Precision) C. 召回率(Recall) D. 均方根误差(RMSE) **答案:A、B、C、D** **解析**: - **A/B/C ✅** 分类任务核心指标(基于混淆矩阵):Accuracy 整体准确度;Precision 关注误报;Recall 关注漏报 - **D ✅** 回归任务核心指标,对大误差敏感 **适用场景对照**: - 疾病诊断 → 重 **Recall**(宁可误判不能漏) - 垃圾邮件 → 重 **Precision**(宁可放过不能误杀) - 类别不均衡 → 用 **F1** 而非 Accuracy
### Q2 特征选择可能用到期望交叉熵? **[判断]** 机器学习做特征选择时,可能用到期望交叉熵。 **答案:对 ✓** **解析**:期望交叉熵 `CE = -Σ p(x) log q(x)` 衡量**引入特征后类别分布相对先验分布的偏离程度**——偏离越大,特征越有价值。 是文本分类、决策树等信息论类特征选择的常用度量,与信息增益、互信息**同源**。 **其他特征选择方法**:卡方检验、L1 正则、树模型特征重要性。
拟合与偏差方差
### 拟合与偏差方差知识点 **1. 欠拟合 vs 过拟合** | 类型 | 表现 | 原因 | 总误差主导 | 解决方向 | |------|------|------|----------|---------| | **欠拟合** | 训练误差高、测试误差高 | 模型容量不足 | **偏差** | 增大模型/加特征/降正则 | | **过拟合** | 训练误差低、测试误差高 | 模型过复杂 | **方差** | 正则化/加数据/降模型复杂度 | **2. 偏差-方差分解** `总误差 = 偏差² + 方差 + 噪声` - **偏差(Bias)**:模型预测的期望与真实值的差距——模型本身的表达能力 - **方差(Variance)**:不同训练集训练出的模型的预测波动——对训练数据敏感程度 **3. 集成学习如何降偏差/方差** | 范式 | 算法 | 主要降低 | 机制 | |------|------|---------|------| | **Boosting** | XGBoost / Adaboost / GBT | **偏差** | 顺序拟合残差,逐步修正错误 | | **Bagging** | 随机森林 | **方差** | 多棵独立树投票/平均 | **易错**: - 单棵决策树本身是**低偏差高方差**,不存在"降低偏差"的过程 - Adaboost 是 Boosting → 降**偏差**(不是降方差) **4. SVM 对噪声鲁棒的原因** - 只依赖**支持向量**(少数靠近边界的样本)定决策边界 - **最大间隔**原则使边界远离各类点 - 软间隔允许少量误分类,不被个别噪声点拉偏
### Q1 哪些是解决欠拟合的方法? **[多选]** 下列哪些是解决欠拟合的方法? A. 正则化方法 B. 集成学习方法 C. 添加新特征 D. 减少正则化系数 **答案:B、C、D** **解析**:欠拟合 = 模型容量不足(高偏差),需**提升**表达能力: - **B ✅** 集成学习(尤其 Boosting)可提高表达能力 - **C ✅** 添加新特征增加信息量 - **D ✅** 减小正则化系数 λ 让模型更灵活 - **A ❌** 正则化会**进一步限制**模型复杂度,加剧欠拟合(正则化是治过拟合的) **对照**:过拟合才用正则化(增 λ)、减特征、降模型复杂度、加数据。
### Q2 各集成算法降偏差还是方差? **[多选]** 下列叙述正确的有? A. Adaboost 降低方差 B. XGBoost 降低偏差 C. RandomForest 降低方差 D. DecisionTree 降低偏差 **答案:B、C** **解析**: - **B ✅** XGBoost 是 Boosting → 主要降低**偏差**(顺序拟合残差) - **C ✅** RandomForest 是 Bagging → 主要降低**方差**(多树平均) - A ❌ Adaboost 是 Boosting → 降**偏差**(不是降方差,A 说反了) - D ❌ 单棵决策树本身是**低偏差高方差**,不存在"降低偏差"的过程 **记忆**:Boosting 降偏差(XGBoost/Adaboost/GBT);Bagging 降方差(随机森林)。
### Q3 下面哪个说法正确? **[单选]** 下面说法正确的是? A. 梯度下降会陷局部最优但 EM 不会 B. SVM 对噪声鲁棒 C. 训练数据越多越易过拟合 D. n 增大时训练-测试误差差减小 **答案:B** **解析**: - **B ✅** SVM 只依赖支持向量、最大化间隔,软间隔允许少量误分,对噪声鲁棒 - A ❌ EM 也受初始化影响会陷**局部最优**(EM 不保证全局最优) - C ❌ 数据多反而**防过拟合**(更多样本 → 方差降低) - D ❌ 训练-测试误差差主要取决于**模型复杂度**,与样本量 n 关系不固定 **SVM 抗噪本质**:仅支持向量定边界,远离边界的多数点不影响决策面。
降维与聚类补充
### 降维与聚类知识点 **1. PCA(主成分分析)** **目标**:无监督线性降维,找方差最大的若干正交方向(主成分)。 **流程**: ``` 1. 中心化:X' = X - μ ← 必须先减均值! 2. 协方差矩阵:C = (X'ᵀ X')/(n-1) 3. 特征分解 / SVD:C = VΛVᵀ 4. 取前 k 个最大特征值对应的特征向量 Vₖ 5. 降维:Y = X' · Vₖ ``` **PCA 与 SVD 的关系**: - SVD 可对**任意矩阵**分解 `X = UΣVᵀ` - 只有对**零均值数据**做 SVD,才等价于 PCA 的投影 - 不中心化 → 第一主成分会偏向数据中心方向,而非最大方差方向 **2. K-means 聚类** **两步迭代**(EM 思想): 1. **分配步(E)**:每个样本划归到**最近**的簇 `cᵢ = argmin ‖xᵢ - μⱼ‖²` 2. **更新步(M)**:新质心 = 簇内样本**均值** `μⱼ = (1/|Cⱼ|) Σ xᵢ` **收敛条件**:质心不再变化 或 损失变化 < 阈值。 **易错点**: - 质心是簇内**均值**,不是"最近的样本" - 方向是**样本 → 簇**(每个样本分配到一个簇),不是"簇 → 样本" **K 值选择**:手肘法、轮廓系数、Gap statistic。
### Q1 PCA 与 SVD 投影需要零均值? **[判断]** 为了得到和 SVD 一样的投影,PCA 中需要将数据转换成零均值。 **答案:对 ✓** **解析**: - PCA 目标是找**方差最大**的方向,必须先**中心化**(`x' = x - μ`) - 不中心化 → 第一主成分会偏向**数据中心**方向,而非最大方差方向 - SVD 可对任意矩阵分解,但**只有对零均值数据做 SVD,才等价于 PCA 的投影结果** **实现技巧**:PCA 常通过对中心化数据做 SVD 实现(数值更稳定)。
### Q2 K-means 内部循环的两个步骤? **[多选]** K-means 内部循环反复执行的两个步骤是? A. 移动簇中心,更新簇中心 B. 分配簇,其中参数被更新 C. 移动簇中心,将其设置为最近的训练示例 D. 簇中心分配步骤,每个质心被分配到最近的训练示例 **答案:A、B** **解析**:K-means 两步: - **A ✅** 更新步:质心移到簇内均值(更新簇中心) - **B ✅** 分配步:每个样本划归到最近簇(参数=簇标签被更新) - C ❌ 质心应是簇内**均值**,不是"最近的样本" - D ❌ 方向反了——是**样本 → 簇**(每个样本分配到最近质心),不是"质心 → 样本" **记忆**:① 样本找最近质心(分配)② 质心取簇内均值(更新)。
参考