ConfusionMatrix
ConfusionMatrix
计算混淆矩阵。该方法应用于预测值向量。
matrix vector::ConfusionMatrix(
const vector& vect_true // 真值向量
);
matrix vector::ConfusionMatrix(
const vector& vect_true, // 真值向量
uint label //选项卡值
);参数
- vect_true
[in] 真值向量。
- label
[in] 计算混淆矩阵的标签值。
返回值
混淆矩阵。如果未指定标签值,则返回多类混淆矩阵,其中每个标签单独与其他标签匹配。如果指定了标签值,则返回一个2 x 2矩阵,其中指定的标签被视为正数,而所有其他标签均为负数(ovr,一vs其余)。
注意
混淆矩阵C使得Cij等于已知属于组i且预测属于组j的观察值的数量。因此,在二元分类中,真阴性(TN)的计数为C00,假阴性(FN)为C10,真阳性(TP)为C11,假阳性(FP)为C01。
换句话说,矩阵可以用图形表示如下:
| TN | FP | | FN | TP |
真实值向量和预测值向量的大小应该相同。
示例:
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]]
*/