機器學習之模型評估指標學習筆記

2021-09-20 18:43:21 字數 2384 閱讀 3953

前段時間工作中發現自己對模型評估指標中的auc有點忘了,因此打算重新看一下然後寫個部落格記錄一下。

首先簡單介紹一下混淆矩陣,查全率(也叫做召回率,recall)和查準率(也叫做精確率,precesion)。

在進行模型評估的時候,單單使用準確率accuracy(**正確樣本數/總樣本數)有時候並不能很好的對模型進行評估。比如,在對日活或月活使用者**其購買商品概率並將比較有可能購買的使用者找出來給銷售打**的時候,由於在實際樣本集合中,可能購買的使用者(即正樣本)的人數會比較少,比如100個日活使用者中只有5個使用者會購買,這時候如果僅僅是追求準確率的話,那麼簡單粗暴的把閾值設的很高,使所有使用者都**為負樣本(即不購買的使用者),此時的準確率為95%,但是這種結果卻不是我們想要的。此時召回率或精確率可能是比較好的評估指標。

在介紹召回率和精確率之前,首先了解一下混淆矩陣。

在二分類問題中,我們可以將樣本根據實際類別和模型**類別的組合劃分為真正例(true positive),假正例(false position),真反例(true negative)以及假反例(false negative),其個數分別即為tp,fp,tn,fn。於是就可以寫出如下混淆矩陣:

**為正例

**為反例

實際為正例

tpfn

實際為反例

fptn

由上述混淆矩陣就可以得出召回率和精確率召回率

(rec

all)

=tpt

p+fn

召回率(recall)=\frac

召回率(re

call

)=tp

+fnt

p​精 確率

(pre

cisi

on)=

tptp

+fp精確率(precision)=\frac

精確率(pr

ecis

ion)

=tp+

fptp

​在上述例子中,如果簡單粗暴的將所有例子都判定為反例,那麼其準確率或許可以達到95%,但是召回率和精確率就都是0%了。但是,當我們把閾值設的很低,將所有樣本都**為正樣本的時候,此時召回率達到100%,但是精確率卻只有5%,當我們僅僅取最有把握的**樣本最為正例的時候,此時精確率高了,但召回率有不理想了。

因此,在模型得出**結果之後,閾值怎麼設對模型最終的評估結果很有影響。那麼,是否有這樣一種模型的評估指標,不論閾值怎麼設都跟指標的最終結果無關呢?auc就是這樣的評估指標。

在上述的例子中,實際上只要在模型的**結果中,所有的正樣本的**結果都大於負樣本的**結果,那麼我們總是能夠找到乙個閾值,使得不論是準確率,召回率還是精確率都是100%。此時也就是要求**結果的排序質量很好,即所有的正樣本都排在前面,所有的負樣本都排在後面。 auc,正是考慮樣本**的排序質量。

在介紹auc之前,首先了解一下roc曲線。

當我們用乙個模型對所有樣本做出**之後,將所有樣本按照**概率進行排序。首先我們將閾值設定為最大,即將所有的樣本均**為反例,計算真正例率(tpr)和假正例率(fpr)tpr

=tpt

p+fn

tpr=\frac

tpr=tp

+fnt

p​f pr

=fpt

n+fp

fpr=\frac

fpr=tn

+fpf

p​於是得到(tp

r1,f

pr1)

(tpr_, fpr_)

(tpr1​

,fpr

1​)。然後將閾值從大到小依次設定為每乙個樣本的**值,並計算(tp

ri,f

pri)

(tpr_, fpr_)

(tpri​

,fpr

i​)。最終得到一組數對(tp

ri,f

pri)

(tpr_, fpr_)

(tpri​

,fpr

i​)。然後,將得到的這一系列數對繪製在以真正例率為縱軸,假正例率為橫軸的座標系中,得到

當roc這條曲線下所包含的面積越大,就表示模型**出來的結果排序質量越高,而roc這條曲線下所包含的面積,就是auc值。因此,我們可以使用auc值來刻畫模型**的排序質量。

除了上述案例之外,推薦場景也是比較看重auc指標。比如,當我們拿到乙個使用者的使用者畫像之後,推測出使用者喜好什麼,更願意買什麼,在我們的倉庫中可能有1000個商品都可以推薦給這個使用者,但是我們有不能把1000個商品都推薦給使用者,這樣使用者眼睛都看花掉。因此我們需要挑選排序中使用者最優可能購買的10件商品推薦給使用者,如果這10件不行,那就換下乙個10件。在這種場景下,對**結果的排序質量就比較高了,因此對auc值也就比較看重。

機器學習 模型評估指標

from sklearn.metrics import accuracy score print 準確率 accuracy score y true,y pred,normalize true print 正確分類的數量 accuracy score y true,y pred,normalize ...

機器學習之模型評估

準確率是指分類正確的樣本佔總樣個數的比例 accuracy frac n 為被正確分類的樣本個數,n 為總樣本的個數 準確率的侷限性 準確率是分類問題中最簡單也是最直觀的評價指標,但存在明顯的缺陷,當不同總類的樣本比例非常不均衡時,佔比大的類別往往成為影響準確率的最主要因素。比如 當負樣本佔99 分...

機器學習筆記之模型評估與選擇

2.1經驗誤差與過擬合 錯誤率 error rate 分類錯誤的樣本數佔樣本總數的比例 精度 accuracy 1 錯誤率 誤差 error 實際 輸出與樣本的真實輸出之間的差異 訓練誤差 經驗誤差 在訓練集上的誤差 測試誤差 泛化誤差 在新樣本的誤差 過擬合 學習時選擇的模型包含的引數過多,對已知...