机器学习基础(监督/无监督/评估)

共 20 题
📑 题目列表 20 题
#
★★★

1. 监督学习、无监督学习、半监督学习与强化学习的区别是什么,各自典型任务(分类/回归/聚类/决策)是什么?

监督学习、无监督学习、半监督学习与强化学习之间的区别是什么?它们各自的典型任务(分类、回归、聚类、决策等)是什么?

  • 四种学习范式对"标签"的依赖程度
  • 各范式对应的典型任务与算法
  • 训练数据与目标函数的形式差异

监督学习依赖带标签的样本,目标是学习输入到输出的映射,典型任务包括分类(离散标签)与回归(连续值),常见算法有逻辑回归、SVM、决策树、神经网络。无监督学习没有标签,目标是从数据中发现结构,典型任务包括聚类(K-Means、DBSCAN)、降维(PCA)、关联规则与密度估计。半监督学习利用少量有标签样本加大量无标签样本,通过伪标签或一致性正则化提升性能,常用于标注成本高的场景。强化学习则通过智能体与环境交互,依据奖励信号(reward)学习决策策略,目标是最大化累积回报,典型任务有游戏、机器人控制、路径规划;其核心是"探索-利用"权衡与马尔可夫决策过程(MDP)。四者的根本区别在于反馈形式:监督/无监督依赖静态数据集,强化学习依赖与环境动态交互的奖励信号。

面试中应抓住"标签/反馈来源"这一主线来区分。监督学习需要正确标签,无监督不需要标签,半监督介于两者之间,强化学习用延迟的奖励而非即时标签。这决定了各自适用的问题形态与数据成本。

#
★★★

2. 过拟合与欠拟合的成因与表现是什么,训练集/验证集/测试集为什么必须严格分离?

过拟合与欠拟合的成因与具体表现是什么?训练集、验证集、测试集为什么要严格分离?

  • 过拟合与欠拟合的定义、成因与表现
  • 三数据集各自的作用
  • 数据泄漏与"测试集污染"的危害

欠拟合指模型过于简单或训练不足,无法捕捉数据中的规律,表现为训练误差与验证误差都很高。过拟合指模型过于复杂,在训练集上表现很好(训练误差低)但泛化到新数据差(验证/测试误差高),根因是模型记住了训练集中的噪声与特定模式,而非学到通用规律。训练集用于训练模型参数;验证集用于调超参数、早停与模型选择;测试集只在最终评估时使用一次,用于估计真实泛化能力。三者必须严格分离:如果验证集参与调参,其评估结果就是有偏的;如果测试集被反复使用或在调参/特征选择时被"看到",就发生了数据泄漏,测试误差会被低估,无法反映真实部署性能。

过拟合的本质是"模型容量超过数据有效信息量",欠拟合则相反。区分训练/验证/测试是评估方法论的核心:任何信息只要参与了建模决策,就变成了"训练信息",因此测试集必须保持"完全未知"直到最终评估。

#
★★★

3. L1 与 L2 正则化、Dropout、早停分别如何缓解过拟合,为什么 L1 会产生稀疏解而 L2 不会?

L1 与 L2 正则化、Dropout、早停分别通过什么机制缓解过拟合?为什么 L1 正则化会产生稀疏解而 L2 不会?

  • 四种正则化手段的机制
  • 稀疏解与 L1 几何解释
  • 正则化与偏差-方差权衡的关系

L1 正则化在损失函数中加入参数绝对值之和 λΣ|w|,L2 加入参数平方和 λΣw²,两者都惩罚过大的权重以得到更简单的模型。Dropout 在训练时随机丢弃一部分神经元,迫使网络不过度依赖单个神经元,相当于隐式集成了多个子网络。早停在验证误差不再下降而开始上升时停止训练,避免模型在训练集上"过拟合后期"。L1 产生稀疏解的原因在于其惩罚项在 w=0 处不可导(尖点),优化时最优解更容易落在坐标轴上,使部分权重恰好为 0;而 L2 的惩罚项是平滑的二次函数,梯度随 w 线性减小,倾向于把权重整体压小但不归零。因此 L1 常用于特征选择,L2 常用于控制权重幅值、提升数值稳定性。

