使用朴素贝叶斯对自定义数据集进行分类

准备自定义数据集

首先,需要一个自定义数据集来进行分类。创建一个简单的二维数据集,其中每个样本有两个特征,并且属于两个类别之一。

python 复制代码
import numpy as np
import pandas as pd

# 创建自定义数据集
np.random.seed(42)
num_samples = 100

# 生成特征数据
X = np.random.rand(num_samples, 2)

# 生成标签数据(0或1)
y = np.where(X[:, 0] + X[:, 1] > 1, 1, 0)

# 将数据转换为DataFrame以便查看
data = pd.DataFrame(X, columns=['Feature1', 'Feature2'])
data['Label'] = y

print(data.head())

在这个数据集中,Feature1Feature2是特征,Label是类别标签(0或1)。

使用朴素贝叶斯进行分类

接下来,将使用scikit-learn库中的朴素贝叶斯分类器来对数据集进行分类。这里使用高斯朴素贝叶斯,因为它适用于连续特征。

python 复制代码
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化高斯朴素贝叶斯分类器
gnb = GaussianNB()

# 训练模型
gnb.fit(X_train, y_train)

# 进行预测
y_pred = gnb.predict(X_test)

# 评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.4f}')

# 打印分类报告
print(classification_report(y_test, y_pred))
4. 结果分析

运行上述代码后,将得到模型的准确率和分类报告。分类报告包括精确度(precision)、召回率(recall)、F1分数(F1-score)等指标。

  • 准确率:正确预测的样本数占总样本数的比例。
  • 精确度:被预测为正类的样本中实际为正类的比例。
  • 召回率:实际为正类的样本中被正确预测为正类的比例。
  • F1分数:精确度和召回率的调和平均数,用于综合评估模型性能。
相关推荐
Cathyqiii1 小时前
Diffusion-TS:一种基于季节性-趋势分解与重构引导的可解释时间序列扩散模型
人工智能·神经网络·1024程序员节
数字冰雹1 小时前
数字孪生技术 重构 智能仓储新生态
人工智能·重构
EasyCVR2 小时前
从汇聚到智能:解析视频融合平台EasyCVR视频智能分析技术背后的关键技术
大数据·人工智能
m0_650108242 小时前
【论文精读】GenTron:基于 Transformer 的扩散模型革新图像与视频生成
人工智能·论文精读·transformer扩散模型·文生图(t2i)·文生视频(t2v)
文火冰糖的硅基工坊3 小时前
[人工智能-大模型-66]:模型层技术 - 两种编程范式:数学函数式编程与逻辑推理式编程,构建起截然不同的智能系统。
人工智能·神经网络·算法·1024程序员节
创思通信3 小时前
树莓派的YOLO智能AI识别系统,识别ESP32还是STM32
人工智能·stm32·yolo
funfan05173 小时前
【开发AI】Windows安装和使用Milvus的保姆级教程
人工智能·windows·milvus
Fuly10243 小时前
使用docker安装向量数据库milvus
人工智能
darkfive3 小时前
构建大模型安全自动化测试框架:从手工POC到AI对抗AI的递归Fuzz实践
人工智能·安全·ai·自动化
一点一木3 小时前
火山方舟 Responses API 实战指南:从概念到「公司尽调 Dossier 生成器」
前端·人工智能·api