【Machine Learining】Ch2. 模型评估与选择

第2章 模型评估与选择·

2.1 经验误差与过拟合

错误率:分类错误的样本数占总样本数的比例
精度:1-错误率

过拟合:学习器把训练样本学的太好,甚至把训练样本的特点当做了潜在样本的一般性质,导致泛化性能下降的现象。
引起过拟合的因素一般是学习能力太过强大。

欠拟合:对训练样本的一般性质没有学习好。
引起欠拟合的因素一般是学习能力低下。

对候选模型的评估方法,对泛化误差进行评估,并选取泛化误差的最小的。由于无法直接获得泛化误差,需要选择一定的评估方法。

2.2 评估方法

需要建立测试集(testing set),将模型在测试集上测试误差(testing error)作为泛化误差的近似。

2.2.1 留出法

操作方法

将数据集D划分为两个互斥的集合,其中一个作为训练集S,另外一个作为测试集T。在S训练完后,在T上进行测试,得到测试误差,作为泛化误差的近似。

注意事项

  1. 测试集和训练集划分尽可能保持数据分布的一致性,避免因为数据集划分引入额外偏差而带来影响,在采样的时候使用分层采样的方法。
  2. 由于样本划分的不同,单次使用留出法得到的结果往往不够稳定可靠,需要随机划分,反复试验后取平均值作为最后的结果。

2.2.2 交叉验证法

操作方法

交叉验证法首项将数据集D划分为k个大小相似的互斥子集,每个子集尽可能保持数据分布一致(分层采样)。将其中的k-1个子集作为训练集,剩余一个子集作为测试集。将每个子集均做为测试集进行一次(共k次)交叉验证法,又称为k折交叉验证。

注意事项

  1. 与留出法相同,通常要将随机使用不同的划分p次,将p次的结果取平均值作为p次k折交叉验证的最终结果。
  2. 特别的,若k等于数据集中样本总数,即可得到留一法,留一法中被实际评估的模型与期望评估模型用数据集D训练处的模型很相似,但是计算开销很大。

2.2.3 自助法

操作方法

给定一个包含m个样本的数据集D,每次从中挑选一个样本拷贝进D‘,执行m次后,可以得到一个包含m个样本的数据集D’。若执行次数无限多,那么大概有 1 e \frac{1}{e} e1的样本始终没有被选择到。将D’作为训练集,将D\D’作为作为测试集。这样的测试结果,也作为包外估计。

注意事项

  1. 自助法在数据集较小,难以划分训练集和测试集是很有用。

2.2.4 参数调节与最终模型

参数调节

对每个参数选定一个范围和变化步长,例如在[0,0.2]范围内以0.05作为步长,从候选值中选出定值。假定算法有3个参数,每个参数仅考虑5个候选值,这样就有 5 3 = 125 5^3=125 53=125个模型进行考察。

最终模型

在学习算法和参数配置已经选定后,应该用数据集D重新训练整个模型,在训练中需要使用数据集中所有的m个样本。

2.3 性能度量

用于衡量模型泛化能力的评价标准,就是性能度量。

在回归模型中,常用的性能度量是均方误差(mean squared error)

E ( f ; d ) = 1 m ( f ( x i ) − y i ) 2 E(f;d) = \frac{1}{m}(f(x_i)-y_i)^2 E(f;d)=m1(f(xi)yi)2

当给定数据分布 D D D和概率密度函数 p ( ⋅ ) p(·) p(),均方误差可以描述为

E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x E(f;D) = \int_{x \sim 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 m I ( f ( x i ) ≠ y i ) E(f;D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb I(f(x_i) \ne y_i) E(f;D)=m1i=1mI(f(xi)̸=yi)
对于给定数据分布,可以认为
E ( f ; D ) = ∫ x ∼ D I ( f ( x i ) ≠ y i ) p ( x ) d x E(f;D)=\int_{x \sim D}\mathbb I(f(x_i) \ne y_i)p(x)dx E(f;D)=xDI(f(xi)̸=yi)p(x)dx

精度
a c c ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) acc(f;D) = \frac{1}{m} \sum_{i=1}^{m} \mathbb I(f(x_i) = y_i) acc(f;D)=m1i=1mI(f(xi)=yi)
给定数据分布,可以认为
E ( f ; D ) = ∫ x ∼ D I ( f ( x i ) = y i ) p ( x ) d x E(f;D)=\int_{x \sim D}\mathbb I(f(x_i) = y_i)p(x)dx E(f;D)=xDI(f(xi)=yi)p(x)dx

KaTeX parse error: Expected 'EOF', got '\romannumeral' at position 1: \̲r̲o̲m̲a̲n̲n̲u̲m̲e̲r̲a̲l̲1

2.3.2 查准率,查全率与F1

对于二分类问题,可以将样例根据其真实类别与学习器预测类别的组合划分为:真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情况,用TP、FP、TN、FN代表四种情况,显然可得TP + FP + FN + TN = 总样本数。

TP:本身为正例,预测结果也为正例。
FP:本身为反例,预测结果为正例。
TN:本身为反例,预测结果也为反例。
FN:本身为正例,预测结果为反例。

查准率: P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP
查全率: R = T P T P + F N R = \frac{TP}{TP+FN} R=TP+FNTP

可以这样理解,我们观察到的肯定是模型的输出结果,准确的应该是TP,但是由于模型精确度不够高,有些反例也被当做正例,也就是FP,故查准率应该是TP占TP和FP的百分比。从另一方面来讲,我们想要了解到正例在分类中的出现情况,然而有些正例被当做反例输出出来了,即FN,所以查全率是TP占TP和FN的百分比。

这一对度量是相互矛盾的,即查准率高的时候,查全率往往偏低,查全率高的时候,查准率往往偏低。

关于P-R曲线,个人觉的西瓜书上讲解的不是很清楚,可以参考这篇博客

有几点觉得还是值得注意的

  1. P-R曲线可能会过(0,0)点。如当第一个样本本身为反例,预测结果也为反例的时候,此时TP=0,故P=R=0。不过这样情况发生概率较小,若排序后第一个样本不能正确预测,那么学习模型和可能出线了问题。
  2. 最理想的PR曲线是一个矩形,即学习模型找到一条分界线,成功将数据集分为TP和TN。
  3. 若一条PR曲线完全包含另外一条PR曲线,则认为前者更优,若交叉,则可通过平衡点(Break-Even Point)、面积来判断孰优孰劣。BEP和面积都是越大越好。

F1度量

F 1 = 2 × P × R P × R = 2 × T P 样 例 总 数 + T P − T N F1 = \frac{2 × P × R}{P×R}= \frac{2×TP}{样例总数+ TP-TN} F1=P×R2×P×R=+TPTN2×TP

F β F_{\beta} Fβ度量

F β = ( 1 + β 2 ) P R ( β 2 P ) + R F_{\beta} = \frac{(1+\beta^2)PR}{(\beta^2P) + R} Fβ=(β2P)+R(1+β2)PR
其中 β \beta β表示查全率相对于查准率的重要性, β &gt; 1 \beta&gt;1 β>1时查全率有更大的影响, β &lt; 1 \beta&lt;1 β<1时查准率有更大的影响。

在面对多分类问题的时候,可以选择计算两两类别之间的混淆矩阵,进而得到两两数据之间的P和R,对P和R求平均值可以得宏查准率和宏查全率。也可以计算两两类别之间的混淆矩阵,对混淆矩阵求平均值,进而得到微查准率和微查全率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值