[英]access to numbers in classification_report - sklearn
這是sklearn
的classification_report
一個簡單示例
from sklearn.metrics import classification_report
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names))
# precision recall f1-score support
#
# class 0 0.50 1.00 0.67 1
# class 1 0.00 0.00 0.00 1
# class 2 1.00 0.67 0.80 3
#
#avg / total 0.70 0.60 0.61 5
我希望能夠訪問平均/總行數。 例如,我想從報告中提取f1-score,即0.61。
如何訪問classification_report
的號碼?
您可以使用precision_recall_fscore_support
一次性獲取所有內容
from sklearn.metrics import precision_recall_fscore_support as score
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
precision,recall,fscore,support=score(y_true,y_pred,average='macro')
print 'Precision : {}'.format(precision)
print 'Recall : {}'.format(recall)
print 'F-score : {}'.format(fscore)
print 'Support : {}'.format(support)
這是模塊的鏈接
您可以在內置classification_report中使用output_dict參數來返回字典:
classification_report(y_true,y_pred,output_dict=True)
classification_report是字符串,所以我建議你使用scikit-learn中的f1_score
from sklearn.metrics import f1_score
y_true = [0, 1, 2, 2, 2]
y_pred = [0, 0, 2, 2, 1]
target_names = ['class 0', 'class 1', 'class 2']
print(f1_score(y_true, y_pred, average=None)
產量
您可以將分類報告輸出為dict:
report = classification_report(y_true, y_pred, **output_dict=True** )
然后像在普通的python字典中一樣訪問它的單個值。
例如,宏指標:
macro_precision = report['macro avg']['precision']
macro_recall = report['macro avg']['recall']
macro_f1 = report['macro avg']['f1-score']
或准確度:
accuracy = report['accuracy']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.