已有sklearn中的贝叶斯分类模型实现鸢尾花数据分类,对数据进行预处理,分类结果进行可视化分析
时间: 2024-02-05 16:02:25 浏览: 124
好的,对于您的问题,我可以为您提供以下代码来实现鸢尾花数据分类和可视化分析:
```python
# 导入所需模块
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_iris()
X = data.data
y = data.target
# 数据预处理
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("Accuracy:", accuracy)
# 可视化分类结果
colors = ['red', 'green', 'blue']
for i in range(len(colors)):
x = X_test[:, 0][y_pred == i]
y = X_test[:, 1][y_pred == i]
plt.scatter(x, y, c=colors[i])
plt.legend(data.target_names)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
```
解释一下上面代码的步骤:
1. 加载鸢尾花数据集。
2. 将数据集拆分为训练集和测试集。
3. 创建一个朴素贝叶斯分类器对象,并使用训练集拟合它。
4. 对测试集进行预测,并计算准确率。
5. 将分类结果可视化。
在上面的代码中,我们使用`GaussianNB`类来实现朴素贝叶斯分类器。在最后一步中,我们使用散点图来可视化分类结果。每个类别用不同的颜色表示,图例中显示了类别名称。
阅读全文