从几何角度,L1 的约束区域是菱形(凸多面体),与等高线相切时切点常落在顶点上即坐标轴,从而产生稀疏;L2 的约束区域是球形,切点通常不在坐标轴上,故不稀疏。L1 一方面起到了正则化作用,另一方面天然实现了特征选择。

#
★★★

4. 偏差-方差分解的含义是什么,模型复杂度与泛化误差的关系曲线为什么呈 U 形?

偏差-方差分解(bias-variance decomposition)的含义是什么?为什么模型复杂度与泛化误差的关系曲线呈 U 形?

  • 偏差与方差的定义
  • 泛化误差 = 偏差² + 方差 + 噪声
  • 模型复杂度与偏差/方差此消彼长的关系

偏差(bias)衡量模型预测值与真实值之间的系统性差异,反映模型假设与真实规律的不匹配程度;方差(variance)衡量模型在不同训练集上预测的波动程度,反映模型对训练数据变化的敏感度。泛化误差可分解为偏差² + 方差 + 不可约噪声。当模型过于简单(欠拟合)时,偏差大、方差小,误差主要来自偏差;当模型过于复杂(过拟合)时,方差大、偏差小,误差主要来自方差。因此随模型复杂度增大,偏差单调下降、方差单调上升,二者之和在中间某处达到最小,形成 U 形曲线。这解释了为什么存在"最优复杂度"——需要根据具体数据在偏差与方差之间取得平衡。

偏差-方差权衡是理解正则化与模型选择的统一框架。加正则化、剪枝、早停、Dropout 都是在"增加偏差、降低方差"的方向上移动,从而找到泛化误差最小的复杂度点。U 形曲线说明并非模型越复杂越好。

#
★★★

5. 准确率、精确率、召回率、F1 与 AUC-ROC 分别适合什么场景,类别不平衡时为什么不能只看准确率?

准确率、精确率、召回率、F1 与 AUC-ROC 分别适合什么场景?类别不平衡时为什么不能只看准确率?

  • 各评估指标的定义与公式
  • 类别不平衡场景下的指标选择
  • AUC 的阈值无关性

准确率(Accuracy)= (TP+TN)/总数,适合类别大致均衡时。精确率(Precision)= TP/(TP+FP),衡量预测为正例中真正例的比例,适合"误报代价高"的场景(如垃圾邮件误判、推荐系统);召回率(Recall)= TP/(TP+FN),衡量真正的正例中被成功找出的比例,适合"漏报代价高"的场景(如癌症筛查、欺诈检测)。F1 是精确率与召回率的调和平均,适合两者都重要的场景。AUC-ROC 衡量模型在不同阈值下真正例率与假正例率的关系,是阈值无关的整体排序能力指标,适合评估模型整体区分能力。类别不平衡时准确率会失真:例如 99% 负例、1% 正例,即便全预测为负例准确率也高达 99%,但实际毫无检测能力。因此需关注精确率/召回率/F1 或 AUC 等对正例敏感的指标。

指标选择取决于"错判代价"与类别分布。精确率与召回率的取舍往往是核心矛盾(如搜索引擎中召回率提升会引入更多噪声),F1 通过调和平均兼顾两者。AUC 由于基于排序与阈值无关,特别适合类别不平衡与阈值不固定的场景。

#
★★★

6. K 折交叉验证与留一法为什么比单次划分更可靠,如何用交叉验证选择超参数并防止数据泄漏?

K 折交叉验证与留一法为什么比单次划分更可靠?如何用交叉验证选择超参数并防止数据泄漏?

  • K 折交叉验证与留一法原理
  • 交叉验证选超参数流程
  • 数据泄漏在此过程中的来源

单次划分只使用一次随机划分,结果受数据划分方式影响大、方差高。K 折交叉验证把数据分成 K 份,轮流用 K-1 份训练、1 份验证,重复 K 次后取平均,更充分利用数据且结果更稳定。留一法(LOO)是 K=N 的特例,每次只留一个样本验证,偏差最小但计算量巨大,适合小数据。用交叉验证选择超参数时,应在每个参数组合下运行 K 折交叉验证,取平均验证误差最小的参数。防止数据泄漏的关键是:任何基于验证集/测试集信息的预处理(如标准化、缺失值填充、类别编码、特征选择)都必须在每折内、只用该折训练集计算统计量,再应用到验证集;不能在整体数据上做预处理后再划分,否则验证集信息被"泄漏"进训练过程,导致评估偏乐观。

