↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

Datawhale干货

作者:胡联粤,Datawhale面经小组

Q1

⽼板给了你⼀个关于癌症检测的数据集,你构建了⼆分类器然后计算了准确率为 98%, 你是否对这个模型满意?为什么?如果还不算理想,接下来该怎么做?

首先模型主要是找出患有癌症的患者,模型关注的实际是坏样本。其次一般来说癌症的数据集中坏样本比较少,正负样本不平衡。

准确率指的是分类正确的样本占总样本个数的比率

其中为正确分类样本的个数,为总样本分类的个数。

当好样本(未患病)的样本数占99%时,模型把所有的样本全部预测为好样本也可以获得99%的准确率,所以当正负样本非常不平衡时,准确率往往会偏向占比大的类别,因此这个模型使用准确率作为模型的评估方式并不合适。

鉴于模型关注的实际是坏样本,建议使用召回率(Recall)作为模型的评估函数。

Recall 是分类器所预测正确的正样本占所有正样本的比例,取值范围为[0,1],取值越大,模型预测能力越好。

其次,使用类别不平衡的解决方案:

常见的处理数据不平衡的方法有:重采样、Tomek links、SMOTE、NearMiss等

除此之外:还可以使用模型处理:使用多种树模型算法,使用多种重采样的训练集,对少数样本预测错误增大惩罚,避免使用Accuracy,可以用confusion matrix,precision,recall,f1-score,AUC,ROC等指标。

Q2

怎么判断⼀个训练好的模型是否过拟合?如果判断成了过拟合,那通过什么办法 可以解决过拟合问题?

模型在验证集合上和训练集合上表现都很好,而在测试集合上变现很差。

解决过拟合的办法:

  • 特征降维

  • 添加正则化,降低模型的复杂度

  • Dropout

  • Early stopping

  • 交叉验证

  • 决策树剪枝

  • 选择合适的网络结构

Q3

对于线性回归,我们可以使⽤ Closed-Form Solution, 因为可以直接把导数设置 为 0,并求出参数。在这个 Closed-Form ⾥涉及到了求逆矩阵的过程,什么时候不能求出其逆矩阵?这时候如何处理?

什么是闭式解(Closed-Form Solution)?

解析解(Analytical solution) 就是根据严格的公式推导,给出任意的自变量就可以求出其因变量,也就是问题的解,然后可以利用这些公式计算相应的问题。所谓的解析解是一种包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。用来求得解析解的方法称为解析法(Analytical techniques),解析法即是常见的微积分技巧,例如分离变量法等。解析解是一个封闭形式(Closed-form) 的函数,因此对任一自变量,我们皆可将其带入解析函数求得正确的因变量。因此,解析解也被称为封闭解(Closed-form solution)。

数值解(Numerical solution) 是采用某种计算方法,如有限元法, 数值逼近法,插值法等得到的解。别人只能利用数值计算的结果,而不能随意给出自变量并求出计算值。当无法藉由微积分技巧求得解析解时,这时便只能利用数值分析的方式来求得其数值解了。在数值分析的过程中,首先会将原方程加以简化,以利于后来的数值分析。例如,会先将微分符号改为差分(微分的离散形式)符号等,然后再用传统的代数方法将原方程改写成另一种方便求解的形式。这时的求解步骤就是将一自变量带入,求得因变量的近似解,因此利用此方法所求得的因变量为一个个离散的数值,不像解析解为一连续的分布,而且因为经过上述简化的操作,其正确性也不如解析法可靠。

简而言之,解析解就是给出解的具体函数形式,从解的表达式中就可以算出任何对应值;数值解就是用数值方法求出近似解,给出一系列对应的自变量和解。

参考:https://blog.csdn.net/weicao1990/article/details/90742414

什么时候不能求出其逆矩阵?

满秩矩阵或者方阵才有逆矩阵,当一个矩阵不满秩,在对角线上存在为0的特征值,求逆的时候无法计算从而不可逆,那我们给它加上一个单位矩阵,这样它就不为0了,

求解的时候加上单位矩阵其实就是对线性回归引入正则化的过程

参考:https://zhuanlan.zhihu.com/p/44612139

