[sklearn]性能度量之AUC值(from sklearn.metrics import roc_auc_curve)
原创博文,转载请注明出处!
1.AUC
AUC(Area Under ROC Curve),即ROC曲线下面积。
2.AUC意义
若学习器A的ROC曲线被学习器B的ROC曲线包围,则学习器B的性能优于学习器A的性能;若学习器A的ROC曲线和学习器B的ROC曲线交叉,则比较二者ROC曲线下的面积大小,即比较AUC的大小,AUC值越大,性能越好。
3.sklearn中计算AUC值的方法
- 形式:
from sklearn.metrics import roc_auc_score
auc_score = roc_auc_score(y_test,y_pred)
- 说明:
- y_pred即可以是类别,也可以是概率。
- roc_auc_score直接根据真实值和预测值计算auc值,省略计算roc的过程。
1 # -*- coding: utf-8 -*- 2 """ 3 # 作者:wanglei5205 4 # 邮箱:wanglei5205@126.com 5 # 博客:http://cnblogs.com/wanglei5205 6 # github:http://github.com/wanglei5205 7 """ 8 9 ### 真实值和预测值 10 import numpy as np 11 y_test = np.array([0,0,1,1]) 12 y_pred1 = np.array([0.3,0.2,0.25,0.7]) 13 y_pred2 = np.array([0,0,1,0]) 14 15 ### 性能度量auc 16 from sklearn.metrics import roc_auc_score 17 18 # 预测值是概率 19 auc_score1 = roc_auc_score(y_test,y_pred1) 20 print(auc_score1) 21 22 # 预测值是类别 23 auc_score2 = roc_auc_score(y_test,y_pred2) 24 print(auc_score2)