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

  统计/机器学习 监督式学习 模型验证 Python
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


相关问题

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

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

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

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

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

micro和macro F1 score分别是什么意思?   2回答

十折交叉验证   1回答

k-fold cross validation的k怎么选   2回答

交叉验证是如何进行的?   1回答

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

如果我用交叉验证,还是否需要单独分出测试集?   1回答

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



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

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

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

我们谢绝答非所问。

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

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