天天看點

機器學習中混淆矩陣、準确率、精确率、召回率、F值、ROC曲線、AUC、PR曲線-Sklearn.metrics評估方法

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score, roc_curve, auc

# 混淆矩陣 confusion-matrix
confusion_matrix = confusion_matrix(test_y, predict_y)
# 分類準确率 accuracy
accuracy = accuracy_score(test_y, predict_y)
# 精确率Precision
precision = precision_score(test_y, predict_y)
# 召回率 recall
recall = recall_score(test_y, predict_y)
# F1值
f1 = f1_score(test_y, predict_y)
# score
log_acc = model.score(test_X,test_y) #model指代你所用到模型,比如model.fit(train_X, train_y)

probs_y = model.predict_proba(test_X)[:,1] #模型的預測得分
fpr, tpr, thresholds = roc_curve(test_y,probs_y)
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()