Python 多分类的混淆矩阵
时间: 2023-11-05 16:01:42 浏览: 81
在Python中,可以使用scikit-learn库中的confusion_matrix函数来生成多分类混淆矩阵。具体步骤如下:
1. 导入必要的库
``` python
from sklearn.metrics import confusion_matrix
import numpy as np
```
2. 准备真实标签和预测标签
``` python
y_true = np.array([1, 2, 0, 0, 3, 1, 2])
y_pred = np.array([1, 1, 0, 2, 3, 1, 2])
```
3. 生成混淆矩阵
``` python
cm = confusion_matrix(y_true, y_pred)
print(cm)
```
输出结果为:
```
array([[2, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 2, 0],
[0, 1, 0, 1]], dtype=int64)
```
解释:真实标签有4个类别,即0、1、2、3,预测结果也有4个类别。混淆矩阵的行代表真实标签,列代表预测结果。例如,第一行第一列表示真实标签为0,预测结果也为0的样本数有2个。
注意:当类别数量比较多时,混淆矩阵可能会变得比较大,不易于直观观察。此时可以考虑使用可视化工具来展示混淆矩阵。
相关问题
python多分类混淆矩阵
在机器学习中,混淆矩阵是用来评估分类模型的性能的一种矩阵。多分类混淆矩阵是评估多分类模型的性能的一种矩阵。在Python中,可以使用sklearn.metrics库中的confusion_matrix函数来创建多分类混淆矩阵。
下面是一个示例代码,展示了如何使用confusion_matrix函数创建多分类混淆矩阵:
```
from sklearn.metrics import confusion_matrix
# 创建一个包含真实标签和预测标签的列表
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]
# 使用confusion_matrix函数创建多分类混淆矩阵
cm = confusion_matrix(y_true, y_pred)
# 打印出混淆矩阵
print(cm)
```
输出结果为:
```
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])
```
这个结果展示了三个类别的多分类混淆矩阵。其中,第一行表示真实标签为类别0的样本,第一列表示预测标签为类别0的样本。在本例中,有两个真实标签为类别0的样本被正确预测为类别0,一个真实标签为类别1的样本被错误预测为类别2,一个真实标签为类别2的样本被错误预测为类别0,两个真实标签为类别2的样本被正确预测为类别2。
python多分类混淆矩阵代码
以下是Python中计算多分类混淆矩阵的代码,同时也包括了准确率、精确率、召回率和F1得分的计算:
```python
from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score
# 实际标签
y_true = [0, 1, 2, 0, 1, 2, 0, 1, 2]
# 预测标签
y_pred = [0, 1, 1, 0, 2, 2, 0, 1, 2]
# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)
print("Confusion Matrix:\n", cm)
# 计算准确率
acc = accuracy_score(y_true, y_pred)
print("Accuracy:", acc)
# 计算精确率
precision = precision_score(y_true, y_pred, average='macro')
print("Precision:", precision)
# 计算召回率
recall = recall_score(y_true, y_pred, average='macro')
print("Recall:", recall)
# 计算F1得分
f1 = f1_score(y_true, y_pred, average='macro')
print("F1 Score:", f1)
```
其中,`y_true`和`y_pred`分别为实际标签和预测标签,可以根据实际情况进行修改。`confusion_matrix`函数用于计算混淆矩阵,`accuracy_score`函数用于计算准确率,`precision_score`函数用于计算精确率,`recall_score`函数用于计算召回率,`f1_score`函数用于计算F1得分。在计算精确率、召回率和F1得分时,需要指定`average='macro'`参数,表示对所有类别的指标进行求平均。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)