首页 > 其他分享 >模型评估与选择 数模打卡

模型评估与选择 数模打卡

时间:2024-07-15 13:00:30浏览次数:8  
标签:01 cost TP times 查全率 数模 frac 打卡 评估

文章目录

模型评估与选择(评价指标理论)

1. 经验误差与过拟合

错误率,精度,误差。训练(经验)误差,泛化误差。
过拟合,欠拟合。
模型选择。

2. 评估方法

测试集。测试误差->如何分出训练集S和测试集T。

留出法hand-out

将数据集分为两个互斥的集合作S和T。数据分布的一致性,分层采样。
多次随机划分、重复实验评估后去取平均值。

交叉验证法cross validation

k-fold crass validation:k个互斥子集,每次用k-1个训练,余一个测试,重复k次。
k取值。常用10.
随机使用不同的划分重复p次,如10次10折交叉验证。

  • 留一法:每个子集一个样本。

自助法bootstrapping

自主采样:放回随机抽m个样本,重复m次。
某样本始终不被采到的概率极限是 lim ⁡ m − > ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m->\infty}(1-\frac{1}{m})^{m}=\frac{1}{e}\approx0.368 m−>∞lim​(1−m1​)m=e1​≈0.368
采样作为训练,余下作为测试->out-of-bag estimate
数据集较小;集成学习。

调参与最终模型

测试集、验证集。

3. 性能度量

均方误差mean squared error 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(x_{i})-y_{i})^{2} E(f;D)=m1​i=1∑m​(f(xi​)−yi​)2数据分布D和概率密度函数p(·) E ( f ; D ) = ∫ x   D ( f ( x ) − y ) 2 p ( x ) d x E(f;D)=\int_{x~D}(f(x)-y)^{2}p(x)dx E(f;D)=∫x D​(f(x)−y)2p(x)dx

错误率与精度

错误率:分类错误的样本比例。 E ( f : D ) = 1 m ∑ i = 1 m Ⅱ ( f ( x i ) ≠ y i ) E(f:D)=\frac{1}{m}\sum_{i=1}^{m}Ⅱ(f(x_{i})\ne y_{i}) E(f:D)=m1​i=1∑m​Ⅱ(f(xi​)=yi​)
精度:分类正确的样本数比例。 E ( f : D ) = 1 m ∑ i = 1 m Ⅱ ( f ( x i ) = y i ) = 1 − E ( f ; D ) E(f:D)=\frac{1}{m}\sum_{i=1}^{m}Ⅱ(f(x_{i})= y_{i})=1-E(f;D) E(f:D)=m1​i=1∑m​Ⅱ(f(xi​)=yi​)=1−E(f;D)
对应可写出连续形式。

查准率、查全率与F1

真正例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​
  • P-R曲线:如果一个学习器的P-R曲线被另一个完全“包住”,则可断言后者优于前者。如果发货时那个交叉则难以比较,通常还可以用P-R曲线下的面积大小,以及以下度量。
  • 平衡点Break-Event Point:P=R的取值。
  • F1度量:查准率和查全率的调和平均: F 1 = 2 × P × R P + R = 2 × T P 样例总数 + T P − T N F1=\frac{2\times P\times R}{P+R}=\frac{2\times TP}{样例总数+TP-TN} F1=P+R2×P×R​=样例总数+TP−TN2×TP​
  • Fβ度量:加权调和平均,β>1查全率更重要,<1查准率更重要: F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{\beta}=\frac{(1+\beta^{2})\times P\times R}{(\beta^{2}\times P)+R} Fβ​=(β2×P)+R(1+β2)×P×R​
    在n个二分类混淆矩阵上综合考察查准率和查全率:
  • 先在各混淆矩阵上分别计算查准、查全,然后计算平均值得到宏查准率和宏查全率,以及macro-F1。
    还可将个混淆矩阵的对应元素平均,得到平均TP,FP,TN,FN,计算微查准率、微查全率、微F1.

