机器学习中的F1-score
一、什么是F1-score
F1分?jǐn)?shù)(F1-score)是分類問題的一個(gè)衡量指標(biāo)。一些多分類問題的機(jī)器學(xué)習(xí)競(jìng)賽,常常將F1-score作為最終測(cè)評(píng)的方法。它是精確率和召回率的調(diào)和平均數(shù),最大為1,最小為0。
此外還有F2分?jǐn)?shù)和F0.5分?jǐn)?shù)。F1分?jǐn)?shù)認(rèn)為召回率和精確率同等重要,F(xiàn)2分?jǐn)?shù)認(rèn)為召回率的重要程度是精確率的2倍,而F0.5分?jǐn)?shù)認(rèn)為召回率的重要程度是精確率的一半。計(jì)算公式為:
G分?jǐn)?shù)是另一種統(tǒng)一精確率和的召回率系統(tǒng)性能評(píng)估標(biāo)準(zhǔn),G分?jǐn)?shù)被定義為召回率和精確率的幾何平均數(shù)。
二、計(jì)算過程
1. 首先定義以下幾個(gè)概念:
TP(True Positive):預(yù)測(cè)答案正確
FP(False Positive):錯(cuò)將其他類預(yù)測(cè)為本類
FN(False Negative):本類標(biāo)簽預(yù)測(cè)為其他類標(biāo)
2. 通過第一步的統(tǒng)計(jì)值計(jì)算每個(gè)類別下的precision和recall
精準(zhǔn)度 / 查準(zhǔn)率(precision):指被分類器判定正例中的正樣本的比重
召回率 /查全率(recall):指的是被預(yù)測(cè)為正例的占總的正例的比重
另外,介紹一下常用的準(zhǔn)確率(accuracy)的概念,代表分類器對(duì)整個(gè)樣本判斷正確的比重。
3. 通過第二步計(jì)算結(jié)果計(jì)算每個(gè)類別下的f1-score,計(jì)算方式如下:
4. 通過對(duì)第三步求得的各個(gè)類別下的F1-score求均值,得到最后的評(píng)測(cè)結(jié)果,計(jì)算方式如下:
三、python實(shí)現(xiàn)
可通過加載sklearn包,方便的使用f1_score函數(shù)。
函數(shù)原型:
sklearn.metrics.f1_score(y_true,y_pred,labels=None,pos_label=1,average=’binary’,sample_weight=None)
參數(shù):
y_true: 1d array-like, or label indicator array / sparse matrix.
目標(biāo)的真實(shí)類別。
y_pred: 1d array-like, or label indicator array / sparse matrix.
分類器預(yù)測(cè)得到的類別。
average: string,[None, ‘binary’(default),‘micro’,‘macro’,‘samples’, ‘weighted’]
這里需要注意,如果是二分類問題則選擇參數(shù)‘binary’;如果考慮類別的不平衡性,需要計(jì)算類別的加權(quán)平均,則使用‘weighted’;如果不考慮類別的不平衡性,計(jì)算宏平均,則使用‘macro’。
示例程序:
from sklearn.metrics import f1_score
y_pred = [0, 1, 1, 1, 2, 2]
y_true = [0, 1, 0, 2, 1, 1]
print(f1_score(y_true, y_pred, average='macro'))
print(f1_score(y_true, y_pred, average='weighted'))
分析上述代碼,
對(duì)于類0:TP=1,F(xiàn)P=0,F(xiàn)N=1,precision=1,recall=1/2,F(xiàn)1-score=2/3,Weights=1/3
對(duì)于類1:TP=1,F(xiàn)P=2,F(xiàn)N=2,precision=1/3,recall=1/3,F(xiàn)1-score=1/3,Weights=1/2
對(duì)于類2:TP=0,F(xiàn)P=2,F(xiàn)N=1,precision=0,recall=0,F(xiàn)1-score=0,Weights=1/6
宏平均分?jǐn)?shù)為:0.333;加權(quán)平均分?jǐn)?shù)為:0.389
總結(jié)
以上是生活随笔為你收集整理的机器学习中的F1-score的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word怎么视同制表位编辑上下对齐的文档
- 下一篇: PHP超级配置模块--PHP4,PHP5