Q4

关于正则,我们⼀般采⽤ L2 或者 L1, 这两个正则之间有什么区别?什么时候需要⽤ L2, 什么时候需要⽤ L1?

L1正则化(也叫Lasso回归)是在目标函数中加上与系数的绝对值相关的项,而L2正则化(也叫岭回归)则是在目标函数中加上与系数的平方相关的项。

Lasso 和岭回归系数估计是由椭圆和约束函数域的第一个交点给出的。因为岭回归的约束函数域没有尖角,所以这个交点一般不会产生在一个坐标轴上,也就是说岭回归的系数估计全都是非零的。然而,Lasso 约束函数域在每个轴上都有尖角,因此椭圆经常和约束函数域相交。发生这种情况时,其中一个系数就会等于 0。

L2正则化会使参数的绝对值变小,增强模型的稳定性(不会因为数据变化而产生很大的震荡);而L1正则化会使一些参数为零,可以实现特征稀疏, 增强模型解释性。

参考:https://blog.csdn.net/zouxy09/article/details/24971995/

Q5

正则项是否是凸函数?请给出证明过程。

相关概念:凸集,凸函数

因此证明正则项是否是凸函数,需要证明:

1.  在 上二阶连续可微

2.的Hessian(海塞)矩阵在 上是半正定

3.半正定矩阵的判定定理之一:若实对称矩阵的所有顺序主子式均为非负,则该矩阵为半 正定矩阵。

参考:https://www.bilibili.com/video/BV1Mh411e7VU?p=2

Q6

什么叫 ElasticNet? 它主要⽤来解决什么问题?具体如何去优化?

弹性回归是岭回归和lasso回归的混合技术,它同时使用 L2 和 L1 正则化。当有多个相关的特征时,弹性网络是有用的。lasso回归很可能随机选择其中一个,而弹性回归很可能都会选择。

  • 在高度相关变量的情况下,它支持群体效应。

  • 它对所选变量的数目没有限制

  • 它具有两个收缩因子 λ1 和 λ2。

参考:https://www.zhihu.com/search?type=content&q=ElasticNet

Q7

什么叫⽣成模型,什么叫判别模型?朴素⻉贝叶斯,逻辑回归,HMM,语⾔模型 中哪⼀个是⽣成模型,哪⼀个是判别模型?

生成模型(Generaive Model)一般以概率的方式描述了数据的产生方式,通过对模型采样就可以产生数据。

判别模型(Discriminative Model)对数据之间的映射关系建模,而不考虑数据本身是如何生成的。判别模型可以根据给定的数据x预测对应的y(回归),或根据不同的映射结果y来区分(discriminate)给定的数据x (分类)。但模型自身并不能产生数据x 。

生成模型对数据本身建模,更基础。判别模型只考虑输入和输出之间的关系,更直接地面向问题。如果希望用生成模型完成判定模型的任务,一般需要额外的步骤。

_

优点

缺点

代表算法

1.  由于统计了数据的分布情况,所以其实际带的信息要比判别模型丰富,对于研究单类问题来说也比判别模型灵活性强;
2. 模型可以通过增量学习得到(增量学习是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。);
3. 收敛速度更快,当样本容量增加的时,生成模型可以更快的收敛于真实模型;
4. 隐变量存在时,也可以使用。

1. 学习和计算过程比较复杂,由于学习了更多的样本信息,所以计算量大,如果我们只是做分类,就浪费了这部分的计算量;
2. 准确率较差;
3. 往往需要对特征进行假设,比如朴素贝叶斯中需要假设特征间独立同分布,所以如果所选特征不满足这个条件,将极大影响生成式模型的性能。

朴素贝叶斯、贝叶斯网络、隐马尔可夫模型、隐马尔可夫模型

1. 由于关注的是数据的边界,所以能清晰的分辨出多类或某一类与其他类之间的差异,所以准确率相对较高;
2. 计算量较小,需要的样本数量也较小;

1. 不能反映训练数据本身的特性;
2. 收敛速度较慢

k 近邻法、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、条件随机场

参考:https://cloud.tencent.com/developer/article/1544597;https://www.zhihu.com/question/22374366/answer/155544744

