数据挖掘(机器学习)面试问题记录
下面记录一些面试常问题目
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