尚硅谷大模型技术之高频面试题
版本:V2.1.9
核心技术 / 机器学习

机器学习

42 个问题

机器学习基础概念#

Q机器学习的主要分类有哪些?#

按监督方式:

  • 有监督学习:使用带标签数据训练(如分类、回归)。
  • 无监督学习:使用无标签数据,挖掘数据内在结构(如聚类、降维)。
  • 半监督学习:结合少量标签数据和大量无标签数据训练。
  • 强化学习:通过与环境交互,以 “奖励” 机制优化策略。

Q简述验证集和测试集的区别。#

验证集用于调整模型的超参数,并在训练过程中评估其性能;而在训练过程完成并选择了超参数之后,使用测试集来评估模型的最终性能。

数据处理与特征工程#

Q什么是特征工程?包含哪些内容?#

特征工程指的是通过对原始数据的处理、转换和构造,生成新的特征或选择有效的特征,从而提高模型的性能。内容包括:

  • 特征选择:从原始特征中挑选出与目标变量关系最密切的特征,剔除冗余、无关或噪声特征。包括过滤法、包裹法、嵌入法等。
  • 特征转换: 对数据进行数学或统计处理,使其变得更加适合模型的输入要求。包括归一化、标准化、类别编码(独热编码、标签编码)等。
  • 特征构造:特征构造是基于现有的特征创造出新的、更有代表性的特征。包括创建交互特征(如特征乘积)、统计特征(如均值、标准差)、日期时间特征等。
  • 特征降维:在保持数据本质的情况下,减少特征维度,缓解维度灾难、避免过拟合。包括 PCA、LDA、t-SNE、自编码器等方法。

Q特征选择有哪些具体技术?#

过滤法(Filter Method)#

基于统计测试(如低方差过滤、卡方检验、相关系数、信息增益等)来评估特征与目标变量之间的关系,选择最相关的特征。

嵌入法(Embedded Method)#

使用模型本身的特征选择机制(如决策树的特征重要性,L1正则化的特征选择)来选择最重要的特征。

Q归一化和标准化的区别及适用场景?#

归一化:将数据缩放到固定范围(如 [0,1]),公式:

适用:数据分布有明确边界(如图像像素),或模型对输入范围敏感(如 KNN、SVM)。

标准化:将数据转换为均值为 0、标准差为 1 的分布,公式:

其中是平均值,是标准差。

适用:数据分布未知或近似正态分布,适用于线性回归、逻辑回归等模型。

Q类别型变量可以采用哪些编码方式?实际项目中通常采用哪种方式?#

独热编码(One-Hot Encoding):将类别型变量转换为二进制列,常用于无序类别特征。

标签编码(Label Encoding):将类别型变量映射为整数,常用于有序类别特征。

目标编码(Target Encoding):将类别变量的每个类别替换为其对应目标变量的平均值或其他统计量。

频率编码(Frequency Encoding):将类别变量的每个类别替换为该类别在数据集中的出现频率。

在实际项目中,最常见的编码方式是独热编码(One-Hot Encoding),可将类别特征转换为二元向量,消除虚假的顺序关系。

Q如何处理高维特征?#

当特征维度增加时,会导致模型复杂度剧增、计算的复杂度呈指数级增长、过拟合风险升高,这种现象被称为“维度灾难”。

处理高维特征,可以通过特征选择剔除无关特征;采用PCA、LDA或t-SNE等方法对特征进行降维处理;采用正则化技术(L1、L2、弹性网络)约束模型复杂度;还可以选择更适合高维数据的模型,例如 SVM,或者支持特征重要性评估的抗噪声模型(比如随机森林、XGBoost)。

Q数据中有噪声如何处理?#

首先进行噪声检查,比较常见的方法:

距离检测:通过寻找数据集中与其他观测值及均值差距最大的点作为异常点。

聚类方法检测:将类似的取值组织成“群”或“簇”,落在“簇”集合之外的值被视为离群点。

