P(查準率),R(查全率),F1 值

起源:

    咱們平時用的精度 accuracy,也就是總體的正確率測試

      acc=predict_right_num/predict_numspa

這個雖然經常使用,但不能知足全部任務的需求。好比,由於香蕉太多了,也不能撥開人工的一個一個的看它的好壞 (我愛吃啊,想一想就心疼),此時咱們就須要有一種方法,代替撥開香蕉這種粗魯的手段。這時咱們須要經過一些測試,看看哪一種方法能更加準確的預測。咱們能夠經過ci

    「準」:預測的準確度,就是我預測的結果中真正好的香蕉要越多越好;io

    「全」:就是全部的好的香蕉預測出來的越多越好,雖然把有些壞的也預測是好的了,那也無論,「全」 就行。好的香蕉越多的出如今預測結果裏方法

其實這二者都想要達到就行了,可是不行的: call

    好比 "準", 我就預測一個算了,好的香蕉確定比壞的比例高,也就是我只預測一個,100% 比例概率最大了,這時就不 「全」 了,海有好多好的香蕉不在預測結果裏面dict

    再好比 "全", 我去所有預測成好的,這真正好的都在個人預測裏,也就是 100%。但是這時的 "準" 就一點都不許了。。註釋

    因此就必須來平衡這倆同志的關係了,怎麼平衡呢?確定是經過權重來的呀,此時,F 值登上歷史舞臺!di

實例說明:

  實例化講解吧。好比咱們的香蕉中 1 表示好的,0 表示壞的,有 10 個香蕉:時間

  gold :  [1,1,1,1,1,0,0,0,0,0]

  pred:  [1,0,1,1,1,1,1,0,0,0]

    註釋:gold 是現實的好壞;pred 是預測的好壞。

    P(Precision) 查準率,準確率:就是上面說的 "準"。字面意思好理解呀,就是在預測當中查找準確個數的比例。公式爲:

  P = 真正預測準確的數量 / 預測是準確的數量 = 4 / 6

    R(Recall) 查全率,召回率:就是上面的 "全"。根據字面理解,在預測中看看真正預測對的佔全有對的比率。公式爲:

  R = 真正預測準確的數量 / 全部真正好的數量  = 4 / 5

準確率就是找得對,召回率就是找得全。大概就是你問問一個模型,這堆東西是否是某個類的時候,準確率就是 它說是,這東西就確實是的機率吧,召回率就是, 它說是,但它漏說了(1 - 召回率)這麼多

    F 值 綜合評價指標,是:

  F(k) = ( 1 + k ) * P * R / ( ( k*k ) * P + R )

        註釋:k>0 度量了 查全率 對 查準率 的相對重要性。k>1 查全率有更大影響;k<1查準率有更大影響。

        在這個實例中能夠表示爲:k>1 就是查全率有更大影響,就是好的香蕉最好都預測出來,由於你以爲不想把好的當成壞的扔點 (真惋惜,我愛吃啊) ;k<1 查準率有更大影響,就是必定要準確,省時間,省力更重要,不在意好的香蕉當壞的扔點。

    而咱們經常使用的是 F1,就是 F(1) 的意思,k=1,好比咱們作一個分類任務,這幾個類以爲都同樣重要。此時:

        F(1) = 2 * P * R / ( P + R ) = 2*4/6*4/5/(4/6+4/5) = 8/11

相關文章
相關標籤/搜索