“机器学习中的经典算法”面试知识点总结-SVM+逻辑回归+决策树-百面机器学习系列3

提示:在准备机器学习算法工程师面试的过程中,我主要参考《百面机器学习》去巩固自己的基础知识。本系列博客将以该书为主题,并以八股文的方式去概述整本书的内容,以尽量减少读者们的阅读作量,并方便读者可以随时随地的记忆背诵。
建议:我还是认为读者们可以提前买一本《百面机器学习》,从前到后完全看一遍,然后再看我的博客去记忆背诵会更好些哈。

文章目录

    • 问题1:支持向量机
    • 问题2:逻辑回归
    • 问题3:决策树
    • 问题4:Logistic模型和SVM的补充知识点汇总

问题1:支持向量机

1.在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的的投影仍然是线性可分的吗?
答:对于任意线性可分的两组点,他们在SVM分类的超平面上的投影都是线性不可分的(课本中有详细证明)。
2.凸优化理论中的超平面分离定理:对于不相交的两个凸集,存在一个超平面,将两个凸集分离。对于二维的情况,两个凸集间距离最短的两点连线的中垂线就是一个将他们分离的超平面。
3. 若训练集中不存在两个点在同一位置,则存在一组参数使得SVM训练误差为0。
4. SVM的分类结果仅依赖于支持向量,这也是该算法拥有极高运行效率的关键之一。
5. 在实际训练一个不加入松弛变量的SVM模型时,存在得到的SVM分类器满足训练误差为0.
6. 加入松弛变量后SVM的训练误差可以为0吗? 不一定,因为有时最优解不一定是训练误差为0,也可能是有小的训练误差+较小的参数。 (使用序列最小优化算法(SMO)训练的线性分类器并不一定得到训练误差为0的模型)

问题2:逻辑回归

1.逻辑回归相比于线性回归,有何异同?
1)逻辑回归处理的是分类问题,线性回归处理的是回归问题;逻辑回归中的因变量为离散的,而线性回归中的因变量是连续的;在自变量x与超参数θ确定的情况下,逻辑回归可以看作广义线性模型在因变量y服从二元分布时的一个特殊情况;而使用最小二乘法求解线性回归时,认为因变量y服从正态分布。
2)逻辑回归和线性回归都使用极大似然估计来训练样本进行建模。二者求解超参数过程中都可以使用梯度下降法。
2.当使用逻辑回归处理多标签的分类问题时,有哪些常见的做法,分别应用于哪些场景,他们之间又有什么样的关系?
1)如果一个样本只对应一个标签,我们可以假设每个样本属于不同标签的概率服从几何分布,使用多项逻辑回归。一般来讲,多项逻辑回归具有参数冗余的特点,即可将每个θ同时减去一个向量后保持预测结果不变(这部操作可以减少参数量);多项逻辑回归实际上是二分类逻辑回归在多标签分类下的一种拓展。
2)当存在样本可能属于多个标签的情况时,我们可以训练K个二分类的逻辑回归分类器。第i个分类器用以区分每个样本是否可以归为第i类,训练该分类器时,需要把标签重新整理为“第i类标签”与“非第i类标签”两类。

问题3:决策树