在进行噪声检查后,通常采用分箱、聚类、回归、计算机检查和人工检查结合等方法“光滑”数据,去掉数据中的噪声。

Q在训练模型前,一般会将高度相关的特征去掉,原因是什么?#

去掉高度相关的特征,可以让模型的可解释性更好。

可以提高训练速度。高度相关的特征属于冗余数据,特征多了,就会增加训练的时间。

可以让模型更容易收敛。如果模型中有很多特征高度相关,可能导致即使损失函数本身收敛了,实际上参数却并没有收敛。

Q如何解决数据不平衡问题?#

采样:对小样本加噪声采样,对大样本进行下采样

调整数据权重:对某类数据进行特殊的加权,比如Adaboost

采用对不平衡数据集不敏感的算法

改变评价标准:用AUC-PR来进行评价

采用集成学习:如Bagging、Boosting等方法

考虑数据的先验分布

模型评估与模型选择#

Q什么是过拟合和欠拟合?产生的原因是什么?如何解决?#

过拟合:#

模型在训练集表现好,但测试集表现差(高方差)。

产生原因:模型复杂度过高,训练数据不足,特征过多,训练过长。

解决方法:简化模型或者降维降低模型复杂度,增加训练数据,使用正则化,交叉验证,早停。

欠拟合:#

模型在训练集和测试集表现都很差(高偏差)。

产生原因:模型复杂度不足 ,特征不足,训练不充分,过强的正则化。

解决方法:增加模型复杂度,增加特征或者改进特征工程,增加训练时间,减少正则化强度。

Q什么是正则化?简述其常见类型。#

正则化(Regularization)是一种在训练机器学习模型时,在损失函数中添加额外项,来惩罚过大的参数,进而限制模型复杂度、避免过拟合,提高模型泛化能力的技术。

类型:

  • L1 正则化(Lasso 回归):惩罚参数绝对值之和,使部分参数为 0,实现特征选择。
  • L2 正则化(Ridge 回归):惩罚参数平方和,使参数值普遍较小,提高模型稳定性。
  • ElasticNet:结合 L1 和 L2 正则化,平衡稀疏性和稳定性。

Q什么是交叉验证?有什么作用?#

交叉验证是通过多次划分数据集(训练集 + 验证集),反复进行训练和验证,来评估模型泛化能力的方法,减少数据划分随机性的影响。

通过交叉验证能更可靠地估计型在未知数据上的表现,亦能避免因单次数据划分不合理导致的模型过拟合或欠拟合;在实际工程应用中,通常可以结合网格搜索来确定超参数。

注意:任何基于全局数据分布的操作(如时间序列数据,特征工程特征选择,标准化等)都应该在每折训练集上独立进行,否则会发生数据泄露,严重高估模型性能。

Q常用的交叉验证方法有哪些?#

  • k 折交叉验证:将数据分为 k 份,每次用 k-1 份训练,1 份验证,取平均性能。
  • 留一交叉验证:每次留 1 个样本作为验证集,适用于小数据集。
  • 简单交叉验证(Hold-Out):一次划分训练集和验证集,结果较粗糙。

QK折交叉验证的K如何选择?#

k越大,不一定效果越好,而且越大的k会加大训练时间;

在选择k时,一般需要考虑最小化数据集之间的方差。比如对于2分类任务,如果采用2折交叉验证,即将原始数据集对半分,若此时训练集中都是A类别,验证集中都是B类别,则交叉验证效果会非常差。

Q什么是网格搜索?#

网格搜索(Grid Search)是一种系统化的超参数调优方法,通过遍历预定义的超参数组合,找到使模型性能最优的参数配置。通过自动化调参避免手动试错,提高效率。

网格搜索通常嵌套交叉验证,与交叉验证结合以提高调参的可靠性。

模型求解和优化#

Q有哪些常见的损失函数?常见的损失函数有:#

分类任务损失函数:#
基础二分类#