交叉验证的核心是"用数据本身评估泛化能力",比单次划分更充分地利用数据。泄漏的常见元凶是:在划分前对整个数据集做标准化/填充/特征选择,或超参数调优时反复使用同一测试集。正确做法是构建"特征工程 → 切分 → 归一化"的流水线,并确保归一化参数只来自训练折。

#
★★

7. 线性回归的 MSE 损失与逻辑回归的交叉熵损失各有什么特点,为什么分类不用 MSE?

线性回归的 MSE 损失与逻辑回归的交叉熵损失各有什么特点?为什么分类任务不用 MSE 损失?

  • MSE 与交叉熵的数学形式
  • 梯度特性与收敛速度
  • 概率输出与标签的匹配

线性回归的 MSE 损失 L = 1/n Σ(y - y_hat)² 对连续值输出直观且可导,在误差服从高斯分布时等价于极大似然估计。逻辑回归的交叉熵损失 L = -1/n Σ[y·log(p) + (1-y)·log(1-p)] 惩罚预测概率与真实分布之间的差异。分类不用 MSE 的原因有三:其一,逻辑回归输出经过 Sigmoid,MSE 在其两侧梯度接近于 0(梯度饱和),导致学习缓慢;而交叉熵配合 Sigmoid 的梯度形式干净,不会出现饱和。其二,交叉熵是凸的(对逻辑回归),MSE 在 Sigmoid 下非凸,容易陷入局部最优。其三,分类本质是概率分布匹配,交叉熵直接度量分布差异,语义更契合;MSE 假设误差为高斯分布,更适合连续回归。此外多分类常用 Softmax+交叉熵,其梯度计算自然且数值稳定。

本质是"损失函数与输出分布、激活函数是否匹配"。MSE 与线性激活匹配,交叉熵与 Sigmoid/Softmax 匹配。梯度饱和问题使分类用 MSE 收敛慢且易停步,这是选损失函数时最关键的实践考虑。

#
★★

8. 批量梯度下降、随机梯度下降与小批量梯度下降的差异,学习率过大/过小分别导致什么问题?

批量梯度下降、随机梯度下降与小批量梯度下降之间有何差异?学习率过大或过小分别会导致什么问题?

  • 三种梯度下降的更新粒度
  • 收敛与噪声权衡
  • 学习率过大/过小的后果

批量梯度下降(BGD)用全量数据计算梯度,每次更新方向准确、收敛稳定,但计算量大、内存开销高,且易陷入局部最优或收敛慢。随机梯度下降(SGD)每次用一个样本更新,计算快、可跳出局部最优,但噪声大、收敛震荡剧烈。小批量梯度下降(Mini-batch)取折中,用一批(如 32/64/128)样本计算梯度,兼顾方向稳定与计算效率,是深度学习的主流。学习率过大时,参数更新步长太大,可能震荡不收敛甚至发散(损失爆炸);学习率过小时,参数更新缓慢,收敛极慢、易陷入局部最优,且训练时间剧增。实践中常用学习率调度(warmup、衰减)或自适应优化器(Adam)缓解。

三者的本质是"用多少样本估计梯度"的权衡:样本越多梯度越准但越慢,越少越快但噪声越大。学习率是超参数中最敏感的一个,过大/过小都直接导致训练失败,需要结合学习率调度与自适应方法。

#
★★

9. 标准化/归一化、缺失值处理与类别特征编码对模型训练有什么影响,树模型与线性模型有何不同?

标准化/归一化、缺失值处理与类别特征编码对模型训练有什么影响?树模型与线性模型在这些处理上有何不同?

  • 特征预处理的作用
  • 线性模型与树模型对特征尺度的敏感性
  • 类别编码方式的选择

