【16】机器学习算法面试八股
291逻辑回归特征是否归一化
逻辑回归本身不受量纲影响,但是其使用梯度下降法求解参数受量纲影响大,如果不进行特征归一化,可能由于变量不同量纲导致参数迭代求解缓慢,影响算法速率。于决策树这类的算法,不受量纲影响,不需要进行归一化处理。
292什么样的模型需要特征归一化
1、一般算法如果本身受量纲影响较大,或者相关优化函数受量纲影响大,则需要进行特征归一化。逻辑回归本身不受量纲影响,但是其使用梯度下降法求解参数受量纲影响大,如果不进行特征归一化,可能由于变量不同量纲导致参数迭代求解缓慢,影响算法速率。树模型特征归一化可能会降低模型的准确率,但是能够使模型更加平稳ID3和C4.5只能解决分类问题,CART是既可以解决分类问题,也可以解决回归问题
293树模型为什么是不能进行梯度下降
树模型是不能进行梯度下降的,因为构建树模型(回归树)寻找最优点时是通过寻找最优分裂点完成的,因此树模型是阶跃的,阶跃点是不可导的,并且求导没意义,也就不需要归一化。所以树模型(回归树)寻找最优点是通过寻找最优分裂点完成的而像adaboost、svm、lr、KNN、KMeans之类的最优化问题就需要归一化。
294对于树形结构为什么不需要归一化?
因为数值缩放不影响分裂点位置,对树模型的结构不造成影响。按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、rf。
295同样是树结构,为什么随机森林不需要对数据进行归一化,GBDT需要对数据进行归一化呢
GBDT的树是在上一颗树的基础上通过梯度下降求解最优解,归一化能收敛的更快,GBDT通过减少bias来提高性能,而随机森林本来就是通过减少方差提高性能的,树之间建立关系是独立的,不需要归一化
296如何提升LR的模型性能?如何优化LR模型
• 想办法获得或构造更多的数据,无论评估模型还是训练,都会更加可靠。• 根据业务知识,挖掘更多有价值的Feature,即特征工程。• 加入正则化项,L1/L2。交叉验证确定最优的参数。这会加快模型开发速度,会自动化筛选变量
297逻辑回归为啥要做特征离散化
- 非线性:逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合; 离散特征的增加和减少都很容易,易于模型的快速迭代;
- 速度快:稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
- 鲁棒性:离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是“年龄>30是1,否则0”。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
- 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
- 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
298最小二乘法在什么条件下与极大似然估计等价?
当模型估计值和真实值间的残差项服从均值是0的高斯分布时,就有最小二乘估计和最大似然估计等价。
299逻辑回归为什么不用平方损失函数?
- 因为平方损失函数权重更新过慢,采用交叉熵损失函数可以完美解决过慢的问题,它具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。
- sigmoid作为激活函数的时候,如果采用均方误差损失函数,那么这是一个非凸优化问题,不宜求解,容易陷入局部最优解。而采用交叉熵损失函数依然是一个凸优化问题,更容易优化求解。
300LR可以处理非线性情况吗?
可以,同样可以使用核方法。
301LR的参数可以初始化0 吗?可以,但是神经网络初始化参数不可以为0
可以
302SVM的优缺点
优点:
- 理论完善,逻辑优美。
- SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
- SVM 对异常值不敏感
- 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本
- SVM 目标是求解最大间隔超平面,算法分类具有较好的“鲁棒”性。
- SVM可以利用核函数解决逻辑回归解决不了的高维分类问题。 缺点:
- SVM算法对大规模训练样本难以实施 由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。
- 用SVM解决多分类问题存在困难 经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。 主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
303LR 和 SVM 联系与区别
LR与SVM的相同点:
- 都是有监督的分类算法;
- 如果不考虑核函数,LR和SVM都是线性分类算法。 它们的分类决策面都是线性的。
- LR和SVM都是判别式模型。 LR与SVM的不同点:
- 本质上是loss函数不同,或者说分类的原理不同。
- SVM是结构风险最小化,LR则是经验风险最小化。
- SVM只考虑分界面附近的少数点,而LR则考虑所有点。
- 在解决非线性问题时,SVM可采用核函数的机制,而LR通常不采用核函数的方法。
- SVM计算复杂,但效果比LR好,适合小数据集;LR计算简单,适合大数据集,可以在线训练。
304经验风险、结构风险
经验风险:器学习模型关于训练数据集的平均损失称为经验风险。度量平均意义下模型预测效果的好坏
结构风险是在经验风险的基础上加上表示模型复杂度的正则项(罚项)。
305判别式、生成式
判别式模型 (Discriminative Model):直接对条件概率p(y|x)进行建模,常见判别模型有:线性回归、决策树、支持向量机SVM、k近邻、神经网络等;生成式模型 (Generative Model):对联合分布概率p(x,y)进行建模,常见生成式模型有:隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等;
- 生成式模型更普适;判别式模型更直接,目标性更强
- 生成式模型关注数据是如何产生的,寻找的是数据分布模型;判别式模型关注的数据的差异性,寻找的是分类面
- 由生成式模型可以产生判别式模型,但是由判别式模式没法形成生成式模型
306svm介绍一下,svm原理
SVM是使用广泛的分类算法,可以处理非线性和高维的机器学习问题。SVM目标是找到分类的最大间隔,为了更好的求解,针对SVM基本型使用拉格朗日方法找到其对偶问题,从而找到解。SVM只和支持向量有关,所以SVM对异常值不敏感,适合小数据集。对于不易分类的情况,可以采用软间隔。高维问题甚至可以采用核函数方法来更好的分类。
307如果特征比较多,用LR还是SVM?
如果特征比较多,最好采用SVM。因为从SVM基本型可以看出来,只和样本数量有关,和特征无关,不易过拟合;而特征过多时,LR容易过拟合。
308SVM是否可以用随机梯度下降
可以SVM本质上是一个带约束的二次规划问题,但是通过拉格朗日法或Hinge Loss的方式可以转换成一个无约束的优化问题。而不论是梯度下降还是二次规划,都是能够用来优化这个问题的。甚至Hinge Loss定义下的损失函数是个凸函数,是可以优化得到最优解的。
309为什么要将求解 SVM 的原始问题转换为其对偶问题
一是对偶问题往往更易求解,当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。
二是可以自然引入核函数,进而推广到非线性分类问题。
310为什么SVM对缺失特征数据敏感
这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM 没有处理缺失值的策略。而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。
更多校园招聘常见面试问题(开发、算法、编程题目)参见CSDN博客:http://t.csdn.cn/V4qbH
欢迎关注、收藏、点赞后进行问题咨询及秋招建议
#牛客解忧铺##牛客在线求职答疑中心##数据人的面试交流地##我发现了面试通关密码##如何判断面试是否凉了#介绍秋招面试过程中对机器学习算法、数据挖掘、python语言、C++语言、数据结构的面试题目和基础总结