二元交叉熵(BCE/对数损失):最常用,配合sigmoid输出0-1概率;

拓展(可不记):合页损失(Hinge):SVM专用,不关注概率,只关注分类边界;

多分类:#

多分类交叉熵(CE):配合softmax输出,强制类别互斥(但标签,多选一),常规多分类首选。

多标签交叉熵:配合sigmoid,每个类别独立判断(多标签),适合一个样本对应多个类别的场景。

回归任务损失函数:#

均方误差(MSE):最常用,计算预测真实值之间方差均值。

平方绝对误差(MAE):计算绝对差的均值。

平滑L1损失(Huber):MSE+MAE,小误差使用MSE(平滑),大误差使用MAE(抗异常)。

Q什么是梯度下降法?写出梯度下降法的更新公式。#

梯度下降法(gradient descent)是一种常用的一阶优化方法,是求解无约束优化问题最简单、最经典的方法之一。梯度下降法是迭代算法,基本思路就是先选取一个适当的初始值,然后沿着梯度方向或者负梯度方向,不停地更新参数,最终取到极小值。

这里的是参数取值为时损失函数 的梯度; 是每次迭代的“步长”,被称为“学习率”。

Q什么是BGD、SGD、MBGD?描述各自的优缺点。#

批量梯度下降(Batch Gradient Descent,BGD)#

每次迭代使用全部训练数据计算梯度。

优点:稳定收敛。

缺点:计算开销大。

随机梯度下降(Stochastic Gradient Descent,SGD)#

每次迭代随机选取一个样本计算梯度。

优点:速度快,适合大规模数据。

缺点:梯度更新方向不稳定,优化过程震荡较大,可能难以收敛。

小批量梯度下降(Mini-batch Gradient Descent,MBGD)#

每次迭代使用一小批样本(如32、64个)计算梯度。

平衡了BGD的稳定性和SGD的速度,是最常用的方法。

Q梯度下降法有哪些主要问题?如何解决?#

特征量纲不一致,导致收敛速度慢#

解决方案:通常需要提前对特征进行缩放(如标准化或归一化),以加快收敛速度。

局部极小值、鞍点问题#

可能陷入局部极小值(非全局最优解),或遇到鞍点(梯度为零但非极值点)。

解决方案:使用优化方法,如动量法(Momentum)、自适应优化器(如Adam)或二阶方法(如牛顿法)。

模型评价指标#

Q回归任务的常用评价指标有哪些?#

  • 均方误差(MSE):预测值与真实值差的平方均值。重视大误差惩罚严重错误。
  • 平均绝对误差(MAE):预测值与真实值差的绝对值均值。追求稳健,避免异常值影响。
  • R²(决定系数):衡量模型整体对目标变量的解释能力,越接近 1 越好。

Q分类任务有哪些常用的评价指标?#

  • 准确率(Accuracy):正确预测样本占比。
  • 精确率(Precision):预测为正例的样本中实际为正例的比例。
  • 召回率(Recall):实际为正例的样本中被正确预测的比例。
  • F1 分数:精确率和召回率的调和平均。
  • ROC 曲线与 AUC:ROC 曲线以 FPR 为横轴、TPR 为纵轴,AUC 为曲线下面积,衡量模型区分正负类的能力。全面评估模型整体排序能力,对类别比例不敏感,适合评估和比较模型本身性能。
  • AUC-PR曲线:描述不同阈值下精确率和召回率的曲线,特别适用于高度不平衡的数据(异常检测),此时AUC-PR曲线比ROC曲线更具参考性。

Q如何利用ROC曲线判断模型的好坏?#

从图像上看,ROC曲线越“陡”,即TPR 越高,同时 FPR 越低时,模型的性能就越好。

一般会结合AUC来看:AUC 表示ROC曲线下的面积,用于量化模型性能。AUC值越大,模型区分正负类的能力越强,模型性能越好。AUC值=0.5表示模型接近随机猜测,AUC值=1代表完美模型。

