使用朴素贝叶斯算法对鸢尾花数据集分类,输出在测试集的准确率
时间: 2024-10-27 18:06:27 浏览: 67
朴素贝叶斯算法是一种基于概率统计的简单而有效的分类方法,它假设特征之间相互独立,尽管这个假设在实际数据中往往并不成立,但在很多情况下仍然能提供不错的性能。对于鸢尾花(Iris)数据集,这是一个经典的机器学习案例,其中包含三种鸢尾花的测量值。
当你使用朴素贝叶斯算法(如高斯朴素贝叶斯或多项式朴素贝叶斯)对鸢尾花数据集进行训练并进行测试集预测时,你需要首先将数据划分为训练集和测试集。然后,模型会根据训练集的学习,估计各个类别以及特征之间的概率分布。
在Python中,你可以使用sklearn库的` GaussianNB()` 或 `MultinomialNB()` 类来进行分类,并通过`score()`函数计算模型在测试集上的准确率。例如:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
# 加载鸢尾花数据集
iris = datasets.load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
# 创建朴素贝叶斯模型并拟合
gnb = GaussianNB()
gnb.fit(X_train, y_train)
# 预测并计算测试集准确率
accuracy = gnb.score(X_test, y_test)
print(f"朴素贝叶斯在测试集上的准确率为: {accuracy * 100}%")
```
注意,这里的准确率可能会因为随机分隔和具体的概率估计而略有变化。
阅读全文