SKLearn中預測准確率函數介紹


                                                               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函數來進行測試效果直觀描述:
下面是其源碼中示例:
 
 
 
 
 
下面是一篇給這函數詳細解釋的博客,拿來學習一下:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM