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