标准化(Z-score)使特征均值为 0、方差为 1,归一化(Min-Max)把特征缩放到 [0,1],能消除量纲差异,使梯度下降收敛更快、避免某特征主导距离计算。缺失值处理方式包括删除、均值/中位数填充、模型插补等。类别特征编码包括 one-hot、标签编码、目标编码等。关键差异在于:线性模型(含神经网络、SVM、KNN)强依赖特征尺度,距离与梯度计算受尺度影响,因此必须标准化/归一化;而树模型(决策树、随机森林、GBDT)基于特征分裂阈值,不依赖尺度,是否标准化几乎不影响结果,且天然能处理缺失值(如 XGBoost 的分裂近似)。类别编码上,树模型可用标签编码(顺序无关紧要),线性模型则需 one-hot 避免人为引入顺序。

核心是"特征尺度对模型是否敏感"。基于距离/梯度的模型必须缩放,基于分裂的树模型不需要。理解了这一点,就能判断哪些预处理对特定模型是必要的,避免过度处理或遗漏。

#
★★

10. K-Means、层次聚类与 DBSCAN 的适用场景,K 值如何用肘部法/轮廓系数选择?

K-Means、层次聚类与 DBSCAN 各自适用于什么场景?K 值如何用肘部法与轮廓系数选择?

  • 三种聚类算法的原理与适用性
  • 对形状、噪声、K 值先验的假设
  • K 值选择方法

K-Means 基于质心、假设簇近似球形且大小相近,适合大规模数据、簇形状规则的场景,但需预先指定 K 且对噪声与离群点敏感。层次聚类通过合并或分裂构建树状结构,适合数据量不大、需要查看聚类层级关系(谱系图)的场景,但计算复杂度高。DBSCAN 基于密度,能识别任意形状的簇并区分噪声点,适合簇形状不规则、含噪声的场景,无需指定 K,但需设定 eps 与 min_samples,且密度差异大的数据效果差。K 值选择上,肘部法绘制"K 对簇内平方和(SSE/惯性)"曲线,找拐点(肘部)处 K 值;轮廓系数计算每个样本与自身簇及最近簇的相似度,介于 [-1,1],值越大聚类质量越好,取使平均轮廓系数最大的 K。

三类算法分别对应"基于质心、基于层次、基于密度"三种思路,各自对数据形状、噪声与 K 先验的假设不同。选哪个取决于数据形态(是否球形、是否有噪声、规模);K 值选择需结合肘部法与轮廓系数,避免主观拍脑袋。

#
★★

11. 决策树的分裂准则(信息增益/基尼系数)是什么,随机森林如何通过样本与特征随机降低方差?

决策树的分裂准则(信息增益、基尼系数)是什么?随机森林如何通过样本与特征随机性来降低方差?

  • 信息增益与基尼系数的定义
  • 决策树分裂准则的比较
  • 随机森林的 Bagging 与随机特征选择

决策树分裂时选择使子节点"纯度"提升最大的特征与阈值。信息增益 = 父节点信息熵 - 加权子节点信息熵,基于 ID3(C4.5 改用增益率),熵 H = -Σp·log(p);基尼系数衡量从节点中随机抽取两个样本属于不同类的概率,值越小越纯,基于 CART。随机森林是 Bagging 的典型实现:每棵树用自助采样(有放回抽样)得到的不同训练子集训练,保证树间差异;同时每个分裂点只从特征集的随机子集(如 sqrt(p))中选最优特征,进一步降低树间相关性。最终对所有树的结果投票/平均。由于每棵树独立且存在随机性,平均后方差显著降低(方差约除以树的数量),同时偏差基本不变,从而提升泛化能力。

分裂准则本质是"纯度度量"的选择,信息增益与基尼系数在多数情况下结果相近。随机森林降低方差的原理是"多个弱相关模型的平均"——独立同分布的多个模型平均可把方差除以 N,但树之间相关,所以通过随机特征子集进一步去相关,使方差降低更有效。

#
★★

12. 类别不平衡的常用处理,重采样、代价敏感学习与 Focal Loss 的取舍是什么?

类别不平衡的常用处理方式(重采样、代价敏感学习、Focal Loss)各自的取舍是什么?

  • 过采样/欠采样/混合采样
  • 代价敏感学习
  • Focal Loss 原理

