机器学习面试常问题目

时间:2024-10-21 08:23:48

1.损失函数和目标函数差别:目标函数多一个正则化项

2.多分类问题常见解决方法:OvO(每个类别拆成一个数据集)、OvR(一类作为正例,其余化为负例)和MvM(将几类化为正类,其它化为负类,穷尽所有可能,当新样本进来的时候,算新样本和原样本距离,选择距离最近的一个作为预测结果),

3.KL散度及其在损失函数中发挥的作用

相对熵(KL散度):用来表示模型拟合分布Q和数据真实分布P之间的差距

相对熵=交叉熵-信息熵(自身的熵),因此只能通过减少交叉熵来降低相对熵。相对熵的取值恒大于等于0

4.F1-score和ROC-AUC计算过程

定义概念:P:真实标签为1 ,N:0,PP:预测标签为1,PN:预测为0

                 TP:样本阳性且识别为阳性 FP:错判为阳性的(TF表示模型判断是否正确)

                  召回率:全部1类样本中被准确识别出来的比例

                 精确率:所有预测为1中实际是1的比例

                F1score:二者的调和平均2AB/(A+B)

ROC曲线-AUC面积

先有个表分别是当前这条数据预测为1的概率以及它的实际类别,随着对于概率的阈值不断降低,计算TPR和FPR,分别作为横纵坐标画图,把点相连得到ROC曲线,每判断对一个就会往上,判断错就会往右,因此越好的模型应该越靠近左上方

ROC-AUC和F1-score的选择:如果要综合性就看前者,如果要看能不能很好地识别一类样本用后者

5.主流聚类算法及使用场景、DBSCAN

主要四个:kmeans,衍生为minibatch-kmeans(牺牲精度提高效率的办法,每次选一个小批量找质心)

层次聚类:把最相似的两个先聚一类,然后看其他的和他们是否相似,非常精细的一种方法,因此适合小量样本的高精度数据类

DBSCAN:不用假设一定是聚类成圆形簇,可以解决如下图所示kmeans聚错的情况

具体原理是把点分为三类:核心点(边界范围eps内点个数大于多少个)、边界点(在核心点范围内)、噪声点;划分完之后把在eps范围内的两个核心点化为一个簇

高斯混合模型:将数据看成多个高斯分布生成的混合分布,通过最大似然估计来聚类,优点是有较好的泛化能力,即如果有个新样本进来,判断的比较准。

6.cart回归树构建过程:

每次算每种分裂方式内部的MSE(每个子集的MSE*样本比例作为权重,看哪种分法能最大程度降低MSE

7.随机森林中特征选择:注意不是每棵树有一个特征子集,而是每次特征分裂都有一个子集

8.极端随机树和随机森林:极端随机树随机性更强

分裂方式:极端随机树除了使用随机特征外还要使用随机阈值

计算复杂度:极端随机数更快

预测性能:性能更好,因为分裂更加随机

9.GBDT和XGB中伪残差计算公式差异

GBDT直接算一阶导,XGB是一阶导/二阶导

10.LGBM中直方图算法原理

一种特征分箱的方法,主要分为两步:特征分箱和直方图建立

特征分箱:基于梯度分箱

直方图建立:算每个箱里面有几个数值,比如有4个,就是【4,4,4,4】

好处:高效性(梯度算起来快)准确性(可以捕捉特征间的相关性)稳定性(可以避免过拟合和欠拟合问题)

11.CATBOOST有哪些特征处理方法

类别特征处理:可以处理为独热或者哈希编码

缺失值处理

特征选择:根据增益值来选

特征交互:通过二阶梯度提升算法自动发现特征间交互关系,并构建出新的特征组合

12.归一化为什么能让梯度下降的效率变高

归一化能让y的等高线变得更均匀,而梯度下降每次其实都会沿着一个方向下降一端距离,因此当移动了一点之后最优下降方向其实就变了,而等高线均匀就能让这个方向更确定

13.特征筛选的参数方法和非参数方法的对比:

参数方法指假设检验那套,计算效率低,适用范围窄,受样本量影响大,但能够提供置信度