朴素贝叶斯分类结果绘图
时间: 2023-09-29 22:09:42 浏览: 153
朴素贝叶斯分类器是一种概率分类器,它基于贝叶斯定理和特征之间的独立性假设进行分类。在分类问题中,朴素贝叶斯分类器通常用于文本分类,垃圾邮件过滤等问题。
在绘制朴素贝叶斯分类结果图时,可以使用matplotlib库绘制散点图或者等高线图。以下是一个简单的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn.datasets import make_classification
# 生成分类数据集
X, y = make_classification(n_samples=100, n_features=2, n_redundant=0,
n_clusters_per_class=1, random_state=42)
# 定义分类器
nb = GaussianNB()
# 训练模型
nb.fit(X, y)
# 生成网格点
xx, yy = np.meshgrid(np.linspace(-3, 3, 100), np.linspace(-3, 3, 100))
Z = nb.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]
Z = Z.reshape(xx.shape)
# 绘制等高线图
plt.contourf(xx, yy, Z, cmap=plt.cm.RdBu, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.RdBu, edgecolors='black')
plt.title('Naive Bayes Classification')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()
```
上述代码中,我们首先使用`make_classification`函数生成一个包含两个特征的分类数据集。然后,我们定义一个`GaussianNB`分类器,并使用训练数据拟合模型。接下来,我们生成网格点并使用`predict_proba`方法预测每个网格点的概率值,最后使用`contourf`函数绘制等高线图。同时,我们还使用`scatter`函数绘制训练数据点,并使用`c`参数将数据点按照类别进行着色。最后,我们添加标题和轴标签,并使用`show`函数显示图形。
该示例代码可以生成如下图所示的朴素贝叶斯分类结果图:
![image.png](attachment:image.png)
阅读全文