日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

记录F1分数和召回率

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 记录F1分数和召回率 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

內(nèi)容

參考博文:

  • F1分?jǐn)?shù)以及micro、macro區(qū)別
    對(duì)于上面說(shuō)的矩陣是不是挺懵的,它的真名叫混下矩陣,看下面

  • 混淆矩陣
    所有正確的預(yù)測(cè)結(jié)果都在對(duì)角線上,所以從混淆矩陣中可以很方便直觀的看出哪里有錯(cuò)誤,因?yàn)樗麄兂尸F(xiàn)在對(duì)角線外面。
    它允許我們做出更多的分析,而不僅僅是局限在正確率。準(zhǔn)確率對(duì)于分類器的性能分析來(lái)說(shuō),并不是一個(gè)很好地衡量指標(biāo),因?yàn)槿绻麛?shù)據(jù)集不平衡(每一類的數(shù)據(jù)樣本數(shù)量相差太大),很可能會(huì)出現(xiàn)誤導(dǎo)性的結(jié)果。例如,如果在一個(gè)數(shù)據(jù)集中有95只貓,但是只有5條狗,那么某些分類器很可能偏向于將所有的樣本預(yù)測(cè)成貓。整體準(zhǔn)確率為95%,但是實(shí)際上該分類器對(duì)貓的識(shí)別率是100%,而對(duì)狗的識(shí)別率是0%。

  • 怎么求F1分?jǐn)?shù)呢? 代碼實(shí)現(xiàn)?
    在Sklearn庫(kù)中有現(xiàn)成的代碼:
    輸入: 必須是1-array的預(yù)測(cè)和GT
    輸出: 得到相應(yīng)的結(jié)果
    sklearn.metrics.f1_score 使用方法
    sklearn.metrics.f1_score中micro、macro、samples理解

  • 適用什么場(chǎng)景?

    也就是后者會(huì)注重所有分類效果都得好! 平均效果!
    而micro則是會(huì)帶有權(quán)重的思想

  • 代碼

    我的實(shí)現(xiàn):

    def evaluation_metric(pred, label):'''pred: Prediction results with whatever sizelabel: Label with whatever sizereturn: [Evaluation Metric]'''# average=None, get the P, R, and F1 value of a single classpred = numpy.asarray(pred)label = numpy.asarray(label)Precision = precision_score(y_true=label, y_pred=pred, average="macro")Recall = recall_score(y_true=label, y_pred=pred, average="macro")F1_score = f1_score(y_true=label, y_pred=pred, average="macro")F1_score_micro = f1_score(y_true=label, y_pred=pred, average="micro")return Precision, F1_score, Recall, F1_score_micro

    其中average參數(shù)有下面的幾個(gè)選項(xiàng)

    y_true:1d數(shù)組,或標(biāo)簽指示符數(shù)組/稀疏矩陣基本事實(shí)(正確)目標(biāo)值。y_pred:1d數(shù)組,或標(biāo)簽指示符數(shù)組/稀疏矩陣分類器返回的估計(jì)目標(biāo)。labels:list,optional包括when的標(biāo)簽集,以及if的順序。可以排除數(shù)據(jù)中存在的標(biāo)簽,例如,以忽略多數(shù)否定類別的方式計(jì)算多類平均值,而數(shù)據(jù)中不存在的標(biāo)簽將導(dǎo)致宏平均值中的0成分。對(duì)于多標(biāo)簽?zāi)繕?biāo),標(biāo)簽是列索引。默認(rèn)情況下,和 中的所有標(biāo)簽均按排序順序使用。average != 'binary'average is Noney_truey_predpos_label:strint,默認(rèn)值為1要報(bào)告是否average='binary'以及數(shù)據(jù)是否為二進(jìn)制的類。如果數(shù)據(jù)是多類或多標(biāo)簽的,則將被忽略;設(shè)置,labels=[pos_label]并且只會(huì)報(bào)告該標(biāo)簽的得分。average != 'binary'average:string, [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’]對(duì)于多類/多標(biāo)簽?zāi)繕?biāo),此參數(shù)是必需的。如果為None,則返回每個(gè)班級(jí)的分?jǐn)?shù)。否則,這將確定對(duì)數(shù)據(jù)執(zhí)行的平均類型:'binary':僅報(bào)告由指定的類的結(jié)果pos_label。僅在目標(biāo)(y_{true,pred})為二進(jìn)制時(shí)適用。'micro':通過(guò)計(jì)算正確,錯(cuò)誤和否定的總數(shù)來(lái)全局計(jì)算指標(biāo)。'macro':計(jì)算每個(gè)標(biāo)簽的指標(biāo),并找到其未加權(quán)平均值。這沒(méi)有考慮數(shù)據(jù)數(shù)量的不平衡。而是平等地對(duì)待每一類'weighted':計(jì)算每個(gè)標(biāo)簽的指標(biāo),并找到其平均權(quán)重(受支持)(每個(gè)標(biāo)簽的真實(shí)實(shí)例數(shù))。這改變了“宏觀”以解決標(biāo)簽的不平衡。這可能導(dǎo)致F得分不在精確度和召回率之間。'samples':計(jì)算每個(gè)實(shí)例的指標(biāo),并找到其平均值(僅對(duì)不同于的多標(biāo)簽分類有意義 accuracy_score)。sample_weight:array-like of shape (n_samples,), default=None樣品重量。zero_division:“warn”, 0 or 1, default=”warn”設(shè)置除法為零(即所有預(yù)測(cè)和標(biāo)簽均為負(fù))時(shí)返回的值。如果設(shè)置為“ warn”,則該值為0,但也會(huì)發(fā)出警告。

    返回值:

    f1_score:float or array of float, shape = [n_unique_labels]二進(jìn)制分類中的陽(yáng)性類別的F1分?jǐn)?shù),或者對(duì)于多類別任務(wù),每個(gè)類別的F1分?jǐn)?shù)的加權(quán)平均值。

    例子:

    Examples-------->>> from sklearn.metrics import precision_score>>> y_true = [0, 1, 2, 0, 1, 2]>>> y_pred = [0, 2, 1, 0, 0, 1]>>> precision_score(y_true, y_pred, average='macro')0.22...>>> precision_score(y_true, y_pred, average='micro')0.33...>>> precision_score(y_true, y_pred, average='weighted')0.22...>>> precision_score(y_true, y_pred, average=None)array([0.66..., 0. , 0. ])>>> y_pred = [0, 0, 0, 0, 0, 0]>>> precision_score(y_true, y_pred, average=None)array([0.33..., 0. , 0. ])>>> precision_score(y_true, y_pred, average=None, zero_division=1)array([0.33..., 1. , 1. ])"""

    其中micro是求的全部的準(zhǔn)確率! 沒(méi)有考慮數(shù)據(jù)的平衡性!

    average = “micro” = average=NULL

    precision_score
    recall_score
    f1_score


    總結(jié)

    以上是生活随笔為你收集整理的记录F1分数和召回率的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。