朴素贝叶斯分类器python体现精度召回率的代码
时间: 2024-06-24 09:00:53 浏览: 108
朴素贝叶斯分类的代码
4星 · 用户满意度95%
朴素贝叶斯分类器是一种基于概率的简单但强大的分类算法,在Python中,我们可以使用scikit-learn库来实现。以下是一个基本的例子,展示了如何使用朴素贝叶斯分类器(如GaussianNB)并计算精度和召回率:
```python
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, recall_score, precision_score, confusion_matrix
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.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)
# 计算召回率和精确度
recall = recall_score(y_test, y_pred, average='macro') # 使用平均值处理不同类别的召回率
precision = precision_score(y_test, y_pred, average='macro')
print("Recall:", recall)
print("Precision:", precision)
# 计算混淆矩阵
conf_mat = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(conf_mat)
```
在上述代码中,我们首先加载数据集,然后将其分为训练集和测试集。接着,我们创建了一个GaussianNB实例(适用于连续数据),训练模型并在测试集上进行预测。最后,我们使用`accuracy_score`计算精度,`recall_score`计算召回率,并打印出混淆矩阵以查看分类情况。
阅读全文