sklearn【Accuracy】准确度介绍和案例学习!

一、Accuracy 介绍

在机器学习和数据科学中,准确度(Accuracy)是衡量分类模型性能的一个基本且重要的指标。准确度表示模型正确分类的样本数占总样本数的比例。Python的sklearn库提供了简单而强大的工具来训练和评估分类模型,包括计算准确度。

准确度的计算方式相对直接且简单,下面将详细解释其计算过程。

首先,我们需要明确几个概念:

  • 真正例(True Positive, TP):模型预测为正例,且实际也为正例的样本数。
  • 真反例(True Negative, TN):模型预测为反例,且实际也为反例的样本数。
  • 假正例(False Positive, FP):模型预测为正例,但实际为反例的样本数(即误报)。
  • 假反例(False Negative, FN):模型预测为反例,但实际为正例的样本数(即漏报)。

基于上述概念,准确度的计算公式如下:

Accuracy = TP + TN TP + TN + FP + FN \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} Accuracy=TP+TN+FP+FNTP+TN

这个公式表示的是正确分类的样本数(真正例和真反例之和)除以总样本数(真正例、真反例、假正例和假反例之和)。换句话说,准确度就是模型预测正确的样本占总样本的比例。

在sklearn库中,计算准确度变得非常简单。你可以使用accuracy_score函数,它接受两个数组作为输入:一个是实际的目标值(y_true),另一个是模型预测的值(y_pred)。然后,它会自动计算并返回准确度。

二、案例学习

下面,我们将通过一个简单的示例来展示如何使用sklearn来训练一个分类模型,并计算其在测试集上的准确度。

首先,我们需要导入必要的库,并加载数据集。在这个例子中,我们将使用sklearn自带的鸢尾花(Iris)数据集,这是一个经典的多类分类问题。

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

接下来,我们需要对数据进行预处理。在这个例子中,我们将使用标准缩放(StandardScaler)来使特征具有相同的尺度,这对于许多机器学习算法来说是非常重要的。

# 数据预处理:标准缩放
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

现在,我们可以创建一个分类模型,并使用训练数据进行训练。在这个例子中,我们将使用逻辑回归(Logistic Regression)作为分类器。

# 创建逻辑回归模型
model = LogisticRegression()# 使用训练数据进行训练
model.fit(X_train, y_train)

训练完成后,我们可以使用模型对测试集进行预测,并使用sklearn的accuracy_score函数来计算准确度。

# 对测试集进行预测
y_pred = model.predict(X_test)# 计算准确度
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')# Accuracy: 1.00

在上面的代码中,accuracy_score函数接受实际值(y_test)和预测值(y_pred)作为输入,并返回分类准确度。准确度是一个介于0和1之间的值,越接近1表示模型的分类性能越好。

需要注意的是,准确度虽然是一个直观的指标,但它并不总是最适合衡量模型性能的指标。特别是当数据集的类别分布不平衡时,准确度可能无法准确地反映模型的性能。在这种情况下,我们可能需要考虑其他指标,如精确度(Precision)、召回率(Recall)和F1分数(F1 Score)等。

三、总结

通过上面的示例,我们展示了如何使用sklearn来训练和评估一个分类模型,并计算其在测试集上的准确度。在实际应用中,我们可以根据具体的问题和数据集选择合适的分类模型和评估指标,以得到更准确的分类结果和性能评估。

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

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

相关文章

测绘管理与法律法规 | 中华人民共和国测绘法 | 学习笔记

《中华人民共和国测绘法》笔记: 第一章 总则 第一条:立法目的,即加强测绘管理,促进测绘事业发展,保障测绘事业为经济建设、国防建设、社会发展和生态保护服务,维护国家地理信息安全。 第二条:…

leetcode 295 数据流中中位数

方法一 class MedianFinder:def __init__(self):from sortedcontainers import SortedListself.right 0self.arr SortedList()def addNum(self, num: int) -> None:self.arr.add(num)self.right 1def findMedian(self) -> float:if self.right % 2 0 :return self.a…

网络爬虫软件学习

1 什么是爬虫软件 爬虫软件,也称为网络爬虫或网络蜘蛛,是一种自动抓取万维网信息的程序或脚本。它基于一定的规则,自动地访问网页并抓取需要的信息。爬虫软件可以应用于大规模数据采集和分析,广泛应用于舆情监测、品牌竞争分析、…

ollama大语言模型

查看已经安装的大语言模型 ollama list运行大语言模型 ollama run llama2:latest

Qt实现Mysql数据库的连接,查询,修改,删除,增加功能

Qt实现Mysql数据库的连接,查询,修改,删除,增加功能 安装Mysql数据库,QtCreator Mysql选择Mysql Server 8.1版本安装。 Mysql Server 8.1安装过程 1.首先添加网络服务权限: WinR键输入compmgmt.msc进入…

