【机器学习-周志华】——学习笔记(2.3)

本文深入探讨了评估机器学习模型性能的关键指标,包括查准率(P)、查全率(R)及其平衡点(BEP),F1分数的计算方法,以及ROC曲线与AUC的原理和计算方式。通过详细解析混淆矩阵,阐述了不同评价标准在实际应用中的重要性和适用场景。

上一篇

第二章:

第三节:

1. 查准率P:指查出来的有几个对的

2. 查全率R:指对的有几个被查出来

3. 特别的,对于二分类问题,将预测的正误与真实的正误交叉构成“混淆矩阵”,分为真正TP、假正FP、真反TN、假反FN

   

4. 很明显P-R是互斥的,做P-R曲线如下图,且与 P=R 的交点称为平衡点(BEP),平衡点对应的(P,R)值越高或P-R曲线围得面积越大,就越好。因此平衡点的值成为模型性能度量的标准之一。

5. 当然不同问题对PR要求不同,例如推荐算法看重P,罪犯检索看重R,因此提出更为常用的评价准则

其中β大于0小于1时P更重要,大于1sh时R更重要,,等于1时就是经典的F1

6. 另外,对于多个模型(同一问题不同数据集分割方法,例如交叉验证)的多个混淆矩阵,采取分别计算对应的P、R再取平均再计算F

7. ROC与AUC :

对于分类问题(以二分类为例),很多模型给出的是样本属于某个分类的概率(对于二分类就是预测为正的概率),我们一般称为样本分数,之后我们通过设定阈值来决定(大于阈值)哪些是预测为正的样本,再结合真实情况,由混淆矩阵计算TPR和FPR。

很明显,一个阈值值对应一个(TPR,FPR)值对,我们将阈值取遍[ 0,1 ],就能得到无数个(TPR,FPR)值对,这些值对构成的曲线就是TPR-FPR图,又称ROC曲线。曲线下方围成的面积就是AUC。

这个图的特征是,越靠近(0,0)点,阈值越趋近与1。整体曲线越趋近于(0,1)点,模型效果也好

但是,由于样本数是有限的,且一些小幅度阈值变化并不会影响TPR,FPR变化,所以ROC曲线不是“光滑的”,而且我们也没必要取遍[ 0,1 ],只需要取遍样本分数从大到小的不同的值即可。

下面给出AUC计算方法:

1)由大到小取遍分数作为阈值,由于ROC曲线不是“光滑的”,我们可以假设曲线面积就是每一个不同阈值的得来的(TPR,FPR)对应的小梯形的面积和,设共m个样本,当前分数为Sn,对应TPRn,FPRn,从分数S0到Sm-1则公式为

2)还有一种考虑,一个关于AUC的很有趣的性质是,它和Wilcoxon-Mann-Witney Test是等价的。而Wilcoxon-Mann-Witney Test就是从样本集中随机抽两个样本,满足正类样本的分数大于负类样本的分数(Positive class’s score is Greater than Negative class’s score,一下简写为PGN)的概率,这里包含“(A,B)与(B,A)对称重复”、“两正两负无意义比较”。所以简单来说,就是假设有M个正样本,N个负样本,将他们一一对比M*N次,PGN的“频率”,这个频率的分母是M*N但分子不是简单的PGN条目数,而是PGN条目数加0.5*“正负样本分数相等”的条目数。这种估计随着样本规模的扩大而逐渐逼近真实值。这个公式不好给,后面有代码。

3)在2的基础之上延伸出一种复杂度更低的计算方法——rank法,就是假设样本数为n,正样本数为M,负样本数为N,将分数由大到小排序,并设最大分数对应的样本的rank值为n,第二大的为n-1以此类推,这样一定程度上就保证rank代表该条样本对PGN的贡献。如果我们随机抽一个样本且它恰好为正样本(避免对称重复),当它与其他样本比较时,不难理解每个正样本都要和其他M-1个正样本比较一次这些是无意义的,减掉(避免无意义比较)。最终公式为,正样本rank和减去冗余比较除次数。

注意的是,对于 ‘2)' 中提到的“正负样本分数相等”的情况采取的方法是,相同分数的正样本rank用与其同等分数的全部样本rank和的平均值代替,在把所有正样本rank相加。公式泛化为下式,其中rankj是与正样本i分数值相同的I个样本的rank值。

上代码!

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

下一篇

### 关于周志华机器学习》(西瓜书)第二章的学习笔记 #### 模型评估与选择概述 模型评估与选择是机器学习领域的重要组成部分,旨在通过合理的方法评价不同模型的表现并挑选最优者。这一过程不仅涉及如何衡量单个模型的好坏,还包括怎样对比多个候选方案以做出最佳决策。 #### 偏差、方差和噪声的概念解析 偏差度量了学习算法的期望预测与实际结果之间的差距,反映了算法自身的拟合精度;方差描述的是相同规模训练集变化引起的学习效果波动情况,体现了数据扰动带来的影响;而噪声则设定了给定任务下所有可能采用的学习方法能达到的最佳预期泛化误差界限,揭示了问题本身固有的复杂性和挑战性[^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 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值