首页 > 其他分享 >高斯贝叶斯分类器实战

高斯贝叶斯分类器实战

时间:2025-01-17 16:27:51浏览次数:3  
标签:gnb plt 高斯 贝叶斯 分类器 train skin test import

目录

前言

面部皮肤区分数据集来自于UCI网站,该数据集含有两个部分,一部分为人类面部皮肤数据,该部分数据是由不同种族、年龄和性别人群的图片转换而成的;另一部分为非人类面部皮肤数据。两个部分的数据集一共包含245 057条样本和4个变量,其中用于识别样本是否为人类面部皮肤的因素是图片中的三原色R、G、B,它们的值均落在0~255;因变量为二分类变量,表示样本在对应的R、G、B值下是否为人类面部皮肤,其中1表示人类面部皮肤,2表示非人类面部皮肤。通常情况下,研究人员会对样本是否为人类面部皮肤更加感兴趣,所以需要将原始数据集中因变量为1的值设置为正例、因变量为2的值设置为负例。

实战

# 导入第三方包
import pandas as pd
from sklearn import model_selection
from sklearn import naive_bayes
from sklearn import metrics
import matplotlib.pyplot as plt
import seaborn as sns


# 读入数据
skin = pd.read_excel(r'Skin_Segment.xlsx')
#print(skin.head())
# 设置正例和负例
skin.y = skin.y.map({2:0,1:1})
#print(skin.y.value_counts())

# 样本拆分
X_train,X_test,y_train,y_test = model_selection.train_test_split(skin.iloc[:,:3], skin.y, test_size = 0.25, random_state=1234)

# 调用高斯朴素贝叶斯分类器的“类”
gnb = naive_bayes.GaussianNB()
# 模型拟合
gnb.fit(X_train, y_train)
# 模型在测试数据集上的预测
gnb_pred = gnb.predict(X_test)
# 各类别的预测数量
print(pd.Series(gnb_pred).value_counts())
print('模型的准确率为:\n',metrics.accuracy_score(y_test, gnb_pred))
print('模型的评估报告:\n',metrics.classification_report(y_test, gnb_pred))

# 构建混淆矩阵
cm = pd.crosstab(gnb_pred,y_test)
# 绘制混淆矩阵图
sns.heatmap(cm, annot = True, cmap = 'GnBu', fmt = 'd')
# 去除x轴和y轴标签
plt.xlabel('Real')
plt.ylabel('Predict')
# 显示图形
plt.show()


结果如下:

0    50630
1    10635
Name: count, dtype: int64
模型的准确率为:
 0.9229576430261976
模型的评估报告:
               precision    recall  f1-score   support

           0       0.93      0.97      0.95     48522
           1       0.88      0.73      0.80     12743

    accuracy                           0.92     61265
   macro avg       0.90      0.85      0.88     61265
weighted avg       0.92      0.92      0.92     61265

在这里插入图片描述

# 导入第三方包
import pandas as pd
from sklearn import model_selection
from sklearn import naive_bayes
from sklearn import metrics
import matplotlib.pyplot as plt
import seaborn as sns


# 读入数据
skin = pd.read_excel(r'Skin_Segment.xlsx')
#print(skin.head())
# 设置正例和负例
skin.y = skin.y.map({2:0,1:1})
#print(skin.y.value_counts())

# 样本拆分
X_train,X_test,y_train,y_test = model_selection.train_test_split(skin.iloc[:,:3], skin.y, test_size = 0.25, random_state=1234)

# 调用高斯朴素贝叶斯分类器的“类”
gnb = naive_bayes.GaussianNB()
# 模型拟合
gnb.fit(X_train, y_train)

# 计算正例的预测概率,用于生成ROC曲线的数据
y_score = gnb.predict_proba(X_test)[:,1]
fpr,tpr,threshold = metrics.roc_curve(y_test, y_score)
# 计算AUC的值
roc_auc = metrics.auc(fpr,tpr)

# 绘制面积图
plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor = 'black')
# 添加边际线
plt.plot(fpr, tpr, color='black', lw = 1)
# 添加对角线
plt.plot([0,1],[0,1], color = 'red', linestyle = '--')
# 添加文本信息
plt.text(0.5,0.3,'ROC curve (area = %0.2f)' % roc_auc)
# 添加x轴与y轴标签
plt.xlabel('1-Specificity')
plt.ylabel('Sensitivity')
# 显示图形
plt.show()

在这里插入图片描述

