sklearn.metrics 中的f1-score簡介
1 f1_score,average='binary', 'macro', 'micro', 'weighted'
F1得分可以解釋為精確度和召回率的調(diào)和平均值,其中F1得分達到其最佳值為1,最差得分為0。精確度和召回率對F1得分的相對貢獻相等。F1得分的公式為:
在多類別和多標簽的情況下,這是每個類別的F1得分的平均值,其權重取決于平均參數(shù)。
sklearn.metrics.f1_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')
參數(shù)介紹:
y_true:1d array,或label array/sparse matrix,Ground truth (correct) target values
y_pred: 分類器返回的估計目標。
pos_label:str or int, default=1,要報告 average = ‘ binary’且數(shù)據(jù)為二分類。如果數(shù)據(jù)是多類或多標簽的,這將被忽略; 設置labels = [ pos _ label ]和average!= “binary”將只報告該標簽的分數(shù)。
average: 該參數(shù)是多類/多標簽目標所必需的。如果沒有,則返回每個類的分數(shù)。否則,這將確定對數(shù)據(jù)執(zhí)行的平均類型:
'binary'
: 僅報告pos_label指定的類的結(jié)果。這僅適用于目標 (y_{true,pred}) 是二分類的。
'micro': 通過計算總真陽性、假陰性和假陽性來全局計算指標。
權重傾向:每一個樣本的權重都相同;
適用環(huán)境:多分類不平衡,若數(shù)據(jù)極度不平衡會影響結(jié)果;
'macro': 計算每個標簽的指標,并找到它們的未加權平均值。
取值范圍:每一類別的權重都相同;
適用環(huán)境:多分類問題,不受數(shù)據(jù)不平衡影響,容易受到識別性高(高recall、高precision)的類別影響;
'weighted'
: 計算每個標簽的指標,并找到它們的平均加權支持 (每個標簽的真實實例數(shù))。這會改變 “macro” 以解決標簽不平衡; 它可能導致F分數(shù)不在精度和召回率之間。
'samples'
: 計算每個實例的指標,并找到它們的平均值 (僅對于與accuracy_score不同的多標簽分類有意義)。
代碼展示:
二分類情況:
>>> from sklearn.metrics import precision_score, recall_score, f1_score >>> y_true = [0, 1, 0, 0, 1, 0, 1] >>> y_pred = [0, 1, 0, 0, 0, 1, 0] # 計算二分類情況下的average = 'macro' 'micro' 'binary' # 二分類情況下,也能用macro和micro,但一般用binary >>> f1_score(y_true, y_pred,average='macro') 0.5333333333333332 >>> precision_score(y_true, y_pred, average='macro') 0.55 >>> recall_score(y_true, y_pred, average='macro') 0.5416666666666666 >>> precision_score(y_true, y_pred, average='micro') 0.5714285714285714 >>> recall_score(y_true, y_pred, average='micro') 0.5714285714285714 >>> f1_score(y_true, y_pred,average='micro') 0.5714285714285714 >>> f1_score(y_true, y_pred,average='binary') 0.4 >>> recall_score(y_true, y_pred, average='binary') 0.3333333333333333 >>> precision_score(y_true, y_pred, average='binary') 0.5 >>> f1_score(y_true, y_pred) # 二分類情況下,默認使用binary 0.4
多分類情況:
>>> from sklearn.metrics import precision_score, recall_score, f1_score >>> y_true = [0, 1, 2, 0, 1, 2] >>> y_pred = [0, 2, 1, 0, 0, 1] >>> f1_score(y_true, y_pred, average='macro') 0.26666666666666666 >>> f1_score(y_true, y_pred, average='micro') 0.3333333333333333 >>> f1_score(y_true, y_pred, average=None) # 相當于binary,為每個類別計算binary的f1分數(shù),但是不能輸入binary,要輸入None array([0.8, 0. , 0. ]) >>> 0.8/3 0.26666666666666666
到此這篇關于sklearn.metrics 中的f1-score簡介的文章就介紹到這了,更多相關sklearn.metrics 中f1-score內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python編寫WAF與Sqlmap結(jié)合實現(xiàn)指紋探測
這篇文章主要為大家介紹了python編寫WAF指紋探測并與Sqlmap結(jié)合的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05Python讀取大量Excel文件并跨文件批量計算平均值的方法
這篇文章主要介紹了Python讀取大量Excel文件并跨文件批量計算平均值,介紹基于Python語言,實現(xiàn)對多個不同Excel文件進行數(shù)據(jù)讀取與平均值計算的方法,需要的朋友可以參考下2023-02-02使用Python字符串訪問與修改局部變量的實現(xiàn)代碼
這篇文章主要介紹了使用Python字符串訪問與修改局部變量,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06