机器学习之贝叶斯分类器和混淆矩阵可视化

news2025/1/11 4:48:04

贝叶斯分类器

目录

  • 贝叶斯分类器
    • 1 贝叶斯分类器
      • 1.1 概念
      • 1.2算法理解
      • 1.3 算法导入
      • 1.4 函数
    • 2 混淆矩阵可视化
      • 2.1 概念
      • 2.2 理解
      • 2.3 函数导入
      • 2.4 函数及参数
      • 2.5 绘制函数
    • 3 实际预测
      • 3.1 数据及理解
      • 3.2 代码测试

1 贝叶斯分类器

1.1 概念

贝叶斯分类器是基于贝叶斯定理构建的分类方法,它通过计算后验概率来对数据进行分类。

1.2算法理解

在这里插入图片描述

  • P(A|B) 是在事件B发生的条件下事件A发生的概率,称为A的后验概率。
  • P(B|A) 是在事件A发生的条件下事件B发生的概率。
  • P(A)是事件A发生的概率,称为A的先验概率。
  • P(B)是事件B发生的概率。

在这里插入图片描述

现在,我们使用朴素贝叶斯牙类器莱计算给定特征值下每个类别的后验率:
P(D=0|A=1,B=1,C=0)=P(D=0)P(A=1ID=0)P(B=1|D=0)P(C=0|D=0)=0.50.6670.3330.667=0.08335583549429845
P(D=1|A=1,B=1,C=0)=P(D=1)P(A=1|D=1)P(B=1|D=1)P(C=0ID=1)0.50.3330.6670.333=0.037499999999999996

1.3 算法导入

from sklearn.naive_bayes import MultinomialNB

1.4 函数

  • MultinomialNB()
  • fit(x_tr,y_tr)
  • predict(x_tr)

2 混淆矩阵可视化


2.1 概念

混淆矩阵(Confusion Matrix),也称为错误矩阵,是一种特别适用于监督学习的评估分类模型性能的工具,尤其是在分类问题中。混淆矩阵展示了实际类别与模型预测类别之间的关系。

2.2 理解

在这里插入图片描述

  • TP(True Positive):正确预测到的正类样本数。
  • FN(False Negative):实际为正类但预测为负类的样本数。
  • FP(False Positive):实际为负类但预测为正类的样本数。
  • TN(True Negative):正确预测到的负类样本数。

基于混淆矩阵,可以计算出以下几种性能指标:

  • 准确率(Accuracy):(TP + TN)/(TP + TN + FP + FN)
  • 精确率(Precision):TP/(TP + FP)
  • 召回率(Recall)或真正例率(True Positive Rate, TPR):TP/(TP + FN)
  • F1分数(F1 Score): 2 *(Precision * Recall)/(Precision + Recall)
  • 假正例率(False Positive Rate, FPR):FP/(FP + TN)

2.3 函数导入

from sklearn.metrics import confusion_matrix

2.4 函数及参数

metrics.classification_report(y_te,te_pr,digits=6)

  • y_te,已知道结果类别
  • te_pr,训练模型预测的结果类别
  • digits=6,结果保留的小数点

2.5 绘制函数

代码展示:

def cm_plot(y,y_pr):
    cm = confusion_matrix(y,y_pr)
    plt.matshow(cm,cmap=plt.cm.Blues)
    plt.colorbar()
    for x in range(len(cm)):
        for y in range(len(cm)):
            plt.annotate(cm[x,y],xy=(y,x),horizontalalignment='center',verticalalignment='center')
            plt.ylabel('TRUE label')
            plt.xlabel('PREDICTED label')
    return plt

3 实际预测


3.1 数据及理解

第一列为次序,需要删除,最后一列为结果类别,其他为特征数据。
在这里插入图片描述

3.2 代码测试

代码展示:

import pandas as pd
from sklearn.naive_bayes import MultinomialNB
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
from sklearn import metrics

def cm_plot(y,y_pr):
    cm = confusion_matrix(y,y_pr)
    plt.matshow(cm,cmap=plt.cm.Blues)
    plt.colorbar()
    for x in range(len(cm)):
        for y in range(len(cm)):
            plt.annotate(cm[x,y],xy=(y,x),horizontalalignment='center',verticalalignment='center')
            plt.ylabel('TRUE label')
            plt.xlabel('PREDICTED label')
    return plt

data = pd.read_csv('iris.csv')
data = data.drop(['1'],axis=1)
x = data.drop(['0'],axis=1)
y = data['0']

x_tr,x_te,y_tr,y_te = \
    train_test_split(x, y, test_size=0.2,random_state=0)

by = MultinomialNB()
by.fit(x_tr,y_tr)
tr_pr = by.predict(x_tr)
cm_plot(tr_pr,y_tr).show()
te_pr = by.predict(x_te)
cm_plot(te_pr,y_te).show()
print(metrics.classification_report(y_te,te_pr,digits=6))

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

前端报告 2024:全新数据,深度解析未来趋势

温馨提示: 此报告为国际版全球报告,其中所涉及的技术应用、工具偏好、开发者习惯等情况反映的是全球前端开发领域的综合态势。由于国内外技术发展环境、行业生态以及企业需求等存在差异,可能有些内容并不完全契合国内的实际情况,请大家理性阅读,批判性地吸收其中的观点与信…

科普CMOS传感器的工作原理及特点

在当今数字化成像的时代,图像传感器无疑是幕后的关键 “功臣”,它宛如一位神奇的 “光影魔法师”,通过光电效应这一奇妙的物理现象,将光子巧妙地转换成电荷,为图像的诞生奠定基础。而在众多类型的图像传感器中&#xf…

word论文排版常见问题汇总

