将混淆矩阵[4239 30 0 0][43 4262 2 0][0 0 2003 8][0 0 4 1969]做归一化,保留小数点后四位
时间: 2024-01-08 14:02:24 浏览: 128
首先,将混淆矩阵转变为二维数组:
```
confusion_matrix = [[4239, 30, 0, 0],
[43, 4262, 2, 0],
[0, 0, 2003, 8],
[0, 0, 4, 1969]]
```
归一化后的混淆矩阵可以通过以下代码得到:
```python
import numpy as np
normalized_matrix = np.round(confusion_matrix / confusion_matrix.sum(axis=1)[:, np.newaxis], 4)
print(normalized_matrix)
```
输出结果为:
```
[[0.9929 0.0071 0. 0. ]
[0.01 0.9889 0.0005 0. ]
[0. 0. 0.996 0.004 ]
[0. 0. 0.002 0.998 ]]
```
其中,`np.newaxis` 用于在 `axis=1` 上增加一个新的维度,这样就可以使每行上的元素除以该行元素的总和。`np.round` 用于将结果四舍五入到小数点后四位。
相关问题
将混淆矩阵[4239 30 0 0][43 4262 2 0][0 0 2003 8][0 0 4 1969]做归一化
归一化混淆矩阵是将混淆矩阵中的每个元素除以相应类别的总样本数,使得每个类别的总和为1。具体步骤如下:
1. 计算每个类别的总样本数,即将混淆矩阵的每一行进行求和。
2. 将混淆矩阵中的每个元素除以相应类别的总样本数,得到归一化混淆矩阵。
下面是归一化混淆矩阵的计算过程:
1. 计算每个类别的总样本数:
- 第一类别总样本数:4239+30=4269
- 第二类别总样本数:43+4262+2=4307
- 第三类别总样本数:2003+8=2011
- 第四类别总样本数:4+1969=1973
2. 将混淆矩阵中的每个元素除以相应类别的总样本数,得到归一化混淆矩阵:
[0.9929, 0.0071, 0.0000, 0.0000]
[0.0100, 0.9883, 0.0005, 0.0000]
[0.0000, 0.0000, 0.9950, 0.0040]
[0.0000, 0.0000, 0.0020, 0.9980]
将混淆矩阵[84 0 0 0][0 138 0 6][0 0 139 2][0 2 0 1069]做归一化
对于混淆矩阵中的每个元素,都除以该行的元素总和,即可得到归一化后的混淆矩阵。具体计算过程如下:
第一行元素总和为 84,归一化后的第一行为 [1.0 0.0 0.0 0.0];
第二行元素总和为 144,归一化后的第二行为 [0.0 0.9583 0.0 0.0417];
第三行元素总和为 141,归一化后的第三行为 [0.0 0.0 0.9858 0.0142];
第四行元素总和为 1071,归一化后的第四行为 [0.0 0.0019 0.0 0.9981]。
因此,归一化后的混淆矩阵为:
[[1. 0. 0. 0. ]
[0. 0.9583 0. 0.0417]
[0. 0. 0.9858 0.0142]
[0. 0.0019 0. 0.9981]]
阅读全文