sklearn.classification_report預測準確率

SKLearn中預測準確率函數介紹

1、在使用Sklearn進行機器學習算法預測測試數據時,常用到classification_report函數來進行測試的準確率的計算輸

#開始預測
y_pred = clf.predict(X_test)
print("done in %0.3fs" % (time() - t0))
#通過該函數,比較預測出的標籤和真實標籤,並輸出準確率
print(classification_report(y_test, y_pred))
#建立一個矩陣,以真實標籤和預測標籤爲元素
print(confusion_matrix(y_test, y_pred, labels=range(n_classes)))

下圖爲Eclipse下classification_report函數的源代碼:

 

 

這是一個示例輸出:

 

 

其中在函數中p=precision,r=recall,f1=f1-score,s=support

 

 

下面,在precision_recall_fscore_support函數的源代碼:

 

 

 可以看到輸出的precision,recall及F-score的具體計算公式,和具體的意義。

 

 

下面將一一給出‘tp’,‘fp’,‘fn’的具體含義:

 

準確率: 所有識別爲”1”的數據中,正確的比率是多少。 

如識別出來100個結果是“1”, 而只有90個結果正確,有10個實現是非“1”的數據。 所以準確率就爲90%

 

召回率: 所有樣本爲1的數據中,最後真正識別出1的比率。 

如100個樣本”1”, 只識別出了93個是“1”, 其它7個是識別成了其它數據。 所以召回率是93%

F1-score:  是準確率與召回率的綜合。 可以認爲是平均效果。

 

詳細定義如下:

對於數據測試結果有下面4種情況:

TP: 預測爲正, 實現爲正

FP: 預測爲正, 實現爲負

FN: 預測爲負,實現爲正

TN: 預測爲負, 實現爲負

 

準確率: TP/ (TP+FP) 

召回率: TP(TP + FN)

F1-score: 2*TP/(2*TP + FP + FN) 

 

1、在使用Sklearn進行機器學習算法預測測試數據時,常用到Confusion Matrix函數來進行測試效果直觀描述:

下面是其源碼中示例:

 

 

 

 

 

下面是一篇給這函數詳細解釋的博客,拿來學習一下:

參考地址:http://blog.csdn.net/vesper305/article/details/44927047

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章