也许我正在阅读分类报告或混淆矩阵错误(或两者兼而有之!),但在训练了我的分类器并运行我的测试集后,我得到以下报告:
precision recall f1-score support
0 0.71 0.67 0.69 5086
1 0.64 0.54 0.59 2244
2 0.42 0.25 0.31 598
3 0.65 0.22 0.33 262
4 0.53 0.42 0.47 266
5 0.42 0.15 0.22 466
6 0.35 0.25 0.29 227
7 0.07 0.05 0.06 127
8 0.39 0.14 0.21 376
9 0.35 0.25 0.29 167
10 0.25 0.14 0.18 229
avg / total 0.61 0.52 0.55 10048
哪个好,所有,但是当我创建我的混淆矩阵时:
0 1 2 3 4 5 6 7 8 9 10
[[4288 428 80 16 44 58 33 38 47 21 33]
[ 855 1218 54 8 12 17 25 15 15 12 13]
[ 291 72 147 1 12 10 20 2 2 17 24]
[ 173 21 3 57 1 3 0 1 1 1 1]
[ 102 20 4 0 113 0 0 6 4 9 8]
[ 331 40 10 3 7 68 3 0 2 1 1]
[ 104 30 17 0 1 0 56 2 1 10 6]
[ 85 19 4 2 5 0 2 6 4 0 0]
[ 270 29 4 1 6 2 2 7 53 1 1]
[ 63 17 11 0 8 3 14 1 1 42 7]
[ 138 13 19 0 5 2 7 3 6 5 31]]
我在假设它错误地预测了4288个类别标签0
的样本总共5086个,这应该导致recall
值为84.3%(0.843)?但这不是报告吐出的数字。精度似乎也是错误的,除非我在用0
列中的剩余部分计算正确预测的百分比(4288)时出错,这导致0.563,而不是0.71。
我误解了什么?
我使用sklearn
的{{3}}和classification_report来表示这些内容可能毫无价值。