机器学习相关面试问题
贝叶斯概率
极大似然估计
判别式和生成式算法各有哪些?区别是什么?
区别:二者最本质的区别是建模对象的不同。
判别式模型的评估对象是最大化条件概率P(Y|X)并对此进行建模;
生成式模型的评估对象是最大化联合概率P(X,Y)并对此进行建模。
判别式模型:线性回归、决策树、支持向量机SVM、kNN、神经网络等;
生成式模型:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA。
集成学习
决策树和随机森林的区别
决策树 + Bagging + 随机特征选择 = 随机森林(bagging,包含CART决策树等)
随机森林可以防止过拟合原因(随机性):
- 产生决策树的样本是随机生成。
- 构建决策树的特征值是随机选取。
- 树产生过程中裂变的时候是选择N个最佳方向中的随机一个裂变的。
Bagging 和 Boosting的区别
- 样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 - 样例权重:
Bagging:使用均匀取样,每个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。 - 预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。 - 并行计算:
Bagging:各个预测函数可以并行生成。
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
随机森林的优缺点
优点:
- 相比于其他算法,在训练速度和预测准确度上有很大的优势;
- 能够处理很高维的数据,不用选择特征,在模型训练完成后,能够给出特征的重要性;
- 可以写成并行化方法;
缺点:在噪声较大的分类回归问题上,容易过拟合。
LDA(Latent Dirichlet Allocation)
隐狄利克雷分布,无监督的主题概率生成模型。输入是文档集合和主题个数,输出是以概率分布的形式呈现的主题,常用于主题建模、文本分类、观点挖掘等多个领域。
三种梯度下降算法区别
- Batch gradient descent(BGD)
可以得到全局最优解,缺点是更新每个参数都需要遍历所有数据,计算量大,还有很多冗余计算,在数据非常大的时候,每个参数的更新(训练速度)都是非常慢的;
2. Stochastic gradient descent(SGD)
以高方差频繁更新,使SGD跳到新的或潜在更优的局部解,但是也使得收敛到局部最优解的过程更加复杂;
4. Mini-batch gradient descent(MBGD)
结合了二者的优点,每次选取N个样本,减少了参数更新的次数,可以达到更加稳定的收敛结果。
查准率(precision)和查全率(recall)
注: 如何绘制ROC曲线?
以真正例率为纵坐标,假正例率为横坐标绘制的曲线。
TPR = TP /(TP + FN)真
FPR = TN / ( TN + FP) 假
排序算法
特征选择
在文本分类中,首先要对数据进行特征提取,特征提取中又分为特征选择和特征抽取两大类,在特征选择算法中有互信息,文档频率,信息增益,卡方检验以及期望交叉熵。
防止过拟合的方法
- dropout
- early-stop
- 减小网络
- Batch Normalization
- data augmentation
- 加入正则化项
- L1正则化:L1优点是能够获得sparse模型,对于large-scale的问题来说这一点很重要,因为可以减少存储空间。缺点是加入L1后目标函数在原点不可导,需要做特殊处理。
- L2正则化:L2优点是实现简单,能够起到正则化的作用。
SVM及其相关问题
为什么引入拉格朗日的优化方法?
将拉格朗日对偶性应用到求解原始问题上,通过求解对偶问题进而求得原始问题的最优解,原因如下:
- 对偶问题往往更容易求解;
- 自然引入核函数,继而推广到非线性分类问题。
为什么选择最大间隔分类器?
- 从数学上考虑,误分类次数和几何间隔存在下列关系,
表示所有样本中最长的向量值,表示几何间隔。
2. 最大间隔求得最优分离超平面,模型的鲁棒性更好,对未知样本的泛化能力最强。
样本失衡对SVM的结果有影响吗?如何解决SVM中样本失衡的问题?
样本失衡会对结果产生影响,分类超平面会靠近样本少的类别。原因:因为使用软间隔最大化,假设对所有类别使用相同的惩罚因子,而优化目标是最小化惩罚量,所以靠近样本少的类别惩罚量少。
解决SVM样本失衡问题的方法:
- 对于不同的类别赋予不同的惩罚因子(C),训练样本越少,C越大。(会偏离原始样本的概率分布)
- 对于样本少的类别,基于某种策略采样。
当样本不均衡时,采用ROC曲线评价分类器的好坏。
SVM如何解决多分类的问题?
- 修改目标函数,将多个分类面的参数求解合并在一个目标函数上,一次性求解。
- One vs Rest:训练时将某类化为一类,其它样本为另一类;假设有k类,那么需要训练k个模型。
SVM适合处理是什么类型的数据?
高维、稀疏、样本少的数据。
SVM为什么对缺失数据敏感?
- SVM没有缺失值处理策略。
- SVM假设样本在一特征空间可分,特征空间的好坏决定了SVM的性能。
- 缺失特征数据影响训练结果。
SVM的损失函数 - hinge loss (合页损失函数)
注: LR loss:
SVM中常用的核函数
- linear:
适用于线性可分、特征数量较多。
- polynomial:
- radial basis function(RBF,径向基函数):
适用于线性不可分时、特征维数少、样本数量均衡、没有先验知识时使用。 - sigmoid:
- Gaussian kernel:
注:linear和RBF的区别:
- 训练速度:参数不同导致训练训练速度不同,linear只有惩罚因子一个参数训练速度快,RBF还需要调节.
- 训练结果:线性核得到的权重能反应出特征的重要性,可以由此进行特征选择。RBF无法解释。
- 训练数据:线性核适合样本特征数 >>样本数量,RBF相反。
LR和SVM的联系和区别
联系:
- 都是判别式模型
- 都是有监督的分类算法
- 如果不考虑核函数,都是线性分类算法。
区别: - LR可以输出概率,SVM不可以
- 损失函数不同,即分类机制不同
- SVM通过引入核函数解决非线性问题,LR主要靠特征构造,必须组合交叉特征,特征离散化等。
- LR中每个样本点都需要参与核计算,计算复杂度高,故不用核函数。
- SVM计算复杂,效果比LR好适用于小数据集;LR相反。
- SVM分类只与分类超平面附近的点相关,LR与所用样本点有关。
- SVM是结构风险最小化,LR则是经验风险最小化。
结构风险最小化就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,减小泛化误差。为了达到结构风险最小化的目的,最常用的方法就是添加正则项。
SVM如何防止过拟合?
通过引入松弛变量