总结与回顾| 学习笔记

简介: 快速学习总结与回顾。

开发者学堂课程【机器学习算法 :总结与回顾】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7182


总结与回顾

 

内容介绍:

一、 课程纲要

二、 学习目标

三、 思考与练习

 

一、 课程纲要

image.png

在这一节主要学习了模型的评估与选择,内容如下:

1. 模型选择的原则,要清楚各种误差的定义。比如说训练误差、测试误差、泛化误差等等。理论的情况下,是用泛化误差来评估比较好,泛化误差越小,模型越好。泛化误差需要基于对数据全集进行评估,但事实上绝大多数情况拿不到数据全集,就采取另一种办法。拿不到全局最优就选择局部最优,就会选择一个测试集,用测试误差的近似的估计。

2. 模型的性能指标,比如说是线性回归模型通常使用 mse 平均均方误差来评估。

3. 模型评估的方法。分类的评估方法比较多,常见的率,错误率、准确率、查准率、查全率还有f、image.png、f1_score等,除此之外还有别的方式虹桥矩阵非常直观的看评估结果或者是画一个 lc 曲线,又或者是 pr 曲线,这个曲线和 roc 下的面积相关的。关于分类的评估在之前的课程中都有介绍过,可以在前面找见。还有就是聚类的评估,它是一个模式识别的算法,会从数据中选择一个隐藏的模式,这个的评估比较费劲没有那么直观,通常使用 web 指标。Web 指标是指找到一个参考的模型,用生成的模型和参考的模型去做对比;另一个是内部指标,是用来计算不同的类中相异程度和同一个类的相似程度。Holdout 就是把已知的数据集一分为二,一部分作为测试集,一部分作为训练集。测试集和训练集也是有要求的,首先是不要有交集的,相互斥的;还有要求训练集和测试集的大小一般是训练集较大,大约是7:3或8:2的,具体要自己判断。还有一种方法就叫 p 次 k 折交叉验证,并且有一个特殊的k折叫留一法,即只留出一条作为测试,其他的都作为训练。另外,有一个比较有意思的叫做自助法;熵权法,它支持 oob(out of band),就是说在有放回的随机抽样生成测试集的同时,有36.8%的数据不会取到,而百分之三十六点一的数据来作为测试集来测试

4. 模型性能的比较。很难直接根据数据简单的值来比较好坏,模型中都有随机性,比如说是数据集的生成,测试集、训练集的生成是有随机性的,还有就是模型的本身在具体的算法中也是有随机性的,这就导致了不能去直接比两个值的大小来判断好坏。通常使用假设检验的方法,所使用到的逻辑:首先根据描述生成一个零假设或是原假设,又或者叫空假设。有一个image.png,这个假设是我们希望收集证据去推翻,之后会确认检验水平 image.png,一般取0.05或0.01等等,具体要根据业务场景来判断。然后再根据原假设设定统计量 p、f、e 等等,用固定的公式来算,至于选择哪一个,可以根据推荐过的书中有图表,按照图表做一次参考。算出量之后,通过查找图标可以找到一个 p 值,这个值就是在原假设成立的情况下当前事实发生的概率。若 p 值小于所检验的水平,比如小于是0.05,那么就认为在原假设成立的情况下,当前事实发生的概率非常小,当前事实已发生,说明原假设不成立;也有 p 值大于所检验水平,大于0.05,就无法推翻原假设,但也不能证明原假设成立,原假设是一个全称假设,只能推翻不能够证实。也就是说要么没法判断,要么搜集更多的数据,在做下一步的检验,假设检验是统计学的知识点。有印象的回顾以下,没有学过的把刚刚讲的原理弄明白,是如何实现的就行。

 

二、 学习目标

image.png

1. 了解模型选择的原则。就是之前讲的误差。

2. 账务交叉验证法评估模型。方法有很多,这里就讲了三四个,需要去了解并掌握。

3. 熟悉常见模型的性能指标。比如说是回归的 mse,回归还有很多的 mae 等等,后期也会根据其他的进行讲解。分类的评估更多,聚类的就更为困难,它有一些成群的指标

4. 了解模型评估的误差与方差。选择模型最好的就是泛化误差,但泛化误差因为没有数据全集不太容易讲。通过数学公式推导可以指导,泛化误差由三个部分组成,分别就是偏差、方差、噪声。噪声是综合因素组成的,它的期望值为0,但这个无法去除。只能对方差和偏差做一个综合的评估,对偏差来讲模型越复杂偏差越小,而对方差来讲模型越简单方差越小。这两个在一起综合的考虑一下,可以看到怎样平衡的。

 

三、 思考与练习

1以 IRIS 分类为例,使用不同的参数,对不同的分类结果进行评价,选择合适的参数。这个可以用阿里云判断来实现,是比较简单的。大部分的时间不是在写代码而是在研究不同的分类。

2以 IRIS  分类为例,使用不同的交叉验证的方法,去评估模型,调整参数。至少要测试 hold-out 测试,比如5折或是10折的来验证,建议做一次自助法,这个方法用的比较多或是说这个思路是后续建模所需要的。

3以 IRIS 聚类为例,使用不同聚类方法或者聚成不同个数类别时,评估其模型优劣。这个较难,因为聚类的需要花费大量时间来了解。

4以一个二分类模型为例,使用介绍过的性能指标评价该模型,绘制 ROC 曲线,理解各指标含义。会发现应用场景不同,所侧重的指标是不一样的

5了解不同假设检验方法适用的场景,并掌握假设检验的基本流程。试找一例,手工完成整个假设检验的流程。手动去算,去查表,建议找更多的例子,找到原假设,看生成的正确性。

相关文章
|
Java 应用服务中间件 数据库
RocketBot 的使用 | 学习笔记
快速学习 RocketBot 的使用
RocketBot 的使用 | 学习笔记
|
SQL 开发框架 JSON
honeycomb使用|学习笔记
快速学习honeycomb使用
709 0
honeycomb使用|学习笔记
|
NoSQL MongoDB 开发者
故障测试_1|学习笔记
快速学习故障测试_1
故障测试_1|学习笔记
|
数据可视化 Java 开发工具
超详细的vimtutor学习笔记(中)
第一讲 编辑 1.1 移动光标 使用 h、j、k、l 键可以使光标实现左、下、上、右的移动。 也可以使用 ↑ ↓ ← → 进行上下左右的移动。
110 0
|
机器学习/深度学习 算法 开发者
总结与回顾| 学习笔记
快速学习总结与回顾。
总结与回顾| 学习笔记
|
人工智能 开发者
特征空间与应用 | 学习笔记
快速学习特征空间与应用
特征空间与应用 | 学习笔记
|
Java 开发者 Python
Self 的介绍 | 学习笔记
快速学习 Self 的介绍
Self 的介绍 | 学习笔记
|
缓存 Dubbo 应用服务中间件
本地存根|学习笔记
快速学习本地存根
本地存根|学习笔记
|
开发者 Python
__name__的使用 | 学习笔记
快速学习__name__的使用
__name__的使用 | 学习笔记
|
前端开发 Java 网络架构
合法性检查|学习笔记
快速学习合法性检查
185 0