机器学习西瓜书 学习笔记

第2章 模型评估与选择

2.1 经验误差与过拟合

错误率 E=a/m
精度 A=1-E
过拟合:学习能力过强,学到了不具备普遍性的特质
欠拟合:学不到,cjb
过拟合无法彻底避免

误差 实际输出和真实输出的差异
泛化误差 新样本上的误差
训练误差/经验误差 训练集上的误差

所以,经验误差过低不一定是好事,容易过拟合,泛化性能会下降
而我们没法获取泛化误差,那么到底该以什么作为标准呢?

2.2 评估方法

测试集 通常假设测试样本也从样本真实分布中独立同分布采样而得,但又要近似与训练集互斥
测试误差 测试集上的误差,作为泛化误差的近似
数据集D,训练集S和测试集T,D一共包含m个样例

2.2.1留出法

D=S∩T
S和T划分时要保持数据分布一样,否则会引入多余的偏差造成额外的影响。
分层采样
D包含500个正例,500个反例。分层采样的S/T正反例比例应该相同,如S350个正例,350个反例,T150个正例,150个反例。
如果比例差异大,会产生偏差。
多种划分方式
例如在刚刚的例子里我们对500正例进行排序,前350个和后350个放入训练集中,结果自然不一样。
因此,单次留出法的结果不够可靠,一般会使用多次随机划分,如100次得100个结果,最终获得100个结果的平均。
劣势——两难困境
因为D有限
若S过大,S会更接近D,但是T小,评估结果不够稳定精确
若T过大,评估结果会更精确,但S和D的差异也会更大
一般将2/3或4/5样本用于训练

2.2.2交叉验证法

p次k折验证
D=D1∪D2∪…Dk
Di保持数据分布一样
每次都用剩下k-1个D的集合作为训练集S,Di作为测试集T
同理,将D划为k份也有多种划分方式,用不同划分方式重复p次,称为p次k折验证。

留一法
D共有m个样本,k=m,p只能为1
留一法的S与D只差一个样本,相似度极高。
成本过高

2.2.3 自助法 bootstrapping

自助法的目的是排除容量偏差
对有m个样本的D采样,得到D‘
第一步,从D中随机挑一个样本,拷贝,放入D’
第二步,放回
第三步,重复m次
由公式 lim ⁡ m → ∞ ( 1 − 1 m ) m = 1 e = 0.368 \lim_{m\to ∞} (1-\frac{1}{m})^m=\frac{1}{e}=0.368 mlim(1m1)m=e1=0.368
D中约有36.8%样本未出现在D‘中
故D’为训练集,D-D‘为测试集
优势
自助法在数据集较小,难以有效划分数据集和训练集时很有用
集成学习
劣势
改变了数据分布,引入了估计偏差

2.2.4 调参与最终模型

学习算法有参数需要设定,参数不同,性能不同。
参数很多在实数范围内取值,所以,对每种参数配置都训练不可行。
常用步长法,就是分个段。
调参对最终模型性能有关键性影响。

2.3性能度量

性能度量是衡量泛化能力的评价标准
样例集D ={(x1,y1),(x2,y2),…,(xm,ym)}
yi是xi的真实标记,评估性能时,我们把f(x)和y作比较

回归任务常用 “均方误差”其实就是方差捏
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^m(f(xi)-yi) ^2 E(f;D)=m1i=1m(f(xi)yi)2
若存在概率密度函数p(.)
则:
E ( f ; D ) = ∫ x − D ( f ( x ) − y ) 2 p ( x ) d x E(f;D)=\int_{x-D}(f(x)-y) ^2p(x)dx E(f;D)=xD(f(x)y)2p(x)dx

2.3.1错误度与精度

