机器(深度)学习算法面试问题(总结加收集)

本文详细总结了机器学习面试中的关键知识点,包括评价指标如精度、查准率、查全率、F1值和AUC,正则化方法L1和L2,交叉熵在二分类和多分类中的应用,欠拟合和过拟合的原因及解决方案,样本不平衡处理方法,以及多种算法的比较,如逻辑回归、SVM、随机森林和GBDT。还涵盖了深度学习中的激活函数、梯度爆炸与梯度消失问题,以及LSTM的优化。最后讨论了生成模型与判别模型的差异和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

机器学习

评价指标

混淆矩阵

混淆矩阵

  • 精度 Accuracy 定义:(TP+TN)/(TP+FN+FP+TN) 即所有分类正确的样本占全部样本的比例

  • 精确率 Precision、查准率 定义:(TP)/(TP+FP) 即预测是正例的结果中,确实是正例的比例

  • 召回率 Recall、查全率 定义:(TP)/(TP+FN) 即所有正例的样本中,被找出的比例

  • F1值 定义:(2 * P * R)/(P + R) Precision和Recall指标有时是此消彼长的,在一些场景下要兼顾精准率和召回率,最常见的方法就是F1-score

  • TPR 真正例率,与召回率相同 定义:(TP)/(TP+FN)

  • FPR 假正例率 定义:(FP)/(TN+FP)

  • ROC曲线

    ROC(Receiver OperatingCharacteristic)“受试者工作特征”,根据学习器预测的结果,把概率阈值从0调到1, 即从刚开始取概率0.1为正例,之后取0.9为正例,从而画出的ROC曲线。

    主要作用:

    1. ROC曲线能很容易的查出任意阈值对学习器的泛化性能影响。
    2. 有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的查全率就越高。最靠近左上角的ROC曲线上的点是分类错误最少的最好阈值,其假正例和假反例总数最少。
    3. 可以对不同的学习器比较性能。将各个学习器的ROC曲线绘制到同一坐标中,直观地鉴别优劣,靠近左上角的ROC曲所代表的学习器准确性最高。

    ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变
    image

  • AUC(Area Under Curve)又称为曲线下面积,是处于ROC Curve下方的那部分面积的大小。
    如果两个模型的ROC曲线发生了交叉,则很难一般性地断言谁优谁劣。在很多实际应用中,我们往往希望把学习器性能分出个高低来。在此引入AUC面积。对于ROC曲线下方面积越大表明模型性能越好,于是AUC就是由此产生的评价指标。

    通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。如果模型是完美的,那么它的AUC = 1,证明所有正例排在了负例的前面,如果模型是个简单的二类随机猜测模型,那么它的AUC = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大,对应的AUC值也会较大。

问:在多分类问题下能不能使用ROC曲线来衡量模型性能?

我的理解:ROC曲线用在多分类中是没有意义的。只有在二分类中Positive和Negative同等重要时候,适合用ROC曲线评价。如果确实需要在多分类问题中用ROC曲线的话,可以转化为多个“一对多”的问题。即把其中一个当作正例,其余当作负例来看待,画出多个ROC曲线。

L1正则和L2正则

  • L1-norm(L1范数)

image

  • L2-norm(L2范数)

image

L1和L2的比较

  • L1正则化就是在 loss function 后面加上L1范数,这样比较容易求到稀疏解。L2 正则化是在 LF 后面加 L2范数 平方,相比L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(不等0)的维度比较多,降低模型的复杂度。
  • 鲁棒性(Robustness):
    概括起来就是L1对异常点不太敏感,而L2则会对异常点存在放大效果
  • 稳定性:
    概括起来就是对于新数据的调整,L1的变动很大,而L2的则整体变动不大。

L1遵从拉普拉斯分布,L2遵从高斯分布

交叉熵

  • 二分类

