很久沒有溫習機器學習的算法了,還是容易將一些基本的概念給弄混蒋院,那么本次回顧一下機器學習模型中的評估方式:
對于回歸問題來說亏钩,我們能夠采用MSE、MAE欺旧、RMSE姑丑、R方的方式去衡量我們實際值與預測值之間的差距。但是對于分類算法來說辞友,光憑一個準確度是不夠好栅哀,因為我們所涉及到的樣本數據可能是極度偏斜的話震肮,那么只使用分類的準確度是遠遠不夠的。
一留拾、精準率戳晌、召回率、F1-score痴柔、準確率
首先來一個我們熟悉的混淆矩陣的圖躬厌,這是一個二分類的混淆矩陣的圖:
下面的表中P或者N都是代表了為預測出來的分類,分別代表了正類和負類竞帽,然后T或者F就代表了樣本實際的分類與預測是一樣的還是不一樣的扛施,我覺得這樣去理解,應該就不會混了屹篓。
Item | 說明 | 預測正確與否 |
---|---|---|
TP | 將實際為正樣例預測為正樣例的個數 | 對疙渣,真正類 |
TN | 將實際為負樣例預測為負樣例的個數 | 對,真負類 |
FN | 將實際為正樣例預測為負樣例的個數 | 錯堆巧,假負類 |
FP | 將實際為負樣例預測為正樣例的個數 | 錯妄荔,假正類 |
TP+FP | 預測為正樣例的個數 | |
FN+TN | 預測為負樣例的個數 | |
TP+FN | 實際的正樣例個數 | |
FP+TN | 實際的負樣例個數 |
下標對一些度量的概念和公式進行說明
性能度量 | 公式 | 說明 |
---|---|---|
精準率(precision) | 分母為預測為正樣例的個數 ;分子為預測為實際正樣例被預測準的個數 | |
召回率(recall) | 分母為實際正樣例的個數谍肤;分子為預測為實際正樣例被預測準的個數 | |
F1-score | 混合的度量啦租,對不平衡類別非常有效 | |
準確率(accuracy) | 模型的整體的性能的評估 | |
Specificity | 分母為實際負樣例的個數,分子為預測為實際負樣例被預測準的個數 |
舉個例子:
我們實際有50個樣例荒揣,50個負樣例篷角,然后經過分類器分類之后。50個正樣例中有45個預測為正樣例(預測準了)系任,5個被預測成為了負樣例恳蹲。50個負樣例中(預測錯誤),有40個被預測為了負樣例(預測準了)俩滥,10個被預測為了正樣例(預測錯誤)嘉蕾。
實際情況 | 預測為正 | 預測為負 |
---|---|---|
50正 | 45 | 5 |
50負 | 10 | 40 |
根據這個例子,我們可以計算出:
性能度量 | 公式 |
---|---|
精確率(precision) | |
召回率(recall) | |
F1-score | |
準確率(accuracy) | |
Specificity |
下圖很形象的說明了精確率和召回率的計算
Precision和recall其實是相互矛盾的霜旧,在不同的應用場景下面的關注是不同的错忱,然后F1-score是采用了調和平均數的方式來綜合的考慮了它們。那么下面我們就采用邏輯回歸的形式來說明它們的矛盾:圖中的三條線分別代表了邏輯回歸的決策邊界了挂据。我們可以看出當邏輯回歸的決策邊界大于0或者小于的時候以清,這個時候數據的分布就是偏斜的,而且偏斜的程度隨著偏離的程度而變大棱貌。當決策的邊界偏向正方向而且和0越遠玖媚,那么這個時候的精準率就變大,但是召回率就減小了婚脱。同理我們也能看出來當決策邊界向負方向走今魔,越遠勺像,那么就recall就變大了,精準度就降低了错森。
我們也能根據precision和recall做出一條precision-recall曲線吟宦,要是我們有多個算法,都做出他們的recall-precision曲線涩维,那么越靠近(1,1)點的那條曲線所對應的算法肯定是越好的殃姓。
二、 ROC和AUC曲線
ROC = The receiver operating curve瓦阐,翻譯過來就是受試者工作曲線蜗侈,這條曲線的橫軸為假正例率、縱軸是真正例率睡蟋。
在公式的層面上看踏幻,TPR就是等于了我們的召回率。也就是真實正例中被預測對了的比率戳杀,然后FPR就是真實負例中被錯誤的預測成為了正例的比率了该面。下面就通過圖來說明他們兩者之間的區(qū)別:
從上圖中,我們可以看出信卡,FPR增加隔缀,同時我們的TPR也是在增加的。同時也能從分類概率上面去思考一些這個趨勢傍菇。
有了TPR和FPR之后猾瘸,我們就能做出ROC曲線,如下圖中的作圖所示:
這里又會提及一個概念桥嗤,就是AUC须妻,AUC = the area under the receiving operating curve仔蝌。也就下圖中藍色部分的區(qū)域泛领,它的面積的越大,那么我們得到的模型就越好敛惊。
理想目標:TPR=1渊鞋,FPR=0,即圖中(0,1)點,故ROC曲線越靠攏(0,1)點瞧挤,越偏離45度對角線越好锡宋。
有些地方回顧不到位,請指教了哈特恬,后面留的資料就是mit的小哥給總結的內容执俩,總結得很棒!喜歡的小伙伴就給點個贊吧癌刽。
參考資料
1役首、https://github.com/afshinea/stanford-cs-229-machine-learning