scikit learnpython统计

混淆矩阵、准确率、精确率、召回率、F值、ROC曲线、AUC、PR

2018-08-10  本文已影响302人  小歪与大白兔

目录

混淆矩阵 confusion-matrix
from sklearn.metrics import confusion_matrix
confusion_matrix = confusion_matrix(y_test, y_predict)
image.png
image.png
分类准确率 accuracy
from sklearn.metrics import accuracy
accuracy = accuracy_score(y_test, y_predict)
image.png
精确率Precision
from sklearn.metrics import precision_score
precision = precision_score(y_test, y_predict)
召回率 recall
from sklearn.metrics import recall_score
recall = recall_score(y_test, y_predict)
#recall得到的是一个list,是每一类的召回率
F1值
image.png
from sklearn.metrics import f1_score
f1_score(y_test, y_predict)
Roc曲线、AUC

总结一下,对于计算ROC,最重要的三个概念就是TPR, FPR, 截断点。

from sklearn.metrics import roc_auc_score, auc
import matplotlib.pyplot as plt
y_predict = model.predict(x_test)
y_probs = model.predict_proba(x_test) #模型的预测得分
fpr, tpr, thresholds = metrics.roc_curve(y_test,y_probs)
roc_auc = auc(fpr, tpr)  #auc为Roc曲线下的面积
#开始画ROC曲线
plt.plot(fpr, tpr, 'b',label='AUC = %0.2f'% roc_auc)
plt.legend(loc='lower right')
plt.plot([0,1],[0,1],'r--')
plt.xlim([-0.1,1.1])
plt.ylim([-0.1,1.1])
plt.xlabel('False Positive Rate') #横坐标是fpr
plt.ylabel('True Positive Rate')  #纵坐标是tpr
plt.title('Receiver operating characteristic example')
plt.show()

运行结果如下图所示:


参考资料:
1.混淆矩阵(Confusion Matrix)
https://www.jianshu.com/p/0fc8a0b784f1
2.ROC与AUC的定义与使用详解
https://blog.csdn.net/shenxiaoming77/article/details/72627882

上一篇 下一篇

猜你喜欢

热点阅读