错误率为分类错误的样本数占样本总数的比例,精度是正确的巴拉巴拉
分类错误率
E ( f ; D ) = 1 m ∑ i = 1 I ( f ( x i ) ≠ y i ) E(f;D)=\frac{1}{m}\sum_{i=1}I(f(xi)≠yi) E(f;D)=m1i=1I(f(xi)=yi)
精度
a c c ( f ; D ) = 1 m ∑ i = 1 I ( f ( x i ) = y i ) acc(f;D)=\frac{1}{m}\sum_{i=1}I(f(xi)=yi) acc(f;D)=m1i=1I(f(xi)=yi)
那我们再套上数据分布D和概率密度函数p(.)
分类错误率
E ( f ; D ) = ∫ x − D I ( f ( x ) ≠ y ) p ( x ) d x E(f;D)=\int_{x-D}I(f(x)≠y)p(x)dx E(f;D)=xDI(f(x)=y)p(x)dx
精度
a c c ( f ; D ) = ∫ x − D I ( f ( x ) = y ) p ( x ) d x acc(f;D)=\int_{x-D}I(f(x)=y)p(x)dx acc(f;D)=xDI(f(x)=y)p(x)dx
= 1 − E ( f ; D ) =1-E(f;D) =1E(f;D)

2.3.2 查准率 查全率与F1

错误率:一车西瓜中,有多少西瓜被判别错误
精度:一车西瓜中,有多少西瓜被判别正确
查准率:挑出的瓜里有多少个是好瓜
查全率:好瓜中有多少比例被挑了出来
P positive N negative
真正例TP
假正例FP
真反例TN
假反例FN
TP:被模型预测为正类的正样本(实际为正,预测也为正)。
FP:被模型预测为正类的负样本(实际为负,预测为正)。
TN:被模型预测为负类的负样本(实际为负,预测也为负)。
FN:被模型预测为负类的正样本(实际为正,预测为负)。
查准率P
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
查全率R
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
P和R是矛盾的度量
混淆矩阵
在这里插入图片描述

我们按照学习器预测结果对样例进行排序
最前面是“最可能”为正例的样本
最后面是“最不可能”为正例的样本
按顺序,逐个把样本作为正例,计算P和R,画PR曲线
在这里插入图片描述

若一个学习器的P-R曲线完全包住另一个,则性能更优秀
有相对合理的判据是比较P-R曲线包住面积的大小,不容易测算
因此
人们设计了一些性能度量
“平衡点”BEP breaking-even Point,是查准率=查全率时的取值
BEP过于简化,我们引入F1

在这里插入图片描述

F1度量 是查准率与查重率的调和平均
F 1 = 2 × P × R P + R F1=\frac{2×P×R}{P+R} F1=P+R2×P×R
= 2 × T P 样 例 总 数 + T P − T N =\frac{2×TP}{样例总数+TP-TN} =+TPTN2×TP

在这里插入图片描述

Fβ度量是查准率和查重率的加权调和平均

在这里插入图片描述
β>0,代表查全率旋风对于查准率的相对重要性
β=1时退化为标准F1
β>1时查全率更重要
β<1时查准率更重要

有的时候,我们需要在n个二分类混淆举证上综合考察查准率和查全率。
第一种方法,我们算出各个矩阵的查准率,查全率
求和取平均,获得宏查准率,宏查全率和宏F1
在这里插入图片描述

第二种方法,我们对矩阵元素取平均,计算查准率,查全率和F1
获得微查准率,微查全率和微F1 (micro)

2.3.3 ROC与AUC

ROC曲线,代表了一般情况下泛化性能的好坏
同样,根据学习器预测结果,对样例进行排序,逐个把样本作为正例进行预测,每次计算出TPR和FPR的值,以其为横纵坐标,得到ROC曲线
在这里插入图片描述

现实任务中,样例有限,因此只能获得有限个坐标。只能绘出近似ROC曲线(台阶状)
绘图过程如下
(1)给定m+个正例和m-个反例,根据学习器预测结果进行排序
(2)把分类阈值设为最大,所有样例均为反例,TPR=FPR=0
(3)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值