重采样包括过采样(如 SMOTE 合成少数类样本)、欠采样(随机丢弃多数类样本)与混合采样。过采样能保留信息但可能过拟合与放大噪声,欠采样减少计算量但会丢失多数类信息。代价敏感学习通过给少数类误分类更大的惩罚权重(class weight)调整损失,简单有效但不改变数据分布。Focal Loss 在交叉熵基础上引入调制因子 (1-p_t)^γ,使模型关注难分类的样本,尤其适合目标检测中前景/背景极度不平衡与小目标场景,能自动降低易分类样本的权重。取舍上:重采样直接改变分布、直观但可能扭曲原始分布;代价敏感权重实施简单、适合中小规模;Focal Loss 对"大量易分类负样本"主导梯度的场景最有效,但需调 γ。实践中常组合使用。

三类方法分别从"数据层面""损失层面""样本难易层面"入手。选择取决于数据规模、不平衡程度与任务类型:简单不平衡可用 class weight,极度不平衡且难样本多(如检测)用 Focal Loss,小数据可用 SMOTE。关键是对测试集评估指标(如 F1/AUC)的敏感性。

#
★★

13. Bagging 与 Boosting 的核心差异,随机森林(Bagging)如何降低方差、GBDT/XGBoost(Boosting)如何降低偏差,各自对噪声与异常值的敏感性如何?

Bagging 与 Boosting 的核心差异是什么?随机森林(Bagging)如何降低方差,GBDT/XGBoost(Boosting)如何降低偏差?两者对噪声与异常值的敏感性如何?

  • Bagging 与 Boosting 的并行/串行机制
  • 随机森林降方差、GBDT 降偏差的原理
  • 对噪声与异常值的敏感性

Bagging 让各基学习器并行训练、结果平均,通过降低方差提升性能;Boosting 让各基学习器串行训练、逐步拟合之前模型的残差,通过降低偏差提升性能。随机森林是 Bagging,每棵树在自助采样子集与随机特征子集上训练,多个弱相关模型的平均使方差大幅下降,偏差基本不变。GBDT/XGBoost 是 Boosting,每棵新树拟合前一轮的负梯度(残差),逐轮降低偏差,最终模型偏差很小,但若数据含噪声,Boosting 会过度拟合噪声且对异常值敏感(因为残差迭代会被异常值放大);Bagging 则对噪声更稳健,因为异常值只影响对应子集且被平均稀释。因此高噪声数据上 Bagging 通常占优,低噪声高复杂数据上 Boosting 精度更高。

从偏差-方差框架看,Bagging 是"降方差"策略,Boosting 是"降偏差"策略,二者方向正交。Boosting 对异常值敏感源于其残差迭代机制:异常点产生的大残差会被后续树反复拟合,而 Bagging 的随机子集与平均天然抑制这类影响。

#
★★

14. 数据泄漏的常见来源,目标泄漏、时间泄漏与重复样本在特征与验证集构建中如何产生,如何用时间切分防止?

数据泄漏的常见来源(目标泄漏、时间泄漏、重复样本)在特征与验证集构建中如何产生?如何用时间切分防止?

  • 目标泄漏、时间泄漏、重复样本的定义
  • 特征工程与验证集构建中的泄漏来源
  • 时间序列的时间切分

目标泄漏指特征中包含了目标信息本身,例如用"用户是否购买"预测购买、或使用未来信息(如"次日销量")当特征,导致训练时模型就知道答案。时间泄漏指训练与测试数据的时间跨度重叠,或使用含未来信息的特征(如用当前时刻之后的数据统计的特征),在时间序列中尤其常见。重复样本指同一实体在训练集与验证/测试集中重复出现,使模型记住实体而非学规律,评估偏高。防止方法:特征构建时只使用截至当前时刻的信息(避免未来数据);时间序列按时间顺序切分(训练集早于验证集早于测试集),避免随机切分造成的时间重叠;去重/按实体(如用户 ID)分组切分,避免同实体跨集;先在构建好特征的整体流程上再切分,保证预处理参数只来自训练集。

数据泄漏的本质是"信息时间错位"或"信息重复"。它让训练时的"作弊"信息进入模型,使评估结果偏乐观却无法在真实部署中复现。时间切分是时间序列场景的标准做法,按实体分组切分是用户级数据的标准做法。

#
★★

15. 特征工程基础,数值分箱、交互特征与目标编码各自的风险,特征重要性评估在树模型与线性模型的差异如何?