AUC如果小于0.5,说明预测诊断比随机性猜测还差,实际情况中不应该出现这种情况;可能是设置的状态变量标准有误,需要查看设置;对于这种情况,只需要将预测结果翻转就可以得到AUC > 0.5的更好的模型。

KNN#

Q简述KNN算法的原理。#

K近邻算法(K-Nearest Neighbors,KNN)是一种基本的分类与回归方法,属于监督学习算法。其核心思想是通过计算给定样本与数据集中所有样本的距离,找到距离最近的K个样本,然后根据这K个样本的类别或值来预测当前样本的类别或值。

该算法涉及的3个主要因素是:k值选择,距离度量,分类/回归决策(投票/平均)。

QKNN中有哪些距离度量方法?#

常见的距离度量方法有:欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离,除此之外,还可以用余弦相似度来度量两个向量的距离。

在KNN分类任务中,一般采用欧式距离。

Q不平衡的样本会给KNN的预测结果造成哪些问题,有没有什么好的解决方式?#

输入实例的K邻近点中,大数量类别的点会比较多,但其实可能都离实例较远,这样会影响最后的分类。

可以使用权值(weights)来改进,距实例较近的点赋予较高的权值,较远的赋予较低的权值。

线性回归#

Q什么是线性回归?#

线性回归(Linear Regression)是一种用于建模两个或多个变量之间线性关系的统计方法。它通过拟合一条直线(或超平面)来描述自变量(输入特征)与因变量(输出目标)之间的关联,并可用于预测或分析变量间的影响关系。

Q线性回归适用于哪些情况?#

  • 目标变量与特征(自变量)呈线性关系
  • 目标变量满足高斯假设(误差近似正态分布)
  • 特征数量较少,且特征之间相互独立

Q线性回归为什么选择均方误差作为损失函数?#

均方误差是回归任务中最常用的损失函数,均方误差对应了欧氏距离。

  • 均方误差是凸函数,存在全局的唯一最小值,平方项又使损失函数处处可导,便于求解最优参数。
  • 最小二乘法(最小化MSE)的解析解可通过矩阵运算直接求出(如)。
  • 若误差服从正态分布,则均方误差对应极大似然估计,是最优的损失函数。

Q什么是最小二乘法?核心思想是什么?#

基于均方误差(MSE)最小化来进行模型最优参数θ求解的方法称为“最小二乘法”。在线性回归中,最小二乘法就是试图找到一条直线(或超平面),使所有样本到直线(或超平面)上的欧氏距离之和最小;它通过最小化误差的平方和寻找数据的最佳函数匹配。

Q什么是正规方程法?它和最小二乘法的关系是什么?有什么优缺点?#

正规方程法(Normal Equation)是一种用于求解线性回归的解析解的方法。它基于最小二乘法,通过求解矩阵方程来直接获得参数值。最小二乘法是优化思想,正规方程法是解析求解方法。

正规方程法适用于特征数量较少的情况。当特征数量较大时,计算逆矩阵的复杂度会显著增加,此时梯度下降法更为适用。

优点:#

无需迭代,一步求解;无偏估计。

缺点:#
必须计算矩阵的逆,如果不可逆(多重共线性/特征数>样本数),则无法直接求解。就需要先做特征降维/共线性处理;#
时间负责度很高,当特征维度很高的时候,计算非常慢;#
对特征尺度敏感,特征量纲不一致会影响矩阵运算效率,所以要先做标准化归一化。#

Q最小二乘法对比梯度下降法:#

逻辑回归#

Q什么是逻辑回归?它主要用于分类还是回归?#

逻辑回归(Logistic Regression)是一种用于解决分类问题的统计方法,尤其适用于二分类问题。尽管名称中有“回归”,但它主要用于分类任务。

Q逻辑回归和线性回归有什么关系?有什么区别?#

