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

server/2025/1/11 4:50:51/

贝叶斯分类

目录

  • 贝叶斯分类
    • 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 算法导入

python">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 函数导入

python">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 绘制函数

代码展示:

python">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 代码测试

代码展示:

python">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 metricsdef 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 pltdata = 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.ppmy.cn/server/157376.html

相关文章

码随想录算法训练营Day11 | LeetCode150. 逆波兰表达式求值,239. 滑动窗口最大值, 347.前 K 个高频元素

LeetCode150. 逆波兰表达式求值 题目链接/文章讲解/视频讲解:https://programmercarl.com/0150.%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B1%82%E5%80%BC.html 后缀表达式无需写括号,而中缀表达式需要有括号 栈适用于相邻字符的消…

【数据结构】 树的遍历:先序、中序、后序和层序

在数据结构中,树(Tree)作为一种基础的非线性结构,广泛应用于多种场景。树的遍历是树操作中的重要组成部分,它决定了我们如何访问树中的每一个节点。树的遍历方法有多种,每种方法适用于不同的场景&#xff0…

【EI,Scopus检索 | 往届均已检索见刊】第四届智能系统、通信与计算机网络国际学术会议(ISCCN 2025)

重要信息: 大会官网:更多详情【论文投稿】 截稿时间:以官网信息为准 大会时间:2025年2月21-23日 接受/拒稿通知:投稿后3-5个工作日内 收录检索:EI,Scopus 出版信息: 本会议所有…

cursor试用出现:Too many free trial accounts used on this machine 的解决方法

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…

2025新年源码免费送

2025很开门很开门的源码免费传递。不需要馒头就能获取4套大开门源码。 听泉偷宝,又进来偷我源码啦👊👊👊。欢迎偷源码 🔥🔥🔥 获取免费源码以及更多源码,可以私信联系我 我们常常…

Github 2025-01-08 C开源项目日报 Top10

根据Github Trendings的统计,今日(2025-01-08统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目10Shell项目1Redis - 内存数据库和数据结构服务器 创建周期:5411 天开发语言:C协议类型:BSD 3-Clause “New” or “Revised” License…

腾讯云大数据智能管家:AI驱动管理效能飞升

点击蓝字⬆ 关注我们 本文共计1241 预计阅读时长4分钟 在大数据时代,海量数据的产生给企业带来了新的机遇,也带来了复杂的管理挑战。如何高效利用数据资源、降低运维成本、提升系统性能成为每个企业的共同难题。腾讯云推出的大数据智能管家,以…

阿里巴巴新零售模式下的创新实践:结合开源AI智能名片2+1链动模式S2B2C商城小程序的应用探索

摘要:在数字经济浪潮的推动下,新零售作为传统零售与现代信息技术深度融合的产物,正逐步改变着零售行业的面貌。阿里巴巴作为新零售战略的倡导者和实践者,通过整合线上线下资源,利用大数据、云计算等先进技术&#xff0…