机器学习面试试题精选
1. L1和L2范式的区别
使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归),即为L1正则化项,指权值向量
中各个元素的绝对值之和。
即为L2正则化项指权值向量
中各个元素的平方和然后再求平方根。
L1范式是对应参数向量绝对值之和
L1范式具有稀疏性
L1范式可以用来作为特征选择,并且可解释性较强
L2范式是对应参数向量的平方和,再求平方根
L2范式是为了防止机器学习的过拟合,提升模型的泛化能力
正则化具体原理 https://blog.****.net/jinping_shi/article/details/52433975
2. 简述梯度下降

https://www.jianshu.com/p/c7e642877b0e
梯度法思想的三要素:出发点、下降方向、下降步长
利用所在点的值减去改点的导数与学习率的积,得到下一个沿梯度下降方向上的点,直到不再下降或达到收敛
3. 线性回归中,我们可以使用正规方程(Normal Equation)来求解系数。下列关于正规方程说法正确的是?
A. 不需要选择学习因子
B. 当特征数目很多的时候,运算速度会很慢
C. 不需要迭代训练
答案:ABC
4. 简述GBDT的原理
GBDT中的所有决策树都是回归树,而非分类树
GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。
梯度提升,基本思想为:沿着梯度方向,构造一系列的弱分类器函数,并以一定权重组合起来,形成最终决策的强分类器。
每一轮迭代,把当前所有学习器的加权平均结果作为这一轮的函数值,然后求得针对某一个损失函数对于当前所有学习器的参数的一个梯度,然后利用某个弱学习器算法来拟合这个梯度(这个弱学习器算法可以是线性回归模型,逻辑斯特回归模型等),将弱学习器不断加权累加到总模型当中,来最终得到一个强预测模型。
梯度提升决策树,即梯度提升算法中的弱学习器为决策树。
每一轮迭代都拟合一个新的决策树,来表达当前的梯度,然后跟前面所有的决策树进行叠加,来最终得到一个强预测模型
https://www.cnblogs.com/NaughtyBaby/p/9833738.html
5. 增强算法机制
增强算法的工作机制比较类似,先从初始训练集学习出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使前面做错的训练样本后续得到更多关注,再从调整后的训练样本上训练下一个基学习器。如此重复进行,直到基学习器的数目达到事先指定的值,最终将所有基学习器进行加权结合。
SVM推导
核心思想:找到一个超平面,使得到超平面几何间隔最小的点(线性约束),离超平面的几何间隔最大(二次优化) ,其中函数间隔的大小不影响优化问题
即svm的本质就是线性约束下的二次优化问题
推导过程
超平面 ,几何间距
,定义样本点
到超平面
的几何间隔为
函数间隔为,所有样本点中最小的几何间隔为
,函数间隔不影响优化结果,设置函数间隔为1。
要找到一组使得
最大,且任意样本点到超平面的几何间隔大于
,得到如下优化问题
RF与GBDT之间的区别
(1)相同点
都是由多棵树组成
最终的结果都是由多棵树一起决定
(2)不同点
组成随机森林的树可以分类树也可以是回归树,而GBDT只由回归树组成组成
随机森林的树可以并行生成,而GBDT是串行生成
随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和
随机森林对异常值不敏感,而GBDT对异常值比较敏感
随机森林是通过减少模型的方差来提高性能,而GBDT是减少模型的偏差来提高性能的
随机森林不需要进行数据预处理,即特征归一化。而GBDT则需要进行特征归一化
(3)RF:
优点:
易于理解,易于可视化
不需要太多的数据预处理,即数据归一化
不易过拟合
易于并行化
缺点:
不适合小样本数据,只适合大样本数据
大多数情况下,RF的精度低于GBDT
适合决策边界的是矩阵,不适合对角线型
(4)GBDT
优点:精度高
缺点:参数较多,容易过拟合,不易并行化
简述k-means算法原理及优缺点
1.假设数据集在一个mm维的欧式空间中,初始时随机 选择k个数据项作为这k个簇的形心,然后计算n个数据项与
的距离,与其中哪一个
最近就归为哪一类。
2.通过上面这一步,我们就初步将数据集划分为k个类了,重新计算各类中所有数据项的各个维度的均值作为新的形心。
3.对新的形心再继续1,2步骤直到各类的形心不再变化为止。
- 优点:
- 是解决聚类问题的一种经典算法,简单、快速
- 对处理大数据集,该算法保持可伸缩性和高效性
- 当簇接近高斯分布时,它的效果较好。
缺点:
- 在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用;
- 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;
- 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果;
- 该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的;
- 若簇中含有异常点,将导致均值偏离严重(即:对噪声和孤立点数据敏感);
- 不适用于发现非凸形状的簇或者大小差别很大的簇
如何防止过拟合和欠拟合
过拟合
欠拟合
- 1.提前终止 Early Stopping
- 减少特征维度
- 正则化
- 数据集扩增(Data augmentation)
- Dropout
- 做特征工程,添加更多的特征项
- 减少正则化参数
- 使用更深或者更宽的模型
- 使用集成方法。融合几个有差异的弱模型,使其成为一个强模型。
决策树基础
熵是用来度量不确定性
信息增益:待分类的集合的熵和选定某个特征的条件熵之差 ,信息增益越大,意味着这个特征分类的能力越强,我们就要优先选择这个特征。