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函數來進行測試效果直觀描述:
下面是其源碼中示例:

