机器学习、深度学习知识点(面试)总结

1、xgboost和gdbt

  • GDBT在优化时只用到一阶导数信息,而XGBoost用的时泰勒展开,同时用到了一阶和二阶信息,并且可以自定义代价函数。损失函数更精确。
  • XGboost用到了正则项,为了防止过拟合。

2、防止过拟合(overfit)的方法

  • 正则化:即在对模型的目标函数(objective function)或代价函数(cost function)加上正则项。
    (L1正则与L2正则)
  • 提前停止迭代:当迭代过程中准确率不再上升时停止,或者是损失函数停止下降的时候。
  • dropout:在每次训练过程中随机将部分神经元的权重置为0,即让一些神经元失效,这样可以缩减参数量。
  • 数据集增广:重采样、加噪音、GAN也可以啊。

3、L1正则与L2正则:

  • L2 正则化公式非常简单,直接在原来的损失函数基础上加上权重参数的平方和。L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况。
  • L1 正则化公式也很简单,直接在原来的损失函数基础上加上权重参数的绝对值。L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。
  • L1和L2的优点可以结合起来,这就是Elastic Net。

4、二叉树(待续…)

5、二分类的评价指标:(准确率、精准率、召回率、混淆矩阵、AUC)

准确率:算法分类正确的数据个数/输入算法的数据的个数。类别不均衡,缺点:特别是有极偏的数据存在的情况下,不适用。
混淆矩阵:二分类问题的混淆矩阵由 4 个数构成。首先我们将二分类问题中,我们关心的,少数的那一部分数据,我们称之为正例(positive)。第 1 个字母表示算法预测正确或者错误,第 2 个字母表示算法预测的结果。
精准率预测为正例的那些数据里预测正确的数据个数。例如,在预测股票的时候,我们更关心精准率。
召回率真实为正例的那些数据里预测正确的数据个数。在预测病患的场景下,我们更关注召回率。
F1 score:精准率和召回率的兼顾指标。
AUC:和 F1 score 差不多,都是综合评价精准率和召回率的指标,只不过绘制 ROC 曲线使用了另外两个此消彼长的指标 。横坐标:假正率(False positive rate, FPR),预测为正但实际为负的样本占所有负例样本的比例;纵坐标:真正率(True positive rate, TPR),这个其实就是召回率,预测为正且实际为正的样本占所有正例样本的比例。

6、数据不平衡问题如何解决

训练集层面:其一、训练集重采样 (re-sampling)方法(增加稀有类训练样本数的上采样 (up-sampling)和减少大类样本数的下采样(down-samplings)使不平衡的样本分布变得比较平衡)。其二、训练集划分方法(大类样本划分为小样本,与稀少样本组合训练,单独训练成多个分类器,最后结合多个这样的分类器)
学习算法层面:分类器集成(boost等) 、代价敏感学习(也就是权值如何分配的问题)和特征选择方法(样本不平衡、特征也会可能不平衡)。

7、KNN 复杂度高,怎么解决?

  • K值较小,则模型复杂度较高,容易发生过拟合,学习的估计误差会增大预测结果对近邻的实例点非常敏感
  • K值较大可以减少学习的估计误差,但是学习的近似误差会增大,与输入实例较远的训练实例也会对预测起作用,使预测发生错误,k值增大模型的复杂度会下降
  • 在应用中,k值一般取一个比较小的值,通常采用交叉验证法来来选取最优的K值

8、LR和SVM的异同点

相同点:
  • LR和SVM都是分类算法
  • 如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
  • LR和SVM都是监督学习算法
  • LR和SVM都是判别模型
  • LR和SVM在学术界和工业界都广为人知并且应用广泛
不同点:
  • 本质上是其loss function不同,LR基于概率理论,SVM基于几何间隔最大化原理
  • 支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)
  • 在解决非线性问题时,SVM采用核函数的机制,而LR通常不采用核函数的方法(每个点都参与计算,计算量太大)
  • ​线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响
  • SVM的损失函数就自带正则,这就是为什么SVM是结构风险最小化算法(所谓结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,从而达到真实误差的最小化。未达到结构风险最小化的目的,最常用的方法就是添加正则项)的原因!!而LR必须另外在损失函数上添加正则项

9、前向传播和反向传播

  • 前向传播:从输入经过各种网络层,得到输出求得损失函数值的过程。
  • 反向传播:通过损失函数值调节网络各层的参数值的过程。求偏导的过程。

10、

11、

12、

待续…

猜你喜欢

转载自blog.csdn.net/weixin_44474718/article/details/93300821