【人工智能】模型性能评估

news2024/12/26 21:56:33

模型性能衡量介绍

混淆矩阵

混淆矩阵(Confusion Matrix)
在这里插入图片描述

TP(真阳性):预测为阳性,且预测正确。
TN(真阴性):预测为阴性,且预测正确。
FP(伪阳性):预测为阳性,但预测错误,又称型一误差(Type I Error),或α误差。
FN(伪阴性):预测为阴性,但预测错误,又称型二误差(Type II Error),或β误差

有了TP/TN/FP/FN之后,我们就可以定义各种效能衡量指标,常见的有四种:
准确率 精确率 召回率 F1


准确率

准确率(Accuracy)=(TP+TN)/(TP+FP+FN+TN),即预测正确数/总数

精确率

精确率(Precision)=TP/(TP+FP),即正确预测阳性数/总阳性数

召回率

召回率(Recall)=TP/(TP+FN),即正确预测阳性数/实际为真的总数

F1

F1=精确率与召回率的调和平均数,即1/[(1/Precision)+(1/Recall)]

在这里插入图片描述


针对二分类,还有一种较客观的指标称为ROC/AUC曲线,它是在各种检验门槛值下,以假阳率为X轴,真阳率为Y轴,绘制出来的曲线,称为ROC。
覆盖的面积(AUC)越大,表示模型在各种门槛值下的平均效能越好,这个指标有别于一般预测固定以0.5当作判断真假的基准。


采用Scikit-Learn示例

假设有8笔数据如下,请计算混淆矩阵(Confusion Matrix)。
实际值=[0, 0, 0, 1, 1, 1, 1, 1]
预测值=[0, 1, 0, 1, 0, 1, 0, 1]

加载相关套件

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score,classification_report,confusion_matrix, precision_score,recall_score

confusion_matrix 是 Scikit-Learn 中用于计算混淆矩阵的函数。

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

# 混淆矩阵
tn,fp,fn,tp = confusion_matrix(y_true,y_pred).ravel()
print(f'TP={tp}\tFP={fp}\tTN={tn}\tFN{fn}')

使用 ravel() 函数(或 .flatten() 方法)来将混淆矩阵展平为一维数组时,默认情况下,数组中的元素会按照行优先的顺序进行排列。这意味着数组的第一个元素将是混淆矩阵的第一行的第一个元素,第二个元素将是第一行的第二个元素,依此类推,直到第一行的最后一个元素。然后,数组将继续包含第二行的元素,以此类推。

实际值与预测值上下比较,TP为(1, 1)、FP为(0, 1)、TN为(1, 0)、FN为(0, 0)。
执行结果应该为:TP=3, FP=1, TN=2, FN=2

运行验证:
在这里插入图片描述

按上述数据计算效能衡量指标:

print(f'准确率: {accuracy_score(y_true,y_pred)}')
print(f'公式验算:{(tp+tn)/(tp+tn+fp+fn)}')

print(f'精确率: {precision_score(y_true,y_pred)}')
print(f'公式验算:{(tp)/(tp+fp)}')

print(f'召回率: {recall_score(y_true,y_pred)}')
print(f'公式验算:{(tp)/(tp+fn)}')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1688507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

widedeep模型简介

wide&deep模型 1.简介2.原理2.1 网络结构 3. 稀疏密集特征4.API和子类方式实现 1.简介 Wide and deep 模型是 TensorFlow 在 2016 年 6 月左右发布的一类用于分类和回归的模型,并应用到了 Google Play 的应用推荐中。wide and deep 模型的核心思想是结合线性模…

VBA_MF系列技术资料1-615

MF系列VBA技术资料1-615 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-0…

Ubuntu切换内核版本

#安装内核安装工具 sudo apt-get install software-properties-common sudo add-apt-repository ppa:cappelikan/ppa sudo apt-get update sudo apt-get install mainline#安装指定内核版本(有些版本并不能安装成功) mainline install 5.14.10#更新GRUB配置 sudo update-grub#查…

go mod模式下,import gitlab中的项目

背景 为了go项目能够尽可能复用代码,把一些公用的工具类,公用的方法等放到共用包里统一管理。把共用包放到gitlab的私有仓库中。 遇到的问题 通过https方式,执行go get报了错误。 通过ssh方式,执行go get报了错误。 修改配置&am…

Joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞环境

1 漏洞概述 Joomla是一个基于PHP的内容管理系统(CMS),广泛应用于各类网站。2017年,Joomla 3.7.0版本被发现存在SQL注入漏洞(CVE-2017-8917),攻击者可以利用该漏洞对数据库进行未授权查询或操作…

副业树洞聊天项目/树洞倾诉/陪陪系统源码/树洞源码下载搭建

