用python求二元分类的混淆矩阵

  统计/机器学习 监督式学习 模型验证 Python    浏览次数: 524
2

各位大佬好,请问怎么用python求二元分类的混淆矩阵?

谢谢!


 

桐桐酱   2017-12-16 14:15



   2个回答 
5

sklearn里可以直接计算混淆矩阵sklearn.metrics.confusion_matrix 

from sklearn.metrics import confusion_matrix
confusion_matrix(y_true, y_pred)

也可以通过confusion_matrix函数直接得到TN, FP, FN, TP

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()


飞翔钉子   2017-12-18 23:24

谢谢! - 桐桐酱   2017-12-20 09:52
2

confusion matrix本质上就是列联表,pandas里的crosstab可以得到列联表。参考下面的代码

>> results = pd.DataFrame()
>> results['True'] = [1, 1, 1, 1, 1, 0, 0, 0]
>> results['Pred'] = [1, 1, 0, 0, 1, 1, 0, 0]

# 用pd.crosstab可以得到confusion matrix
>> pd.crosstab(results['True'], results['Pred'])

Pred	0	1
True		
0	2	1
1	2	3


TheTheThe   2017-12-18 13:11

谢谢! - 桐桐酱   2017-12-20 09:52


  相关主题

机器学习里的ppv是什么意思?   1回答

二元分类问题中经常提到的TP,TN,FN,FP都是什么意思?   3回答

多元分类的混淆矩阵   1回答

什么是混淆矩阵(confusion matrix)   2回答

F1值会受到不平衡数据的影响吗?   2回答

利用交叉验证调参后还需要用完整的数据集重新训练吗?   2回答

k近邻算法(k-NN)怎么选k   2回答

python里怎么求多元分类的F1 score?   1回答

回归问题中的stratified cross validation?   2回答

Stratified k-fold cross validation(分层交叉验证)   1回答

测试集和验证集的区别?   4回答

如何在保持查全率不变的情况下提高查准率?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!