特征工程中的数值分箱、交互特征与目标编码各自有什么风险?特征重要性评估在树模型与线性模型中有何差异?

  • 数值分箱、交互特征、目标编码的风险
  • 树模型与线性模型的特征重要性度量
  • 特征工程与过拟合

数值分箱(把连续值离散化)可增强模型对非线性关系的表达能力,但分箱过多会引入稀疏与过拟合,分箱边界选择不当会丢失信息。交互特征(如两个特征相乘)能捕捉特征间的协同作用,但盲目生成大量交互特征会带来维度爆炸与过拟合,且线性模型较难自动发现交互。目标编码用目标变量的统计量(如均值)编码类别特征,能有效压缩高基数类别,但极易泄漏目标信息造成过拟合,需配合交叉验证与平滑(加先验)。特征重要性上,树模型基于分裂增益/特征被分裂次数(如 Gini importance、XGBoost gain)度量,天然非线性且能反映交互;线性模型则用系数绝对值或标准化系数衡量,假设线性关系,系数大小受尺度影响,需标准化后比较,且无法反映非线性交互。

特征工程的风险核心是"过拟合与泄漏"。目标编码是最危险的(直接用到目标),必须严格防泄漏;分箱与交互特征需控制复杂度。特征重要性在不同模型上含义不同:树模型是"分裂效果",线性模型是"线性贡献",不可直接混用。

#
★★

16. 学习曲线与验证曲线,如何用它们诊断高偏差/高方差并决定"加数据还是加特征",与正则化调参的关系如何?

学习曲线与验证曲线如何用它们诊断高偏差/高方差,并决定"加数据还是加特征"?这与正则化调参有什么关系?

  • 学习曲线与验证曲线的绘制与判读
  • 高偏差/高方差的诊断
  • 加数据/加特征/加正则化的决策

学习曲线横轴为训练样本量,纵轴为训练误差与验证误差。若训练误差与验证误差都很高且接近(两者随样本量增大趋近),说明高偏差(欠拟合),此时加数据几乎无效,应增加模型复杂度或加特征。若训练误差低而验证误差高且差距大(两曲线不收敛),说明高方差(过拟合),此时加数据有效(曲线会随样本增大而收敛),也可以加正则化、降复杂度。验证曲线横轴为某一超参数(如正则化强度、模型复杂度),纵轴为训练与验证误差,用于选最优超参数。综合来看,正则化调参是"通过增加偏差来降方差"的手段,与"加数据"(降方差)、"加特征"(降偏差)互补,应根据诊断结论选择对应手段。

学习曲线与验证曲线是"诊断-治疗"的决策工具:曲线形态直接告诉你问题是偏差还是方差,从而决定治本手段。高偏差时加数据或正则化都无效,必须加特征/加模型;高方差时加数据或加正则化有效,加特征反而更糟。这是模型迭代的核心方法论。

#

17. 朴素贝叶斯与 SVM 的核心假设与适用边界是什么,什么时候它们比深度模型更合适?

朴素贝叶斯与 SVM 的核心假设与适用边界是什么?什么时候它们比深度模型更合适?

  • 朴素贝叶斯的条件独立假设
  • SVM 的核技巧与最大间隔
  • 与传统方法的适用场景

朴素贝叶斯基于"特征之间条件独立"的强假设,用贝叶斯定理计算后验概率,训练快、内存小、可解释性好,适合高维稀疏文本分类(如垃圾邮件、情感分类)等特征近似独立的场景,即使假设不完全成立也常表现良好。SVM 通过最大间隔分类与核技巧(将数据映射到高维)在高维空间找最优超平面,在样本量中等、维度较高、数据可分或近似可分的场景表现好,对小样本具有较好的泛化能力。相对深度模型,这些传统方法在以下场景更合适:数据量小(深度模型易过拟合)、需要快速训练与部署、可解释性要求高、特征已精心构造(传统方法可以充分利用)。深度模型则需要海量数据与算力,且黑盒、难解释。

适用边界取决于数据量与任务复杂度。朴素贝叶斯胜在"简单高效",SVM 胜在"小样本强泛化"。当数据量小、特征可解释、需要快速上线时,传统方法往往优于深度模型;深度模型在数据丰富、任务复杂(如图像、语音)时才占优。

#

