机器学习面试集

1.牛顿下降法和梯度下降法(最速下降法)的速度的比较公式推导

牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。

从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

机器学习面试集红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。

2.解决分类样本不平衡问题

样本不平衡会导致出现以下的问题: 
(1)少数类所包含的信息很有限,难以确定少数类数据的分布,即难以在内部挖掘规律,造成少数类的识别率低; 
(2)很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息,一些跨空间的数据规律就不能被挖掘出来。 
(3)不恰当的归纳偏置系统在存在不确定时往往倾向于把样本分类为多数类。

研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效。

根据个人经验,非平衡数据集的处理与建模,主要可以从一下几个方面进行考虑:

  1. 收集更多的数据。很多时候多收集数据,这是最容易被忽略的方法。

  2. 过采样。抽样处理不平衡数据的最常用方法,基本思想就是通过改变训练数据的分布来消除或减小数据的不平衡。通过增加少数类样本来提高少数类的分类性能 ,最简单的办法是简单复制少数类样本,缺点是可能导致过拟合,没有给少数类增加任何新的信息。改进的过抽样方法通过在少数类中加入随机高斯噪声或产生新的合成样本等方法。 
    3.欠采样。通过减少多数类样本来提高少数类的分类性能,最简单的方法是通过随机地去掉一些多数类样本来减小多数类的规模,缺点是会丢失多数类的一些重要信息,不能够充分利用已有的信息。

  3. 从算法层面所考虑的解决方案 
    (a) 重构训练集的方法。不改变已有算法,而是根据样本的不同错分代价给训练集中的每一个样本赋一个权值,接着按权重对原始样本集进行重构。 
    (b) 引入代价敏感因子,设计出代价敏感的分类算法。通常对小样本赋予较高的代价,大样本赋予较小的代价,期望以此来平衡样本之间的数目差异。 
    (c) 用bagging/ boosting/ ensemble等模型平均的方法。 
    (d) 评价模型的方法。用confusion matrix, AUC/ROC等方法来评估模型。

  4. 特征选择 
    样本数量分布很不平衡时,特征的分布同样会不平衡。尤其在文本分类问题中,在大类中经常出现的特征,也许在稀有类中根本不出现。因此,根据不平衡分类问题的特点,选取最具有区分能力的特征,有利于提高稀有类的识别率

3.判断模型是过拟合还是欠拟合:学习曲线

学习曲线是什么?

学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。

机器学习面试集

当训练集和测试集的误差收敛但却很高时,为高偏差。 
左上角的偏差很高,训练集和验证集的准确率都很低,很可能是欠拟合。 
我们可以增加模型参数,比如,构建更多的特征,减小正则项。 
此时通过增加数据量是不起作用的。

当训练集和测试集的误差之间有大的差距时,为高方差。 
当训练集的准确率比其他独立数据集上的测试结果的准确率要高时,一般都是过拟合。 
右上角方差很高,训练集和验证集的准确率相差太多,应该是过拟合。 
我们可以增大训练集,降低模型复杂度,增大正则项,或者通过特征选择减少特征数。

理想情况是是找到偏差和方差都很小的情况,即收敛且误差较小。