贝叶斯算法对鸢尾花数据集进行分类
时间: 2025-03-26 09:11:36 浏览: 5
使用朴素贝叶斯算法对鸢尾花数据集进行分类
为了实现这一目标,需要先加载必要的Python库来支持数据分析、预处理以及模型构建。具体来说,sklearn
提供了机器学习工具;pandas
用于高效的数据操作和分析;而numpy
则增强了数组运算能力[^1]。
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report
接着,通过datasets.load_iris()
函数获取内置的鸢尾花数据集,并将其划分为训练集与测试集两部分以便后续评估模型性能:
# 加载鸢尾花数据集
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)
# 数据标准化处理
scaler = StandardScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
定义并初始化高斯分布假设下的朴素贝叶斯分类器实例对象,随后利用训练样本完成参数估计过程即拟合阶段:
gnb = GaussianNB() # 创建基于高斯分布的朴素贝叶斯分类器
gnb.fit(X_train_scaled, y_train) # 利用训练数据调整模型参数
最后一步是对未知类别标签的新观测值执行预测任务,并对比真实结果以衡量所建立模型的有效性和准确性:
predictions = gnb.predict(X_test_scaled) # 对测试集做出预测
print(f'Accuracy: {accuracy_score(y_test, predictions):.2f}') # 输出准确率
print(classification_report(y_test, predictions)) # 打印详细的分类报告
上述流程展示了如何应用朴素贝叶斯方法解决多类别的监督学习问题——特别是针对经典的鸢尾花物种识别案例进行了完整的实践说明[^2]。
相关推荐


















