机器学习面试题(9月3日笔记)

1.介绍ROC曲线

横坐标为假阳性率(False Positive Rate,FPR);纵坐标为真阳性率(True Positive Rate,TPR)

FPR = FP / N

TPR = TP / P

其中P是真实的正样本的数量,N是真实的负样本的数量,TP是P个正样本中被分类器预测为正样本的个数,FP是N个负样本中被预测为正样本的个数。

绘制ROC曲线:通过不断移动分类器的"截断点"来生成曲线上的一组关键点。在二分类问题中,模型输出一般是预测样本为正例的概率,在输出最终的正例负例之前,我们需要制定一个阈值。大于该阈值的样本判定为正例,小于该阈值的样本判定为负例。通过动态调整截断点,绘制每个截断点对应位置,再连接所有点得到最终的ROC曲线。

2. 误差分析是什么?如何进行误差分析?

误差分析:通过训练误差和测试误差来分析模型是否存在高方差、高偏差。

如果训练误差较高:说明模型的偏差较大,模型出现了欠拟合。

如果训练误差较低,而测试误差较高:说明模型的方差较大,出现了过拟合。

如果训练误差较低,测试误差也较低:说明模型的方差和偏差都适中,是一个比较理想的模型。

如果训练误差较高,且测试误差更高:说明模型的方差和偏差都较大。

3. 简单讲解SVM模型原理?

支持向量机是一种二类分类模型,它的基本模型是是定义在特征空间的间隔最大的线性分类器,间隔最大,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略是间隔最大化,可形式化为求解凸二次规划的问题,也等价于正则化的合页损失函数最小化问题。

线性可分支持向量机:当训练数据线性可分,通过硬间隔最大化,学习一个线性的分类器

线性支持向量机:当训练数据近似线性可分,通过软间隔最大化,学习一个线性的分类器

非线性支持向量机:当训练数据线性不可分,通过使用核技巧及软间隔最大化,学习非线性分类器

4. 决策树的建树过程

自上而下,对样本数据进行树形分类的过程。每个内部节点表示一个特征,叶节点表示一个类别。从顶部根节点开始,所有的样本聚在一起。经过根节点的划分,样本被分到不同的子节点,再根据子节点的特征进一步划分,直至所有样本被归到某一个类别(叶节点)中。

5.如何评判模型是过拟合还是欠拟合?遇到过拟合或欠拟合时,如何解决?

过拟合是指学习时选择的模型所包含的参数过多,以至出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象

当训练集效果差,欠拟合(如accurarcy<0.8);训练集效果好,测试集效果差,过拟合

欠拟合解决方法:

增加特征

提高模型复杂度:神经网络提高神经元数、增加层数;SVM使用核函数

减小正则项的系数

过拟合解决方法:

提高样本数量:神经网络------Data Augmentation(数据增强)

简化模型:神经网络使用Dropout、Early Stopping;决策树剪枝、限制树的深度

加入正则化项或提高惩罚系数

使用集成学习

标签平滑

6. 奥卡姆剃刀定律是什么?对机器学习模型优化有何启发?举例说明

奥卡姆剃刀定律:若有多个假设与观察一致,则选最简单的那个

奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的,也就是应该选择的模型。

从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

7. GDBT是否对异常值敏感,为什么?

GDBT对异常值敏感。对于回归类问题,如果采用平方损失函数,当出现异常值时,后续模型会对异常值关注过多

8. 如何理解维度灾难?

特征数量超过一定值的时候,分类器的效果反而下降。原因:特征数过多,过拟合

9. 讲解一下droupt原理

在神经网络前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。

10. 训练模型的时候,是否可以把网络参数全部初始化为0?为什么?

不可以;参数全部为0时,网络不同神经元的输出必然相同,相同输出则导致梯度更新完全一样,会使得更新后的参数仍然保持完全相同。从而使得模型无法训练。

相关推荐
新加坡内哥谈技术几秒前
口哨声、歌声、boing声和biotwang声:用AI识别鲸鱼叫声
人工智能·自然语言处理
wx74085132611 分钟前
小琳AI课堂:机器学习
人工智能·机器学习
FL162386312919 分钟前
[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别
人工智能·yolo·目标检测
YesPMP平台官方21 分钟前
AI+教育|拥抱AI智能科技,让课堂更生动高效
人工智能·科技·ai·数据分析·软件开发·教育
李小星同志26 分钟前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c37 分钟前
MFC 使用细节
笔记·学习·mfc
鸽芷咕40 分钟前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle
FL16238631291 小时前
AI健身体能测试之基于paddlehub实现引体向上计数个数统计
人工智能
黑客-雨1 小时前
构建你的AI职业生涯:从基础知识到专业实践的路线图
人工智能·产品经理·ai大模型·ai产品经理·大模型学习·大模型入门·大模型教程
Jhxbdks1 小时前
C语言中的一些小知识(二)
c语言·开发语言·笔记