当前位置: 首页 > article >正文

机器学习面试题(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时,网络不同神经元的输出必然相同,相同输出则导致梯度更新完全一样,会使得更新后的参数仍然保持完全相同。从而使得模型无法训练。


http://www.kler.cn/a/289421.html

相关文章:

  • 在C++上实现反射用法
  • NVIDIA NIM 简介
  • go reflect 反射
  • Elasticsearch中什么是倒排索引?
  • MFC图形函数学习07——画扇形函数
  • arm 汇编技巧
  • 跨境多账号登录如何防止IP、cookie和设备关联?
  • pil 常见用法
  • 如何打造在线音乐网站?java springboot架构,vue前端开发,音乐分享新体验
  • sealos快速搭建k8s集群
  • 记录 PyQt6 / PySide 6 自定义边框窗口的 Bug 及可能可行的解决方案:窗口抖动和添加 DWM 环绕阴影的大致原理
  • Java的IO模型详解-BIO,NIO,AIO
  • 常见接口限流算法
  • 4. 第一个3D案例—创建3D场景
  • idea中git提交或push到远程后回退到之前的某次提交简单有效的解决方案
  • go语言的闭包
  • gitea + drone实现CI/CD
  • 浅谈新能源汽车充电桩安装以及防范
  • Java中的类加载过程
  • 关于武汉高芯coin417G2红外机芯的二次开发
  • AFFiNE简介
  • 代码随想录八股训练营第三十二天| C++
  • SQL 编程基础
  • 一阶微分方程的解的存在唯一性定理
  • day06 1.继承和多态
  • 【JavaEE初阶】计算机是如何运行的?