Task01:概览西瓜书+南瓜书第1、2章(2天)
打卡截止时间:2月15日03:00
学习建议:西瓜书第1章和第2章主要是讲一些基本概念和术语,大家自己看就好,不过第1章和第2章有一些知识点可以跳过不看,这些知识点在没有学过后面章节的具体机器学习算法之前较难理解,下面我将其划出来:
第1章:【1.4-归纳偏好】可以跳过
第2章:【2.3.3-ROC与AUC】及其以后的都可以跳过
1.1
image1372×690 130 KB
我估计全世界的机器学习书只有这本有如此抒情散文式的开篇 —— 硬核机器男细腻优雅的文艺情怀。
image1638×482 261 KB
“经验”通常以“数据”形式存在 —— 有醍醐灌顶的感觉。做为一个软件工程师,我对于“数据”没有什么“经验”,虽然知道机器学习和数据科学/统计联系紧密,但是直到看到这句话,才突然理解了机器学习到底是做什么的:模型是基于数据建立的,算法是基于数据产生的,数据的好坏/完整度直接影响了机器学习的结果。软件工程是讲逻辑的,而机器学习没有,纯粹依托于数据提供的信息。
这也解释了chatGPT这个回答,是因为没有关于开车路程和时间和人数的关系这方面的训练数据。
image1180×522 47 KB
1.2
原始数据集
– m个样本
– d个特征,d个特征值
训练数据集 --> 预测 --> 训练结果
测试数据集 --> 预测 --> 测试结果
监督学习:
预测结果离散值 --> 学习任务“分类”(二分类,多分类)
预测结果连续值 --> 学习任务“回归”
无监督学习:
聚类
1.3
image1230×180 66.7 KB
3/2/2可能取值,假设空间规模大小为4x3x3+1 = 37,是说
3/2/2可能取值,再各加一种通配符*什么都行的情况 --> 4x3x3 吗?
最后的1是世界上没有好瓜这种情况?
image1020×334 39.4 KB
这俩是怎么对应的?
1.4 跳过
1.5
硬件存储的发展尤其是云存储和计算让机器学习重新有了发展机会。
1.6
希拉里没有用机器学习所以败选了吗?
2.1 经验误差与过拟合
错误率:E = a/m
精度:(1-a/m)x100%
误差:预测输出与真实输出的差别
– 训练集上的误差:训练误差
– 新样本上的误差:泛化误差
目标:泛化误差越小越好
过拟合:训练误差特别小,泛化误差则很大
– 无法彻底避免
P/NP问题,搜了一下也没有看懂。
2.2 评估方法
测试集:测试学习器对新样本的判别能力
测试误差:泛化误差的近似
测试集与训练集应该互斥
如何从原始数据集中产生训练集和测试集:
2.2.1 留出法
比如1000个原始样本,700个做为训练集,300个做为测试集 (常见训练测试划分比例2:1,4:1)
训练集测试集的划分要保证数据分布一致性 —— 使用分层采样
不同划分方式导致不同结果 --> 单次留出法不靠谱 --> 可以100次划分取平均
2.2.2 交叉验证法
用分层采样,将原始样本均分为K组,每次K-1个组为训练集,剩下一组为测试集,依次循环K次,最后返回均值。
通常K=10,也有5,20.
极端情况K=样本数,即留一法,不受样本划分方式的影响,但样本数较大时训练开销过大。
2.2.3 自助法
每次从原始数据集采样产生训练集时,都会随机从原始数据集挑选一个样本到训练集,然后再放回原始数据集,下一次产生训练集,这个随机样本就仍然有可能被选到。
这样的结果,大概1/3的样本不会在训练集中出现,这样的测试结果叫包外估计。
用途:数据集较小,难以有效划分训练集/测试集
缺点:改变了数据分布,引入估计偏差
2.2.4 调参与最终模型
参数调得好不好对最终模型性能有关键性影响。
验证集:进行模型选择与调参
2.3 性能度量
回归任务的性能度量:均方误差
以下是分类任务的性能度量
2.3.1 错误率与精度
错误率:
精度:
2.3.2 查准率,查全率,F1
混淆矩阵:
查准率/准确率:
预测出的正例里面,有多少是真实的正例(预测有多准)
查全率/召回率:
所有真实的正例里面,有多少被预测出来(预测全了没)
PR图:
image682×596 77.7 KB
曲线以下面积越大,性能越好
平衡点:查准率 == 查全率时的取值,越高则性能越好。
更常用的F1度量:
image716×144 14 KB
应用中对于PR的重视程度不一样,引入查准率/查全率偏好的加权调和:
β == 1:标准F1
β > 1:查全率影响更大
β < 1:查准率影响更大
n个二分类混淆矩阵的查准率和查全率:
宏值F1:各矩阵分别计算出PR值再平均
image720×422 27.2 KB
微值F1:各矩阵先平均值再算PR值
2.3.3及以后 跳过