ConfusionMatrix
Tính ma trận nhầm lẫn. Phương thức này được áp dụng cho vector của các giá trị dự đoán.
matrix vector::ConfusionMatrix(
const vector& vect_true // vector của giá trị thực tế
);
matrix vector::ConfusionMatrix(
const vector& vect_true, // vector của giá trị thực tế
uint label // giá trị nhãn
);
2
3
4
5
6
7
8
Tham số
vect_true
[in] Vector của các giá trị thực tế.
label
[in] Giá trị nhãn để tính ma trận nhầm lẫn.
Giá trị trả về
Ma trận nhầm lẫn. Nếu giá trị nhãn không được chỉ định, một ma trận nhầm lẫn đa lớp sẽ được trả về, trong đó mỗi nhãn được so khớp với từng nhãn khác một cách riêng lẻ. Nếu giá trị nhãn được chỉ định, một ma trận 2 x 2 sẽ được trả về, trong đó nhãn được chỉ định được coi là dương, còn tất cả các nhãn khác là âm (ovr, một đấu với phần còn lại).
Ghi chú
Ma trận nhầm lẫn C được định nghĩa sao cho Cij bằng số lượng quan sát được biết là thuộc nhóm i và được dự đoán là thuộc nhóm j. Do đó, trong phân loại nhị phân, số lượng âm tính thực (TN) là C00, âm tính giả (FN) là C10, dương tính thực (TP) là C11 và dương tính giả (FP) là C01.
Nói cách khác, ma trận có thể được biểu diễn bằng đồ thị như sau:
TN | FP |
FN | TP |
Kích thước của vector giá trị thực tế và vector giá trị dự đoán phải giống nhau.
Ví dụ:
vector y_true={7,2,1,0,4,1,4,9,5,9,0,6,9,0,1,5,9,7,3,4,8,4,2,7,6,8,4,2,3,6};
vector y_pred={7,2,1,0,4,1,4,9,5,9,0,6,9,0,1,5,9,7,3,4,2,9,4,9,5,9,2,7,7,0};
matrix confusion=y_pred.ConfusionMatrix(y_true);
Print(confusion);
confusion=y_pred.ConfusionMatrix(y_true,0);
Print(confusion);
confusion=y_pred.ConfusionMatrix(y_true,1);
Print(confusion);
confusion=y_pred.ConfusionMatrix(y_true,2);
Print(confusion);
/*
[[3,0,0,0,0,0,0,0,0,0]
[0,3,0,0,0,0,0,0,0,0]
[0,0,1,0,1,0,0,1,0,0]
[0,0,0,1,0,0,0,1,0,0]
[0,0,1,0,3,0,0,0,0,1]
[0,0,0,0,0,2,0,0,0,0]
[1,0,0,0,0,1,1,0,0,0]
[0,0,0,0,0,0,0,2,0,1]
[0,0,1,0,0,0,0,0,0,1]
[0,0,0,0,0,0,0,0,0,4]]
[[26,1]
[0,3]]
[[27,0]
[0,3]]
[[25,2]
[2,1]]
*/
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29