逻辑回归通过将线性回归的输出映射到[0,1]区间,来表示某个类别的概率。

常用的映射函数是sigmoid函数:

和线性回归最核心的区别就是任务和输出不同。需要注意的是逻辑回归是线性分类模型,决策边界是线性的,只有输出层适用sigmoid做了非线性映射,然后线性回归的损失函数是MSE,逻辑回归是BCE/CE。

Q为什么逻辑回归要使用sigmoid作为映射函数?#

  • 由广义模型推导所得,满足统计的最大熵模型:采用二元交叉熵损失函数,进行最大似然估计
  • 性质优秀,方便使用:Sigmoid函数是平滑的,而且任意阶可导,一阶二阶导数可以直接由函数值得到不用进行求导,这在实现中计算非常方便

Q为什么逻辑回归用交叉熵损失而不是平方损失(MSE)?#

逻辑回归的损失函数来源于最大似然估计(MLE),用于衡量模型输出的概率分布与真实标签之间的差距。交叉熵损失和sigmoid函数结合使用,有非常好的求导特性:

这个梯度与sigmoid函数值(预测概率值)有关,且真实值与预测值差别越大,梯度越大,更新的速度也就越快。

与之对应,如果用MSE,计算梯度时还需要对sigmoid函数求导;不仅计算复杂,而且由于sigmoid函数导数的范围是(0, 0.25],会导致收敛速度变慢。

Q极大似然估计(MLE)的思想是什么?#

极大似然估计是通过已知观测数据反推最可能生成该数据的模型参数,即使似然函数L(θ∣X)=P(X∣θ)最大化。核心思想是 “已发生的事件概率最大”,广泛用于逻辑回归等模型的参数求解。

Q逻辑回归能否解决非线性分类问题?#

可以,只要使用kernel trick(核技巧)。需要注意的是此时逻辑回归依然是一个线性模型,因为它的决策边界在高维空间体现为一个超平面,映射到低维空间就是一个非线性的决策边界。

通过特征变换的方式从低维空间映射到高维空间,从而使得在低维空间线性不可分的数据,在高维空间中线性可分。具体方法就是利用核函数,如:高斯核,多项式核等等。

Q逻辑回归如何进行多类别分类任务。#

逻辑回归通常用于二分类问题,但可以通过一对多(One-vs-Rest,OvR)以及Softmax回归(Multinomial Logistic Regression,多项逻辑回归)来扩展到多分类任务。

一对多(OVR)#

若有C个类别,则训练C个二分类逻辑回归分类器。

每个分类器将一个类别作为正例、所有其他类别作为反例;预测时,计算C个分类器的输出概率,选取概率最高的类别。

Softmax回归(多项逻辑回归)#

直接扩展逻辑回归到多分类问题,使用Softmax函数将模型输出转化为概率分布。

只需训练1个逻辑回归模型;预测时用1个模型计算所有类别的概率,选择最大值。

朴素贝叶斯#

Q什么是朴素贝叶斯?#

朴素贝叶斯(naive Bayes)法基于贝叶斯定理+特征条件独立假设的生成式概率分类模型;对于给定的待分类项X,通过学习到的模型最大化后验概率分布,即:在此项出现的条件下各个目标类别出现的概率,将后验概率最大的类作为X所属的类别。训练仅靠统计估计,适配高维稀疏数据(如文本分类)

Q贝叶斯定理的公式及在机器学习中的应用?#

公式:

其中P(Y)为先验概率,P(X∣Y)为似然概率(条件概率),P(Y∣X)为后验概率。

应用:朴素贝叶斯分类器(如垃圾邮件检测)、贝叶斯优化、概率模型推断等。

Q在估计条件概率P(X|Y)时,出现概率为0的情况怎么办?#

采用贝叶斯估计。

先验概率的贝叶斯估计:#
条件概率的贝叶斯估计:#

即引入λ,当λ=1时,就是普通的极大似然估计;λ=1时称为拉普拉斯平滑。