机器学习基础知识详解!
↑↑↑关注后"星标"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. 由于统计了数据的分布情况,所以其实际带的信息要比判别模型丰富,对于研究单类问题来说也比判别模型灵活性强; |
1. 学习和计算过程比较复杂,由于学习了更多的样本信息,所以计算量大,如果我们只是做分类,就浪费了这部分的计算量; |
朴素贝叶斯、贝叶斯网络、隐马尔可夫模型、隐马尔可夫模型 |
判 别 式 模 型 |
1. 由于关注的是数据的边界,所以能清晰的分辨出多类或某一类与其他类之间的差异,所以准确率相对较高; |
1. 不能反映训练数据本身的特性; |
k 近邻法、决策树、逻辑斯谛回归模型、最大熵模型、支持向量机、条件随机场 |
参考:https://cloud.tencent.com/developer/article/1544597;https://www.zhihu.com/question/22374366/answer/155544744
本文来自Datawhale面经项目开源地址:
https://github.com/datawhalechina/Daily-interview
长按关注Datawhale,更多开源内容一起学习成长↓
整理不易,点赞三连↓
机器学习基础知识详解!相关推荐
- R语言基础知识详解及概括
R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建
- R语言可视化绘图基础知识详解
R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...
- 计算机网络相关知识 参考博客 子网掩码怎么理解 网关及网关的作用 路由器基础知识详解
子网掩码怎么理解 https://blog.csdn.net/farmwang/article/details/64132723 网关及网关的作用 https://blog.csdn.net/zhao ...
- RabbitMQ基础知识详解
RabbitMQ基础知识详解 2017年08月28日 20:42:57 dreamchasering 阅读数:41890 标签: RabbitMQ 什么是MQ? MQ全称为Message Queue, ...
- Android随机点名器,Excel基础知识-详解随机点名器
说道制作个案例纯粹意外,我多少有点选择恐惧症,为了不在"选择"上纠结,就自己小玩了一下,就用了程序做了个选择器,其实很简单,就是有小时候玩的"点兵点将",稍微变 ...
- Python基础知识详解 从入门到精通(八)魔法方法
目录 Python基础知识详解 从入门到精通(八)魔法方法 什么是魔法方法 基础魔法方法(较为常用) 比较操作符 算数运算符 反运算(类似于运算方法) 增量赋值运算 一元操作符 类型转换 上下文管理( ...
- 网络管理之基础知识详解
网络管理之基础知识详解 目录 3.1 网络的特征 3.2 拓扑结构 4.1 OSI简介 4.2 数据传输过程 4.3 分层作用 4.4 PDU 5.1 单播 5.2 多播 5.3 广播 5.4 三种通 ...
- 工业相机基础知识详解
工业相机基础知识详解 工业相机是机器视觉系统的一个最关键的组件.他的功能很简单,就是将被检测的物体拍摄下来,然后转换成电脑可以识别的图像,以便以后进行图像处理,从而完成检测任务.工业相机俗称工业摄像机 ...
- 小白入门!网络安全基础知识详解(附知识问答)
小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...
最新文章
- python基于dlib的face landmarks
- mysql 子分区_MySQL子分区一例
- 一个python程序员需要掌握的知识-Python基础知识,初学者的你掌握了吗?
- 科研期刊分区 控制期刊介绍 领域大牛
- eclipse jdbc mysql下载_在eclipse里jdbc连接mysql 怎么安装
- 用python numpy实现幻方
- 戴志坚接替李小加出任职港交所行政总裁 基本年薪700万港元
- 在flash cs3场景中插入按钮以后,无法测试场景,删除按钮以后又可以测试?可能是按钮中某个帧上的文本对象的字体错了
- 机器学习实战(一)k-近邻kNN(k-Nearest Neighbor)
- JAVA Json数组转换List实体对象
- 【Jlink驱动无法加载解决办法】
- C#注入DLL-C#注入器
- 编写一个520表白网站并发布Web教程
- 今天是2022年5月21日
- oracle 存储过程教程
- Python学习笔记——selenium无头模式
- 关于如何实现Ubuntu系统的中英文输入法切换
- 机器学习实验—K-MEANS聚类
- K210人脸识别+断电保存
- 贪心算法在找钱问题上的使用