标签:gnb,plt,高斯,贝叶斯,分类器,train,skin,test,import
From: https://blog.csdn.net/weixin_43597208/article/details/145108105

相关文章

  • 高斯消元与高斯-约旦消元
    题目1洛谷P3389【模板】高斯消元法总的来说,就是求解一个nnn元一次方程组。高斯消元思路:首先把所有系数看成一个矩阵:......
  • 条件概率、贝叶斯定理、独立性、全概率公式的概念辨别与深入理解
    条件概率、贝叶斯定理、独立性、全概率公式的概念辨别与深入理解在概率论中,条件概率、贝叶斯定理、独立性和全概率公式是几个核心且紧密相关的概念。为了帮助学生深刻理解这些概念,我们将逐一进行辨析,并展示它们之间的区别与联系。一、条件概率条件概率是指在一个事件B已......
  • 单级一级倒立摆小车卡尔曼滤波消除高斯噪声干扰Matlab实验
    文末获取Matlab源码源文件+完整建模设计报告一、状态空间建模忽略空气阻力、各种摩擦之后,可将倒立摆系统抽象为小车和匀质杆组成的系统。单级倒立摆模型结构如图2.1所示。其中,小车质量M(kg),摆杆质量m(kg),小车摩擦系数b(N/m/sec),摆杆转动轴心到杆质心的长度(m),摆杆惯量I(kg*m2),加......
  • 融合高斯扰动与竞争学习的改进型多目标部落竞争与成员合作算法(IMOCTCM)求解TP1-TP10及
    一、部落竞争与成员合作算法CTCM部落竞争与成员合作算法(Competitionoftribesandcooperationofmembersalgorithm,CTCM)由ChenZuyan等人于2024年提出的一种智能优化算法。该算法受古代部落之间竞争及其合作行为的启发而得。参考文献:[1]ZuyanChen,ShuaiLi,Ameer......
  • 融合高斯扰动与竞争学习的改进型多目标部落竞争与成员合作算法(IMOCTCM)求解MMF1-MMF8及
    一、部落竞争与成员合作算法CTCM部落竞争与成员合作算法(Competitionoftribesandcooperationofmembersalgorithm,CTCM)由ChenZuyan等人于2024年提出的一种智能优化算法。该算法受古代部落之间竞争及其合作行为的启发而得。参考文献:[1]ZuyanChen,ShuaiLi,Ameer......
  • 高斯金字塔,高斯模糊,高斯差分
    高斯金字塔、高斯模糊和高斯差分是图像处理中非常重要的技术,常用于图像缩放、降噪、特征提取等领域。1.高斯模糊(GaussianBlur)高斯模糊是一种降噪技术,基于高斯函数的图像处理技术,用于平滑图像,减少噪声或细节。它在图像处理和计算机视觉中非常常用,尤其是在预处理步骤中,通过对图......
  • 【空间光-光耦合技术06】高斯光束、ABCD定律
    本部分的学习参考柯熙政老师的《无限光通信中的空间光——光纤耦合技术》及欧攀老师的《高等光学仿真(MATLAB版)》,为自学笔记,博客末尾附上了在学习过程中参考的博客内容。基本概念         考虑从光纤端面输出光的传播及耦合。对于光纤端面的出射光(辐射光场),研究者感兴......
  • Python实现贝叶斯优化器(Bayes_opt)优化ESN回声状态网络模型项目实战
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景本项目的目标是利用贝叶斯优化技术来优化回声状态网络(EchoStateNetwork,ESN)模型的超参数,以提高其在特定任务上的性能。ESN是一种特殊的递归......
  • 贝叶斯机器学习:共轭先验
    离散随机变量的二项分布和多项式分布,以及连续随机变量的高斯分布,这些都是参数分布(parmetricdistribution)的具体例子。之所以被称为参数分布,是因为少量可调节的参数控制了整个概率分布。在频率派的观点中,我们通过最优化某些准则(例如似然函数)来确定参数的具体值。而在贝叶斯派的......
  • 图扑 HT 引擎 × 3DGS 高斯泼溅
    3D高斯泼溅(3DGaussianSplatting,又称3D高斯溅射或3D高斯飞溅)作为三维场景表示和渲染领域的重要突破,正在重新定义三维重建的可能性。它利用辐射场渲染技术,使用 3D高斯点而不是传统的三角面来表达场景,不仅实现了高效的三维转换,更带来极致逼真的照片级渲染效果。与传统方法......