ROC与AUC

  • 分类阈值threshold,将预测值与之比较,大于为P,小于为N。截断点cut point,排序本身的好坏体现了综合考虑学习器在不同任务下“期望泛化性能”的好坏。
  • ROC:Receiver Operating Characteristic。根据测试结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要的值,分别以它们为横纵坐标作图,得到ROC曲线。
  • 纵轴TPR(真正例率,R),横轴FPR(假正例率) T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP​ F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP​
    (0,1)为理想模型,对角线为随机猜测模型。
  • 操作方式:给定m个正例、n个反例,设置分类阈值为0得到(0,0),此后将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。若为TP,则对应标记点的坐标为(x,y+1/m);若为FP,则为(x+1/n,y),然后用线段连接相邻点即得。
  • 若一个学习器的ROC被另一个ROC曲线包住,则后者的性能更优。若有交叉,比较面积(AUC)。
  • 排序损失loss定义为 l r a n k = 1 m × n ∑ x + ϵ P o s ∑ x − ϵ N e g ( Ⅱ ( f ( x + ) < f ( x − ) ) + 1 2 Ⅱ ( f ( x + ) = f ( x − ) ) ) l_{rank}=\frac{1}{m\times n}\sum_{x+\epsilon Pos}\sum_{x-\epsilon Neg}(Ⅱ(f(x+)<f(x-))+\frac{1}{2}Ⅱ(f(x+)=f(x-))) lrank​=m×n1​x+ϵPos∑​x−ϵNeg∑​(Ⅱ(f(x+)<f(x−))+21​Ⅱ(f(x+)=f(x−)))它对应的是ROC曲线之上的面积,即假正例率,即 A U C = 1 − l r a n k AUC=1-l_{rank} AUC=1−lrank​

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