word论文排版常见问题汇总 常用快捷键: Alt F9 正常模式与域代码模式切换 Ctrl F9 插入域代码 F9 刷新域代码显示,要注意选定后刷新才会有效果 word中在当前列表的基础上修改列表 在使用word时,我们会定义一个列表,并将其链接…

使用PVE快速创建虚拟机集群并搭建docker环境

安装Linux系统 这里以安装龙蜥操作系统AnolisOS8.9为例加以说明。 通过PVE后台上传操作系统ISO镜像。 然后在PVE上【创建虚拟机】,选定上传的龙蜥操作系统镜像进行系统安装。 注意:在安装过程中,要设定语言、时区、超管用户root的密码、普…

某音响制造公司发展战略转型项目成功案例纪实

面对产业结构变化、海外订单缩减、劳动力成本攀升、缺乏自主品牌等原因导致的利润空间急剧下降的挑战,面向海外市场的代工厂如何在严峻的经济形势下克服发展障碍,成功实现转型与发展? 某音响制造公司,面临着订单量减少、成本增高…

redis的学习(三)

6. set集合 集合:把一些有关联的数据放在一起。 1、集合中的元素是无序的,即数据存放顺序不重要,变化一下顺序,集合依旧是之前的集合。 2、集合中的元素是不能重复的(唯一性)与list类似的是集合中的每一个元…

点赞系统设计(微服务)

点赞业务是一个常见的社交功能,它允许用户对其他用户的内容(如帖子、评论、图片等)表示喜欢或支持。在设计点赞业务时,需要考虑以下几个方面: 一、业务需求 点赞业务需要满足以下特性: 通用:…

C#进阶-在Ubuntu上部署ASP.NET Core Web API应用

随着云计算和容器化技术的普及,Linux 服务器已成为部署 Web 应用程序的主流平台之一。ASP.NET Core 作为一个跨平台、高性能的框架,非常适合在 Linux 环境中运行。本篇博客将详细介绍如何在 Linux 服务器上部署 ASP.NET Core Web API 应用,包…

设计模式-结构型-桥接模式

1. 什么是桥接模式? 桥接模式(Bridge Pattern) 是一种结构型设计模式,它旨在将抽象部分与实现部分分离,使它们可以独立变化。通过这种方式,系统可以在抽象和实现两方面进行扩展,而无需相互影响…

python学习笔记—16—数据容器之元组

1. 元组——tuple(元组是一个只读的list) (1) 元组的定义注意:定义单个元素的元组,在元素后面要加上 , (2) 元组也支持嵌套 (3) 下标索引取出元素 (4) 元组的相关操作 1. index——查看元组中某个元素在元组中的位置从左到右第一次出现的位置 t1 (&qu…

基础算法--查找

一、线性枚举 1、线性枚举定义 线性枚举指的就是遍历某个一维数组(顺序表)的所有元素,找到满足条件的那个元素并且返回,返回值可以是下标,也可以是元素本身。 由于是遍历的,穷举了所有情况,所…

G1垃圾回收器的FullGC

如何确定GarbageFirst回收器发生的是FullGC ? 必须出现FullGC字样才算是FUllGC,例如下图:因为内存分配失败(Allocation Failure)导致 如果不出现FullGC的字样说明它不是FUllGC,并不像Serial GC、ParallelGC的在老年代…

Golang的代码压缩技术应用案例分析与研究实践

Golang的代码压缩技术应用案例分析与研究实践 一、介绍 是一种具有强大性能和便捷开发特性的编程语言,除了其优秀的语法和标准库外,它还拥有很多高级特性,其中之一就是代码压缩技术。本文将从常见的Golang代码压缩技术应用案例出发&#xff0…

【Uniapp-Vue3】image媒体组件属性

如果我们想要在页面上展示图片就需要使用到image标签。 这部分最重要的是图片的裁剪,图片的裁剪和缩放属性: mode 图片裁剪、缩放的模式 默认值是scaleToFill 我将用两张图片对属性进行演示,一张是pic1.jpg(宽更长&#xf…

【网络协议】交换机概念与配置(第一部分)

概述 本文将探讨交换机的概念以及交换机的基础配置,并以此引入对 VLAN 的讨论。 文章目录 概述CSMA/CD以太网通信单播(Unicast)多播(Multicast)广播(Broadcast) MAC 地址以太网中的双工设置半双…

oracle位运算、左移右移、标签算法等

文章目录 位运算基础与或非同或同或应用场景 异或异或应用场景 什么是真值表 oracle基础函数创建bitor(按位或)函数bitnot(按位非)函数bitxor(按位异或)函数左移函数BITSHIFT()函数(实测不可用,废弃掉该方案)右移函数(略,有此场景吗?) 实际应用资质字典…

(五)ROS通信编程——参数服务器

前言 参数服务器在ROS中主要用于实现不同节点之间的数据共享(P2P)。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据,关…

《零基础Go语言算法实战》【题目 1-18】切片的反转

《零基础Go语言算法实战》 【题目 1-18】切片的反转 请编写一个名为 reverse 的函数,采用整数切片并在不使用临时切片的情况下将切片反转。 【解答】 可以通过 for 循环交换切片中每个元素的值,使其从左向右滑动。最终,所有元素都将 被反转。…

Elasticsearch:搜索相关性

这里写目录标题 一、相关性的概述二、自定义评分策略1、TF-IDF算法2、BM25算法 三、自定义评分策略1、Index Boost:在索引层面修改相关性2、boosting:修改文档相关性3、negative_boost:降低相关性4、function_score:自定义评分5、…

【C++经典例题】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏: 期待您的关注 题目描述: 原题链接: 求123...n_牛客题霸_牛客网 (nowcoder.com) 解题思路: …