随着社会的发展和人们生活水平的提高,越来越多的人在面临心理压力、情感困扰或生活困境时,需要一个可以宣泄、倾诉和寻求支持的平台。而传统的人际交往方式往往会遇到难以排解的问题,比如担心被他人知晓自己的隐私等,这就导致了人…

鸿蒙系统和安卓系统通过termux搭建Linux系统—Centos

目录 1. 前言 2. 效果图展示 3. 安装termux 4. 安装Centos系统 4.1 更换源 4.2 拉取镜像 4.3 启动centos 5.结尾 1. 前言 大家好,我是jiaoxingk 今天这篇文章让你能够在手机或者平板上使用Linux-Centos系统 让你随时随地都能操作命令行进行装13 2. 效果图展示…

【科普知识】伺服电机中的内置制动器

在工业自动化和机器人技术快速发展的今天,伺服电机作为核心驱动元件,其性能与功能直接影响整个系统的运行效率与稳定性。 近年来,一体化伺服电机技术不断融合创新,并逐步加入了许多新的硬件和软件的功能,为工业自动化领…

全域外卖是谁创办的公司?

全域外卖是谁创办的公司?这个问题是抽象的。正确的问法应该是全域外卖是谁研发的系统。 在了解全域外卖系统前,我们首先要了解什么是全域外卖,什么是全域团购。全域指的是多平台。当然这个平台是越多越好。实际上也可以理解为聚合外卖、聚合…

图数据库助力供应链柔性升级

导读 当今市场环境受短视频等流媒体影响,任何风险事件在社交网络中传播速度极其迅速,留给企业的反应时间按分秒计,传统供应链的年度计划面对剧烈变化的市场环境已失去意义。此外,受近年局势动荡的影响,市场需求和供应…

Unity 资源 之 限时免费的Lowpoly农场动物,等你来领!

Unity资源 之 Lowpoly farm animals 农村动物 前言资源包内容领取兑换码 前言 Unity 资源商店为大家带来了一份特别的惊喜——限时免费的农场动物资源!这是一个充满趣味和实用性的资源包。 资源包内容 在这个资源包中,你可以找到丰富多样的低地养殖动物…

VScode代码片段自动转图标

注:在VScode编辑器中,编辑html、vue等文件时,特定代码片段(token/xxx’等)自动转图标显示,按住“ctrl鼠标左键”还可跳转“https://icones.js.org/collections”,个人感觉干扰代码编写&#xff…

VMware 安装Windows 7 SP1

1.下载镜像 迅雷:ed2k://|file|cn_windows_7_enterprise_with_sp1_x64_dvd_u_677685.iso|3265574912|E9DB2607EA3B3540F3FE2E388F8C53C4|/ 2.安装过程 自定义名字,点击【浏览】自定义安装路径 点击【浏览】,选择下载镜像的路径 结束啦~ Win…

详解http协议

什么是HTTP协议 定义 Http协议即超文本传送协议 (HTTP-Hypertext transfer protocol) 。 它定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向&am…

记录一个写SpringBoot中Hive数据可以正常提取但无法存到MySQL的bug

【背景】 我正在用SpringBoot框架写一个数据治理项目,目前所处阶段是将hive和hdfs中的元数据提取出来,存储到MySQL中,我的hive和hdfs上的数据存储在三台Linux服务器上(hadoop102-104),MySQL在我本地Window…

C语言常用的内存操作函数

在C语言中经常会操作内存中的数据,下面来介绍一下常用的一些内存操作函数。 memcpy memcpy用于从source的位置开始向后复制num个字节到destination的内存位置,其函数原型如下: //destination是目标地址,source是源地址&#xff…

想要学会做抖店,每天重复这些步骤就可以了!

大家好,我是电商糖果 有很多朋友店铺开好之后,不知道每天要干嘛。 只知道把产品上架,然后等着出单。 说实话这种情况的朋友不是一个,而是很多。 糖果做小店也有很多年了,也开了多家店铺,下面就来给大家…

论Promise在前端江湖的地位及作用

系列文章: 先撸清楚:并发/并行、单线程/多线程、同步/异步 论Promise在前端江湖的地位及作用 前言 上篇文章阐述了并发/并行、单线程/多线程、同步/异步等概念,这篇将会分析Promise的江湖地位。 通过本篇文章,你将了解到&#x…

算法刷题笔记 数的范围(C++实现)(二分法重要例题)

文章目录 题目描述题目思路题目代码(C)题目感想 题目描述 给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该…

Flutter 中如何优雅地使用弹框

日常开发中,Flutter 弹框(Dialog)是我们使用频率非常高的控件。无论是提示用户信息、确认用户操作,还是表单填写,弹框都能派上用场。然而,看似简单的弹框,实际使用起来却有不少坑和使用的技巧。…