美文网首页
数据挖掘(机器学习)面试问题记录

数据挖掘(机器学习)面试问题记录

作者: Colleen_oh | 来源:发表于2022-04-17 15:19 被阅读0次

    下面记录一些面试常问题目

    1、logistic,损失函数

    逻辑回归算法是分类算法,我们将它作为分类算法使用。有时候可能因为这个算法的名字中出现了“回归”使你感到困惑,但逻辑回归算法实际上是一种分类算法。
    参考:https://www.jianshu.com/p/fa2ed565e16e

    2、sigmoid

    image.png
    参考:https://www.jianshu.com/p/fa2ed565e16e

    3、朴素贝叶斯

    朴素贝叶斯是一种基于贝叶斯定理的简单概率分类器。
    朴素贝叶斯的主要优点有:

    1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。

    2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。

    3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。

    朴素贝叶斯的主要缺点有:

    1)理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

    2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

    3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。

    4)对输入数据的表达形式很敏感。
    参考:https://www.jianshu.com/p/b6e4f80e86ca

    4、attention及其优点

    核心逻辑就是「从关注全部到关注重点」。

    Attention 解决了 RNN 不能并行计算的问题。Attention机制每一步计算不依赖于上一步的计算结果,因此可以和CNN一样并行处理。模型复杂度和CNN、RNN对比,复杂度更小,参数也更少。所以对算力的要求也就更小。
    优点:1、速度快 2、并行计算 3、参数少

    5、说说GBAT与XGboost,说说区别

    GBDT采用了多模型集成的策略,针对残差进行拟合,进而降低模型的偏差和方差。GBDT的思想可以用一个通俗的例子解释,假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。

    GBDT的思想可以用一个通俗的例子解释,假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。

    XGboost的基本思想和GBDT是一样的,都是按照损失函数的负梯度方向提升,其实就是gbdt,只是进行了泰勒二次展开,加了一些正则项。


    原文链接:https://blog.csdn.net/ZYXpaidaxing/article/details/79963319
    参考:(15条消息) GBDT与XGboost小结_星青星晴的博客-CSDN博客
    机器学习算法中 GBDT 和 XGBOOST 的区别有哪些? - 知乎 (zhihu.com)

    6、样本不均衡怎么办

    数据层面:采样,数据增强,数据合成等;
    算法层面:修改损失函数值,难例挖掘等。

    7、过拟合处理方法

    方法主要包括:(1)减少特征维度;(2)正则化,降低参数值。

    具体方法有:

    (1)获取更多数据 :从数据源头获取更多数据;数据增强(Data Augmentation)

    (2)使用合适的模型:减少网络的层数、神经元个数等均可以限制网络的拟合能力;

    (3)dropout ;

    (4)正则化,在训练的时候限制权值变大;

    (5)限制训练时间;通过评估测试;

    (6)增加噪声 Noise: 输入时+权重上(高斯初始化) ;

    (7)数据清洗(data ckeaning/Pruning):将错误的label 纠正或者删除错误的数据。

    (8)结合多种模型: Bagging用不同的模型拟合不同部分的训练集;Boosting只使用简单的神经网络;
    参考:https://zhuanlan.zhihu.com/p/91178024

    8、排序算法

    至少要会一种 python冒泡算法

    https://www.runoob.com/w3cnote/ten-sorting-algorithm.html

    相关文章

      网友评论

          本文标题:数据挖掘(机器学习)面试问题记录

          本文链接:https://www.haomeiwen.com/subject/wdedertx.html