18. 网格搜索、随机搜索与贝叶斯优化的差异,超参数调优与模型选择如何组织?

网格搜索、随机搜索与贝叶斯优化之间有何差异?超参数调优与模型选择应如何组织?

  • 三种搜索策略的原理
  • 搜索效率与维度
  • 调优流程与防泄漏

网格搜索在超参数取值空间上穷举所有组合,原理简单但随超参数个数增多呈指数增长(维度灾难),适合低维小空间。随机搜索按概率随机采样超参数组合,在低维表现接近网格搜索,但在高维空间往往更高效,因为它能覆盖更多不同取值(每个维度取值个数更多)。贝叶斯优化(如 TPE、Gaussian Process)根据历史评估结果构建代理模型,选择"最有希望"的下一组参数,能在少量评估下找到较优解,适合昂贵的目标函数(如深度模型训练)。组织上:先用随机搜索或贝叶斯优化探索大范围,再在小范围精调;每次搜索都需用交叉验证评估并防止数据泄漏(超参数选择所用验证集与最终测试集分离);最终在测试集上只评估一次选定的模型。

三类搜索的本质是"探索效率与计算代价"的权衡。网格搜索简单但低效,随机搜索高维高效,贝叶斯优化用模型指导采样最省评估次数。组织流程强调"先粗后细、交叉验证防泄漏、测试集只评估一次"。

#

19. 机器学习项目全流程(数据清洗、建模、评估、上线、监控)的工程要点是什么,数据与特征质量为何最关键?

机器学习项目全流程(数据清洗、建模、评估、上线、监控)的工程要点是什么?为什么数据与特征质量最关键?

  • 全流程各阶段的工程要点
  • 数据质量的重要性
  • 上线与监控

全流程包括:数据清洗(去重、缺失值处理、异常值处理、类型统一,保证数据一致性与可信度)、建模(特征工程、模型选择、训练与调参)、评估(交叉验证、指标选择、防泄漏)、上线(服务化、推理优化、A/B 测试)、监控(指标监控、数据漂移检测、定期重训)。数据与特征质量最关键的原因:其一,模型学到的规律上限取决于数据质量,数据有噪声、偏差或泄漏时,模型再复杂也无法学到正确规律("garbage in, garbage out");其二,特征工程决定模型能发挥的信息量,好特征往往比复杂模型更有效;其三,数据质量问题的代价是系统性的,会在上线后表现为持续的错误预测,且难以事后修复。因此应把大量精力放在数据清洗、特征工程与质量验证上。

工程上强调"数据主导"。模型只是工具,数据质量决定上线效果。上线前的数据一致性验证、上线后的实时监控与漂移检测,是保证模型长期有效的关键,也是与纯算法研究最大的区别。

#

20. 模型上线后的监控,数据漂移(drift)与概念漂移的检测方法(PSI、KS),监控指标与重训触发机制如何设计?

模型上线后的监控中,数据漂移(drift)与概念漂移分别是什么?如何用 PSI、KS 检测?监控指标与重训触发机制如何设计?

  • 数据漂移与概念漂移的定义
  • PSI、KS 统计量
  • 监控与重训机制

数据漂移(feature/dataset drift)指输入特征分布的在线变化,即特征统计(均值、分布)与训练时不同;概念漂移(concept drift)指输入到输出的映射关系(P(y|x))发生变化,即同样的特征下"正确答案"变了。检测方法:PSI(群体稳定性指数)通过比较特征在当前分布与训练分布的桶内占比差异,衡量特征分布漂移程度,PSI<0.1 稳定、0.1-0.25 有变、>0.25 显著漂移;KS 检验比较两个分布的经验累积分布函数最大差值,用于判断分布是否显著不同。监控指标上,除了预测分布、业务指标(如准确率、点击率)外,还要分桶监控输入特征分布与模型输出分布。重训触发机制通常结合阈值法(如 PSI 超阈值、预测置信度下降、业务指标下滑)与定时重训(如每周)双保险,并人工复核后再重训。

数据漂移针对"输入分布",概念漂移针对"映射关系",两者都反映"模型面对的环境已变化"。PSI/KS 是分布差异的量化工具,监控设计需"特征分布+业务指标+预测分布"多维结合,重训触发要避免过频(成本高)与过少(模型失效)。