本文来自Datawhale面经项目开源地址:

https://github.com/datawhalechina/Daily-interview

长按关注Datawhale,更多开源内容一起学习成长↓

整理不易,三连

机器学习基础知识详解!相关推荐

  1. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  2. R语言可视化绘图基础知识详解

    R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...

  3. 计算机网络相关知识 参考博客 子网掩码怎么理解 网关及网关的作用 路由器基础知识详解

    子网掩码怎么理解 https://blog.csdn.net/farmwang/article/details/64132723 网关及网关的作用 https://blog.csdn.net/zhao ...

  4. RabbitMQ基础知识详解

    RabbitMQ基础知识详解 2017年08月28日 20:42:57 dreamchasering 阅读数:41890 标签: RabbitMQ 什么是MQ? MQ全称为Message Queue, ...

  5. Android随机点名器,Excel基础知识-详解随机点名器

    说道制作个案例纯粹意外,我多少有点选择恐惧症,为了不在"选择"上纠结,就自己小玩了一下,就用了程序做了个选择器,其实很简单,就是有小时候玩的"点兵点将",稍微变 ...

  6. Python基础知识详解 从入门到精通(八)魔法方法

    目录 Python基础知识详解 从入门到精通(八)魔法方法 什么是魔法方法 基础魔法方法(较为常用) 比较操作符 算数运算符 反运算(类似于运算方法) 增量赋值运算 一元操作符 类型转换 上下文管理( ...

  7. 网络管理之基础知识详解

    网络管理之基础知识详解 目录 3.1 网络的特征 3.2 拓扑结构 4.1 OSI简介 4.2 数据传输过程 4.3 分层作用 4.4 PDU 5.1 单播 5.2 多播 5.3 广播 5.4 三种通 ...

  8. 工业相机基础知识详解

    工业相机基础知识详解 工业相机是机器视觉系统的一个最关键的组件.他的功能很简单,就是将被检测的物体拍摄下来,然后转换成电脑可以识别的图像,以便以后进行图像处理,从而完成检测任务.工业相机俗称工业摄像机 ...

  9. 小白入门!网络安全基础知识详解(附知识问答)

    小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...

最新文章

  1. python基于dlib的face landmarks
  2. mysql 子分区_MySQL子分区一例
  3. 一个python程序员需要掌握的知识-Python基础知识,初学者的你掌握了吗?
  4. 科研期刊分区 控制期刊介绍 领域大牛
  5. eclipse jdbc mysql下载_在eclipse里jdbc连接mysql 怎么安装
  6. 用python numpy实现幻方
  7. 戴志坚接替李小加出任职港交所行政总裁 基本年薪700万港元
  8. 在flash cs3场景中插入按钮以后,无法测试场景,删除按钮以后又可以测试?可能是按钮中某个帧上的文本对象的字体错了
  9. 机器学习实战(一)k-近邻kNN(k-Nearest Neighbor)
  10. JAVA Json数组转换List实体对象
  11. 【Jlink驱动无法加载解决办法】
  12. C#注入DLL-C#注入器
  13. 编写一个520表白网站并发布Web教程
  14. 今天是2022年5月21日
  15. oracle 存储过程教程
  16. Python学习笔记——selenium无头模式
  17. 关于如何实现Ubuntu系统的中英文输入法切换
  18. 机器学习实验—K-MEANS聚类
  19. K210人脸识别+断电保存
  20. 贪心算法在找钱问题上的使用

热门文章

  1. oracle测试环境表空间清理
  2. struts2 实现自定义标签
  3. 列举一些常见的系统系能瓶颈 Common Bottlenecks
  4. php字符串处理函数相关操作
  5. 哈哈,我的博客开通啦,欢迎光临~~~~~~~~~~~~
  6. 【组队学习】【35期】吃瓜教程——西瓜书+南瓜书
  7. 【青少年编程】黄羽恒:翻译小工具 -- 利用百度翻译
  8. Matlab编程与数据类型 -- 开关语句switch/end
  9. 什么是SESSION?(三)
  10. 整理了 70 个 Python 面向对象编程案例,怎能不收藏?