交叉熵在二分的情况下,模型最后需要预测的结果只有两种情况,对于每个类别我们的预测得到的概率为 p和 1-p 。此时表达式为:
在这里插入图片描述

  • Yi —— 表示样本i的label,正类为1,负类为0

  • Pi —— 表示样本i预测为正的概率

  • 多分类

多分类的情况实际上就是对二分类的扩展:
在这里插入图片描述

  • M ——类别的数量;
  • Yic ——指示变量(0或1),如果该类别和样本i的类别相同就是1,否则是0;
  • Pic ——对于观测样本i属于类别 [公式] 的预测概率。

欠拟合和过拟合

  • 模型⽆法得到较低的训练误差,我们将这⼀现象称作⽋拟合(underfitting)
  • 模型的训练误差远小于它在测试数据集上的误差,我们称该现象为过拟合(overfitting)

为什么会产生欠拟合

  • 模型不够复杂、拟合函数的能力不够,特征维度过少,导致拟合的函数无法满足训练集,误差较大。

如何解决欠拟合

  • 可以增加迭代次数继续训练、尝试换用其他算法、增加模型的参数数量和复杂程度,或者采用Boosting等集成方法。

为什么会产生过拟合

  1. 训练数据中噪音干扰过大
  2. 训练数据太少
  3. 模型参数过多,模型复杂度高
  4. 特征维度过多

如何解决过拟合

  • 增大数据量
  • 降低模型复杂度,使其适合自己训练集的数量级(缩小宽度和减小深度)
  • 减少特征维度(人工定义留多少个feature或者算法选取这些feature)
  • 正则化(留下所有的feature,但对于部分feature定义其parameter非常小
  • 针对神经网络,采用dropout方法
  • early stopping
  • 交叉验证
  • 重新清洗数据

样本不平衡处理方法?

  1. 上采样和下采样

  2. 修改权重(修改损失函数) focalloss

  3. 集成方法:bagging, 类似随机森林、自助采样

  4. 分段逐一训练(举例:正样本10000,负样本1000,将正样本随机分成10份,每份1000,然后拿着负样本的1000与正样本的每一份进行训练,最后进行融合选择)

杂项

最大似然估计(MLE)和最大后验概率(MAP)

区别和联系

最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。

最大似然估计中采样需满足一个很重要的假设,就是所有的采样都是独立同分布的。

最大后验估计是根据经验数据获得对难以观察的量的点估计。与最大似然估计类似,但是最大的不同时,最大后验估计的融入了要估计量的先验分布在其中。故最大后验估计可以看做规则化的最大似然估计。

贪心算法和动态规划的区别和联系

  • 联系
  1. 都是一种递推算法,均由局部最优解来推导全局最优解
  2. 都是分解成子问题来求解,都需要有最优子结构
  • 区别
  1. 贪心:每一步的最优解一定包含上一步的最优解,上一步之前的最优解则不作保留;

    动态规划:全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有的局部最优解

  2. 贪心:如果把所有的子问题看成一棵树的话,贪心从根出发,每次向下遍历最优子树即可(通常这个“最优”都是基于当前情况下显而易见的“最优”);这样的话,就不需要知道一个节点的所有子树情况,于是构不成一棵完整的树;

    动态规划:动态规划则自底向上,从叶子向根,构造子问题的解,对每一个子树的根,求出下面每一个叶子的值,最后得到一棵完整的树,并且最终选择其中的最优值作为自身的值,得到答案

  3. 根据以上两条可以知道,贪心不能保证求得的最后解是最佳的一般复杂度低;而动态规划本质是穷举法,可以保证结果是最佳的,复杂度高

分类模型和回归模型的区别是什么

分类和回归的区别在于输出变量的类型,当然,这个类型的根本而在于损失函数的形式不同

定量输出称为回归,或者说是连续变量预测
定性输出称为分类,或者说是离散变量预测

分类和回归模型的本质是一样的,分类模型可以将回归模型的输出离散化,回归模型也可以将分类模型的输出连续化。

什么是bias和variance

偏差:描述的是预测值(估计值)的期望与真实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值