不同错误的后果不同。最小化总体代价。Pos与Neg分别代表样例集D的正例子集合反例子集,则代价敏感错误率为 E ( f ; D ; c o s t ) = 1 m ( ∑ x i ϵ P o s Ⅱ ( f ( x i ) ≠ y i ) × c o s t 01 + ∑ x i ϵ N e g Ⅱ ( f ( x i ) ≠ y i ) × c o s t 10 ) E(f;D;cost)=\frac{1}{m}(\sum_{x_{i}\epsilon Pos}Ⅱ(f(x_{i})\ne y_{i})\times cost_{01}+\sum_{x_{i}\epsilon Neg}Ⅱ(f(x_{i})\ne y_{i})\times cost_{10}) E(f;D;cost)=m1​(xi​ϵPos∑​Ⅱ(f(xi​)=yi​)×cost01​+xi​ϵNeg∑​Ⅱ(f(xi​)=yi​)×cost10​)类似可以定义基于分布的代价敏感错误率。不止于0、1可以定义出多分类任务的代价敏感性能度量。

  • 代价曲线cost curve,p为正例概率,横轴是 P ( + ) c o s t = p × c o s t 01 p × c o s t 01 + ( 1 − p ) × c o s t 01 P(+)cost=\frac{p\times cost_{01}}{p\times cost_{01}+(1-p)\times cost_{01}} P(+)cost=p×cost01​+(1−p)×cost01​p×cost01​​纵轴是(FPR是假正例率,FNR=1-TPR是假反例率) c o s t n o r m = F N R × p × c o s t 01 + F P R × ( 1 − p ) × c o s t 10 p × c o s t 01 + ( 1 − p ) × c o s t 10 cost_{norm}=\frac{FNR\times p\times cost_{01}+FPR\times (1-p)\times cost_{10}}{p\times cost_{01}+(1-p)\times cost_{10}} costnorm​=p×cost01​+(1−p)×cost10​FNR×p×cost01​+FPR×(1−p)×cost10​​
  • 期望总体代价:ROC曲线上的坐标(TPR,FPR)计算出相应的FNR,然后在代价平面上绘制(0,FPR)到(1,FNR)的线段,包络面积即是。
    在这里插入图片描述
    代码及运行结果(参考https://blog.csdn.net/m0_72195508/article/details/140409460)
from sklearn.metrics import precision_score, recall_score, accuracy_score, f1_score

y_true = [3, 0, 2, 1, 0, 0]
y_pred = [1, 0, 1, 1, 0, 1]

# 计算精确度
precision = precision_score(y_true, y_pred, average='macro', zero_division=1)
print("Precision (macro-average):", precision)

# 计算召回率
recall = recall_score(y_true, y_pred, average='macro', zero_division=1)
print("Recall (macro-average):", recall)

# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
print("Accuracy:", accuracy)

# 计算F1分数
f1 = f1_score(y_true, y_pred, average='macro', zero_division=1)
print("F1 Score (macro-average):", f1)

在这里插入图片描述

标签:01,cost,TP,times,查全率,数模,frac,打卡,评估
From: https://blog.csdn.net/the_great_crab/article/details/140416510

相关文章

  • 聚类分析 数模打卡
    聚类分析1.聚类任务无监督学习:通过对无标记训练样本的学习来揭示数据的内在性质及规律。聚类:把数据集中的样本划分为若干互斥子集,每个子集称一个簇cluster。两个基本问题:性能度量与距离计算。2.性能度量vslidityindex.作为判断和优化目标。外部指标:将聚类结果与某......
  • Day68 代码随想录打卡|回溯算法篇---子集
    题目(leecodeT78):给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。方法:本题为求子集问题,采用回溯算法解决,与之前的组合与分割问题我们最后收集的是树上的叶子节点不同。子集......
  • 打卡信奥刷题(322)用Scratch图形化工具信奥P2735 [普及组/提高组] [USACO3.4] 网 Electr
    [USACO3.4]网ElectricFences题目描述在本题中,格点是指横纵坐标皆为整数的点。为了圈养他的牛,农夫约翰(FarmerJohn)建造了一个三角形的电网。他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n<32000,0<m<32000),再连接格点(p,0)(p>0),最后回到原点。牛可以在不碰到电网的情......
  • 《昇思25天学习打卡营第3天|初学教程/张量 Tensor》
    文章目录张量Tensor内积(InnerProduct)外积(OuterProduct)线性映射(LinearMapping)笛卡儿积(CartesianProduct)创建张量张量的属性张量索引张量运算Tensor与NumPy转换稀疏张量CSRTensorCOOTensor张量Tensor张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之......
  • Doping:使用精心设计的合成数据测试和评估异常检测器的技术
    在这篇文章中,我们将探讨测试和评估异常检测器的问题(这是一个众所周知的难题),并提出了一种解决方案被称为“Doping”方法。使用Doping方法,真实数据行会被(通常是)随机修改,修改的方式是确保它们在某些方面可能成为异常值,这时应该被异常检测器检测到。然后通过评估检测器检测Doping记录......
  • 昇思25天学习打卡营第20天|K近邻算法实现红酒聚类
    这节课主要学习使用MindSpore在部分wine数据集上进行KNN实验。目标是了解KNN的基本概念以及如何使用MindSpore进行KNN实验。1.K近邻算法原理介绍1.1K近邻算法(K-Nearest-Neighbor,KNN)是一种用于分类和回归的非参数统计方法,最初由Cover和Hart于1968年提出(Cover等人,196......
  • Day66 代码随想录打卡|回溯算法篇---分割回文串
    题目(leecodeT131):给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。方法:本题是一个分割回文串的问题,是回溯算法的另一类问题。针对一个字符串,我们要对其进行分割,并且确保分割后生成的子串也必须全都是回文串。分析回溯三......
  • 昇思25天学习打卡营第14天|K近邻算法实现红酒聚类
    红酒Wine数据集类别(13类属性):Alcohol,酒精;Malicacid,苹果酸Ash,灰;Alcalinityofash,灰的碱度;Magnesium,镁;Totalphenols,总酚;Flavanoids,类黄酮;Nonflavanoidphenols,非黄酮酚;Proanthocyanins,原花青素;Colorintensity,色彩强度;Hue,色调;OD280/OD315ofdilutedwines,稀释酒的......
  • 打卡信奥刷题(313)用Scratch图形化工具信奥P2165[普及组/提高] [AHOI2009] 飞行棋
    [AHOI2009]飞行棋题目描述给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列。请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形。输入格式第一行为正整数N......
  • 机械学习—零基础学习日志009(评估方法1留出法)
    评估方法我们通过实验测试来对学习器的泛化误差进行评估并进而做出选择。因此,需要“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testingerror)作为泛化误差的近似。通常假设测试样本也是从样本真实分布中独立同分布采样而得,但需注意的是,测试集应......