机器学习之偏斜类误差度量
機器學習分類模型存在一種情況叫偏斜類。偏斜類簡單理解就是在訓練模型時由于正樣本和負樣本之間的嚴重不平衡,導致模型最后檢測全部都是1或者全部都是0。假設正樣本的y值為1,當正樣本遠遠多于負樣本的時候,訓練好的模型就會一直輸出1,這會給我們判斷模型優劣帶來一定的障礙,比如模型輸出1的概率是99.8%,輸出0的概率是0.2%,這里我們就會認為模型的精度很好,誤差很小。但是其實這種結果是由于數據集的不平衡導致的。因此我們迫切需要一種新方法判斷模型的優劣而不僅僅是從accuracy和error。
因此我們接下來引出兩個參數一個是precision,另一個是recall。如下圖:
 
 Actual class是實際的類別,Predicted class是預測的類別。當預測類別和真實類別均為1時為True positive(TP),當真實類為0預測為1則說明預測錯誤為False positive(FP),當預測為0真實類為1則預測錯誤為False negative(FN),當預測和真實均為0時說明為True negative(TN)。
假設y=1是要檢測的類別:
precision(查準率) =TP / (TP+FP) 查準率是真實類別和預測類別均為1然后除以預測類別為1的總和(紅色框框) 
 Recall(召回率) = TP / (TP+FN) 召回率是真實類別和預測類別均為1除以真實類為1(不管預測對不對,黃色框框)
當出現偏斜類,假設正樣本很多,負樣本很少時就會出現模型一直識別為1,這樣就會使得召回率很高,查準率很低,當正樣本很少,負樣本很多,模型就會一直識別0,就會導致召回率接近為0。因此當出現偏斜類時就能根據這兩個參數判斷模型的性能,我們實際應用中希望召回率和查準率兩者均高一點,模型性能會好一些。
由于查準率和召回率有兩個數值,有時候難以抉擇,如下圖 : 
 
有三個算法,3個算法的查準率和召回率如上圖,如何根據這些數值選擇機器學習算法。先觀察第三個算法,召回率很高,查準率很低說明模型一直識別1,樣本出現偏斜。
可根據如下公式計算出的數值大小判斷選擇哪一個算法,P代表查準率,R代表召回率: 
 
總結
以上是生活随笔為你收集整理的机器学习之偏斜类误差度量的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 申请高德用户key
- 下一篇: c语言翻转棋ai算法,黑白棋游戏(也叫翻