1.决策树是一种自上而下,对样本数据进行树形分类的过程,由节点和有向边组成。节点分为叶节点和内部节点,其中每个内部节点表示一个特征或属性,叶节点表示类别。从顶部根节点开始,所有样本聚在一起。经过根节点的划分,样本被分到不同的子结点中。再根据子节点的特征进一步划分,直至所有样本都被归到某一类别(即叶结点)中。 决策树作为最基础、最常见的有监督学习模型,常被用于分类问题和回归问题。 决策树的生成包含了特征选择、树的构造、树的剪枝三个过程。 从若干不同的决策树中选取最优的决策树是一个NP完全问题(多项式复杂程度的非确定性问题)
2.决策树有哪些常用的启发函数?
1)ID3(最大信息增益)。在实际应用中决策树往往不能通过一个特征就完成构建,需要在经验熵非0的类别中继续生长。
2)C4.5(最大信息增益比)
3)CART-最大基尼指数(Gini):Gini描述的是数据的纯度,与信息熵含义类似。 CART在每一次迭代中选择基尼指数最小的特征及其对应的切分点进行分类。 但与ID3、C4.5不同的是,CART是一棵二叉树,采用二元分割法,每一步将数据按特征A的取值切分成两份,分别进入左右子树。
3.三种决策树的构造准则差异性?
1)信息增益反映的是给定条件后不确定性减少的程度,特征值越多就意味着确定性更高,也就是条件熵越小,信息增益越大。这在实际应用中是一个缺陷,ID3(最大信息增益)容易出现过拟合。C4.5引入了信息增益比,一定程度上对取值比较多的特征进行了惩罚,避免了ID3出现过拟合的特征,提升决策树的泛化能力。
2)从样本类型角度,ID3只能处理离散型变量,而C4.5和CART都可以处理连续型变量。C4.5处理连续型变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换多个取值区间的离散型变量。而对CART,由于其构建时每次都会对特征进行二值划分,因此可以很好地适用于连续型变量。
3)从应用角度,ID3和C4.5只能用于分类任务,而CART既可以用于分类,也可以用于回归任务(回归树使用最小平方误差准则)。 ID3对样本特征缺失值比较敏感,而C4.5和CART可以对缺失值进行不同方式的处理;ID3和C4.5可以在每个结点只会产生出多叉分支,且每个特征在层级间不会复用,而CART每个结点只会产生两个分支,因此最后会形成一棵二叉树,且每个特征可以被重复使用;ID3和C4.5通过剪枝来权衡树的准确性与泛化能力,而CART直接利用全部数据发现所有可能的树结构进行对比。
4.如何对决策树进行剪枝?
1)通过剪枝 提高模型的泛化能力,常用的方法:预剪枝和后剪枝。
2)预剪枝,就是在生成决策树模型过程中提前停止树的增长。预剪枝的核心思想是在树中结点进行扩展前,先计算当前的划分是否能带来模型泛化能力的提升,如果不能,则不再继续生长子树。此时可能存在不同类别的样本同时存在于节点中,按照多数投票的原则判断该结点所属类别。 预剪枝对于何时停止决策树的生长有以下几种方法:当树到达一定深度的时候,停止树的生长;当到达当前节点的样本数量小于某个阈值的时候,停止树的生长;计算每次分裂对测试集的准确度提升,当小于某个阈值时,不再继续扩展。 预剪枝具有思想直接、算法简单、效率高等特点,适合解决大规模问题。但预剪枝存在一定的局限性,有欠拟合的风险,虽然当前的划分会导致测试集准确率降低,但之后的划分中,准确率可能会有显著上升。
3)后剪枝,就是在已生成的过拟合的决策树上进行剪枝,得到简化版的剪枝决策树。其核心思想是让算法生成一颗完全生长的决策树,然后从最底层向上计算是否剪枝。简直过程中将子树删除,用一个叶子节点替代,该节点的类别同样按照多数投票的原则进行判断。同样地,后剪枝也可以通过在测试集上的准确率进行判断,如果剪枝过后准确率有所提升,则进行剪枝。相比于预剪枝,后剪枝方法通常可以得到泛化能力更强的决策树,但时间开销会更大。 常见的后剪枝方法:错误率降低剪枝(REP)、代价复杂度剪枝(CCP)、最小误差剪枝(MEP)。其中,CCP是最经典的后剪枝方法。 代价复杂度剪枝使用交叉验证策略时,不需要测试数据集,精度与REP差不多,但形成的树复杂度小。而从算法复杂度角度,由于生成子数序列的时间复杂度与原始决策树的非叶节点呈二次关系,导致算法相比REP、PEP、MEP等线性复杂度的后剪枝方法,运行时间开销更大。
4)很多研究表明,剪枝比树的生成过程更为关键。对于不同划分标准生成的过拟合决策树,在经过剪枝之后都能保留最重要的属性划分,因此最终的性能差距并不大。在实际应用中,根据不同的数据类型、规模,决定使用何种决策树以及对应的剪枝策略。

问题4:Logistic模型和SVM的补充知识点汇总

1.Logistic模型和SVM很像,现在大概说一下两者的区别
1)寻找最优超平面的方法不同
形象点说,Logistic模型找的那个超平面,是尽量让所有点都远离它,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些“支持向量”的样本——所以叫“支持向量机”。
2)SVM可以处理非线性的情况
比Logistic更强大的是,SVM还可以处理非线性的情况。
3)Logistic regression 和 SVM本质不同在于loss function的不同,Logistic regression的损失函数是 cross entropy loss, SVM是hinge loss,Adaboost的损失函数是 exponential loss 。常见的回归模型通常用均方误差 loss。
4)LR是参数模型,SVM是非参数模型(参数模型是求一个解析解,非参数模型是近似解)
5)两种方法都是常见的分类算法,从目标函数来看,区别在于逻辑回归采用的是logistical loss,svm采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。两者的根本目的都是一样的。此外,根据需要,两个方法都可以增加不同的正则化项,如l1,l2等等.所以在很多实验中,两种算法的结果是很接近的。但是逻辑回归相对来说模型更简单,好理解,实现起来,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些。但是SVM的理论基础更加牢固,有一套结构化风险最小化的理论基础,虽然一般使用的人不太会去关注.还有很重要的一点,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同。其区别就可以参考参数模型和非参模型的区别就好了.logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。
2 参数模型和非参数模型
在统计学中,参数模型通常假设总体服从某个分布,这个分布可以由一些参数确定,如正态分布由均值和标准差确定,在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设或者说是数据分布假设自由,只知道其分布是存在的,所以就无法得到其分布的相关参数,只能通过非参数统计的方法进行推断。

你可能感兴趣的:(机器学习面试知识点系列,逻辑回归)