Linux【实战】—— LAMP环境搭建 部署网站

目录 一、介绍 1.1什么是LAMP? 1.2LAMP的作用 二、部署静态网站 2.1 虚拟主机:一台服务器上部署多个网站 2.1.1 安装Apache服务 2.1.2 防火墙配置 2.1.3 准备网站目录 2.1.4 创建网站的配置文件 2.1.5 检查配置文件是否正确 2.1.6 Linux客户端…

web自动化系列-selenium的3种等待方式(十一)

在ui自动化测试中,几乎出现问题最多的情况就是定位不到元素 ,当你的自动化在运行过程中 ,突然发现报错走不下去了 。很大概率就是因为找不到元素 ,而找不到元素的一个主要原因就是页面加载慢 ,代码运行速度快导致 。 …

oracle guid 使用

在Oracle数据库中,全局唯一标识符(GUID)通常用于生成一个唯一的标识符,这个标识符可以在整个系统中唯一地标识一个实体或记录。在Oracle中,GUID通常通过RAW或VARCHAR2类型来表示。Oracle本身并没有像其他数据库系统&am…

深入理解MySQL中的UPDATE JOIN语句

在MySQL数据库中,UPDATE语句用于修改表中现有的记录。有时,我们需要根据另一个相关联表中的条件来更新表中的数据。这时就需要使用UPDATE JOIN语句。最近我们遇到了这样的需求:我们有一张历史记录表,其中一个字段记录了用,连接的多…

【转】关于vsCode创建后,不显示NPM脚本解决

刚刚使用vue ui新建了个vue项目,打开vs-code发现,无论怎么设置都找不到NPM脚本显示,苦恼了很久,突然发现!打开了package-lock.json,然后立马把vs-code关闭,重新打开,就显示了npm脚本…

DePT: Decoupled Prompt Tuning 论文阅读

DePT: Decoupled Prompt Tuning 了论文阅读 Abstract1. Introduction2. Methodology2.1. Preliminaries2.2. A Closer Look at the BNT Problem2.3. Decoupled Prompt Tuning 3. Experiments5. Conclusions 文章信息: 原文链接:https://arxiv.org/abs/…

OCR-身份证识别认证-身份证实名认证-python接口文档

OCR通常被称作为光学字符识别,以此技术而延申的功能产品有很多种,类如:身份证识别、文档识别、发票识别、驾照识别、护照识别等多类文字识别技术。下面我们以翔云身份证识别接口实现简单的示例。 身份证识别接口可以快速、精准识别证件正反面…

软件架构演化方式的分类以及架构演化时期

1.软件架构演化方式3种较典型的分类方法 目前,软件架构演化方式没有一种公认的分法,分类方法很多,以下列举说明3种较典型的分类方法: (1)按照软件架构的实现方式和实施粒度分类:基于过程…

【行为型模式】模板方法模式

一、模板方法模式概述 模板方法模式定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。(类对象型模式) 模板方法中的基本方法是实现算法的各个步骤,是模板方法的…

rocketmq-dashboard打包测试报错

rocketmq-dashboard运行的时候没问题,但是打包执行测试的时候就是报错 这时候跳过测试就可以成功 报错为 There are test failures. Please refer to D:\CodeEn\rocketmq-dashboard\target\surefire-reports for the individual test results. 你只需要跳过测试就…

【刷题笔记】第九天

文章目录 [LCR 189. 设计机械累加器](https://leetcode.cn/problems/qiu-12n-lcof/)[2007. 从双倍数组中还原原数组](https://leetcode.cn/problems/find-original-array-from-doubled-array/) LCR 189. 设计机械累加器 c专属解法:使用sizeof函数 1 2 3 … ta…

查看transformers模型对应的device的实战代码

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

3D抓取算法中的PointNet++网络介绍

3D抓取算法是一个在机器人抓取任务中广泛使用的算法基线,它结合了深度学习和计算机视觉技术来预测给定三维点云场景中物体的抓取姿态。在这个基线算法中,PointNet 网络是一个关键组件,用于从点云数据中提取有效的特征表示。 下面是关于 3D抓…

vue框架中的路由

vue框架中的路由 一.VueRouter的使用(52)二.路由模块封装三.声明式导航 - 导航链接1.router-link-active类名2.router-link-exact-active类名3.声明式导航-自定义类名 四.查询参数传参五.动态路由传参方式查询参数传参 VS 动态路由传参 六.动态路由参数的…

刷刷刷刷算法

链表 24. 两两交换链表中的节点 /*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/ /*** param {ListNode} head* return {ListNode}*/ var swapPai…