首页 > 解决方案 > 对混淆矩阵的顺序输出感到困惑

问题描述

我使用 SVM 分类器进行二元分类。我们使用合法用户(标记为“0”,正类)和不受欢迎的用户(标记为“1”,负类)的数据样本训练模型。

在测试模型时,我还将合法用户的样本标记为 0,将不受欢迎的用户标记为 1。X_test 有 5 个数据样本(前 5 行)合法用户标记为 0,其他 5 个样本(后 5 行)不受欢迎的用户标记为 1。这是标签 y_test= [0,0,0,0,0,1,1,1,1,1]

然后,我用这个分类:

y_pred = classifier.predict(X_test)

输出 y_pred = [0,0,0,1,0,1,1,0,0,1]

在我们的工作中,我们考虑了:

(真阳性)TP 是正确分类为合法用户的合法用户样本(y_test 中标签为零)(y_pred 中标签为零)。

(假阴性)FN 是合法用户的样本(y_test 中的标签为零)被错误地分类为不受欢迎的用户(y_pred 中的标签为 1)。

(真否定)TN 是不受欢迎的用户样本(y_test 中的标签一)被正确分类为不受欢迎的样本(y_pred 中的标签一)。

(误报)FP 是不想要的用户样本(y_test 中的标签为 1)被错误地分类为合法的样本(y_pred 中的标签为 0)。

但是,何时将 y_test 和 y_pred 输入到混淆矩阵,使用:

print('Outcome confusion_matrix values : \n', confusion_matrix(y_test, y_pred))

混乱给出:[4 1][2 3]

在混淆矩阵文档中,他们说顺序是 [TN FP][FN TP]

然而,根据我们使用的 TP、FN、FP、TN 定义,这与我们工作中使用的顺序相反。在我们的工作中:

0--> 0 = TP; 
0--> 1 = FN;
1--> 0 = FP;
1--> 1 = TN;

因此,我滑动并考虑了TP = 4,FN = 1,FP = 2,TN = 3,以匹配我们工作的定义。

我写吗?我很困惑,请帮助我澄清这一点。

标签: pythonclassificationsvmconfusion-matrix

解决方案


推荐阅读