周志华机器学习读书笔记(二)模型评估与选择

第二章 模型的评估与选择

板蓝根的板蓝(qq:1764681289)

邮箱:1764681289@qq.com


第一节 经验误差与过拟合

1、几个名词解释 

  • 损失函数

  • 风险函数

  • 训练误差

  • 测试误差

  • 泛化误差

  • 经验风险

  • 经验风险最小化(ERM)

  • 过拟合(overfitting)

过拟合   :当学习器把样本训练的太好时,可能已经把训练样本的自身特点当成了所有样本的一般性质,这样就会导致泛化能力下降。过拟合是机器学习面临的关键障碍。周志华先生认为过拟合是无法避免的,我们只能减弱它带来的影响。


第二节 评估方法

1、留出法

将样本分成两个互斥的集合,一部分是训练集,另一部分是测试集,比例一般是2:1到4:1。但是单次留出法得到的结果往往不稳定不可靠,需要进行多次随机划分进行实验取平均值。

2、交叉验证法

将样本分为k的不同的集合,取其中k-1个集合作为训练集,剩余的一个作为测试集,然后再取另k-1个集合做训练集,依次做k次实验,取他们的平均值作为结果,也成为k折交叉验证。k折交叉验证通常需要随机划分p次,成为p次k折交叉验证。

3、自助法

从样本集D有放回的抽取m个样本,得到训练集D',这样一个样本在m次抽取中均不会被抽到的概率为(1-1/m)^m ,他的极限是1/e,大约是0.368,这就是说大约有36.8%的样本在这次取样中不会出现在训练集D'中。我们取D'作为训练集,D/D'作为测试集。

自助法在数据集较少,难以划分训练集 和测试集时很有用,然而,这种方法却会改变样本集的分布,会带来一定的误差。因此,当数据集充足时,留出法和交叉验证法比较常用。


第三节 性能度量

  • 错误率与精度

  • 错误率是分类错误的样本数占样本总数的比例,精度是分类正确的样本数占样本总数的比例

查准率和查全率

查准率与查全率是一对矛盾的指标,可以做出两者的关系图P-R图

可以看出,A,B均完全在C的上面,这意味着他们的性能优于C,而A和B有交叉,此时难以一般性的说明孰优孰劣,因此人们设计了一些综合考察查准率和查全率的性能度量。

我们有用y=x这条线和曲线相交,交点为平衡点(break-even point,简称BEP),用这个点判断哪个性能比较好,不过这个方法过于简单,这时我们便考虑用其他的指标考察。

常用的有F1度量,F1是根据P和R的调和平均定义的

F1还有一个标准形式,Fβ,定义为,β>0。

当β∈(0,1)时,侧重于查准率

当β∈(1,+∞)时,侧重于查全率

当β=1时,即为我们前面提到的F1度量

真正例率(TPR)和假正例率(FPR)

TPR := TP/(TP+FN)

FPR:=FP/(FP+TN)

ROC & AUC 图

绘制图2.4(b)的步骤如下:

给m+个正例和m-个反例,让学习器进行处理给出预测得分,按照得分排序,将分类阈值设置成最大,此时均为反例,真正例率和假正例率都是0,坐标在(0,0)。然后把第一个的预测值作为阈值,则只有第一个例子被预测为正例,若它是正例,则真正例的个数加一,则真正例率变成0+1/m+,y坐标向上移动1/m+,(遍历一遍所有的例子总共有m+个正例,y坐标要向上移动m+/m+ 就是1个单位),若它是反例,则相同,不过是x轴向右移。

正例的得分越高,就会越往前排,这样假如正例和反例被恰好分成前后两部分,我们就可以选择一个阈值,从而完全正确的对样例进行预测,从图形上直观的看就是先沿着y轴直接走到(0,1),再水平向右移动到达(1,1),这样一来,图形的面积就是1,这里还和后面的排序损失(loss)   L(rank)有关,一会再说。我们也可以知道,若一个学习器的曲线完全包含另一个学习器的曲线,则前者的泛化能力比较强。如果两条曲线发生交叉,则可以由面积,即AUC(AREA UNDER ROC CURVE),

定义排序损失为

图中||为示性函数,真则为一,假则为零

此函数对应的是ROC之上的面积,有

 

代价敏感错误率与代价曲线

代价敏感错误率,是由于两者错误带来的后果不一样,正确的答案判为错误,错误的答案判为正确,在不同的情况下代价是不同的。我们将代价敏感错误率定义为

 

至于后面的图2.5及其解释,没有搞明白是什么意思以及它的意义,先搁置


第四节 比较检验 偏差与方差

这一节这要就是运用了数理统计的知识,比如置信区间,置信度,上分位数之类的,还有一些t分布,卡方分布

学习算法的期望预测

偏差        

 

方差

 

噪声

泛化误差=偏差+方差+噪声

需要了解的是 偏差与方差是有冲突的,称为偏差-方差窘境。

 

注:本文的图片均来自李航《统计学习方法》和周志华《机器学习》

 

### 关于周志华机器学习》(西瓜书)第章的学习笔记 #### 模型评估选择概述 模型评估选择机器学习领域的重要组成部分,旨在通过合理的方评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算的期望预测实际结果之间的差距,反映了算自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^2]。 #### 性能度量指标——P-R图及其应用 为了更直观地展示各类分类器的工作特性,通常会绘制精确率-召回率(Precision-Recall, P-R)曲线来辅助分析。当面对多组实验结果时,可以通过观察这些图形相互间的位置关系来进行优劣评判:如果某条曲线始终位于另一条之上,则表明前者具有更好的整体表现;而对于那些存在交点的情况,则需进一步计算各自下方区域面积大小作为判断依据之一。此外,“平衡点”作为一种特殊的性能测度,在特定条件下也能提供有价值的参考信息[^3]。 #### 偏差-方差分解理论简介 该理论为理解学习算的一般化能力提供了框架性的指导思路,通过对平均测试错误率实施拆分操作,可以深入剖析导致过拟合现象背后的原因所在,并据此探索改进措施的方向。具体而言,总误差由三部分构成——不可约减误差点(即噪声)、平方形式表达出来的偏差项以及线性累加而成的方差成分[^4]。 ```python import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import precision_recall_curve, auc def evaluate_model_performance(model, X, y): """ 计算并返回PR曲线下面积(AUC),用于量化模型的整体性能。 参数: model (object): 已经训练好的分类模型实例。 X (array-like of shape (n_samples, n_features)): 测试特征矩阵。 y (array-like of shape (n_samples,)): 对应的真实标签向量。 返回: float: PR AUC得分。 """ # 划分训练集/验证集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2) # 使用训练集拟合模型 model.fit(X_train, y_train) # 获取验证集中各观测对应的概率估计值 probas_pred = model.predict_proba(X_val)[:, 1] # 绘制PR曲线并求得AUC分数 precisions, recalls, _ = precision_recall_curve(y_val, probas_pred) pr_auc_score = auc(recalls, precisions) return pr_auc_score ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值