分类器评价与在R中的实现:收益图与提升图
分類模型評價一般有以下幾種方法:混淆矩陣(Confusion Matrix)、收益圖(Gain Chart)、提升圖(Lift Chart)、KS圖(KS Chart)、接受者操作特性曲線(ROC Chart)。“分類模型評價與在R中的實現”系列中將逐個介紹。
上篇介紹最基礎的混淆矩陣。
本篇介紹收益圖(Gain Chart)與提升圖(Lift Chart)。
一、收益圖/提升圖簡介
回顧上篇,混淆矩陣評價的是模型在總體樣本的表現。下面介紹的收益/提升圖評估的是模型捕捉到的所有正響應,對比真實分類情況的表現。
模型捕捉到的正響應是用什么來表示呢?回顧混淆矩陣可組合出的指標RPP(Rate of positive predictions) = (TP+FP)/(P+N),正是所有預測中,預測為正的比例。根據不同的閥值,RPP的范圍為[0,1]。自然地,這收益圖/提升圖的公共橫軸為累計RPP。
縱軸需要評價模型在預測為正的事件中,正確的概率。也就是模型的TPR(True Positive Rate),此間的TPR也可稱為收益值(Gain Value)。提升值(Lift Value)則進一步考慮了在某個RPP下的TPR的這個相對性概念,用TPR/RPP計算。
二、在R中計算收益/提升表、作圖
1 直接計算
舉一個最簡單的例子說明。還是和上次一樣用ROCR包中的ROCR.simple數據,為了方便查看,只取前10條。
require(ROCR) data(ROCR.simple) data <- as.data.frame(ROCR.simple)[1:10, ]按照以下步驟計算gain/lift值:
有了如上結果,將RPP放橫軸,TPR/Lift放縱軸分別畫出收益圖和提升圖。
par(mfrow = c(1, 2)) plot(data$rpp, data$tpr, type = "l", main = "Gain Chart") plot(data$rpp, data$lift, type = "l", main = "Lift Chart")
2 用ROCR包畫圖
用ROCR的prediction()和performance()函數可以很簡單地將模型結果轉化為評價可以直接使用的指標。這次以ROCR.simple所有數據為例。
require(ROCR) data(ROCR.simple) pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels) par(mfrow = c(1, 2)) gain <- performance(pred, "tpr", "rpp") plot(gain, main = "Gain Chart") lift <- performance(pred, "lift", "rpp") plot(lift, main = "Lift Chart")
對于收益圖,理想的收益圖應快速達到很高的累計收益值,并很快趨于100%;理想的提升圖應該在很高的提升值上保持一段,或緩慢下降一段,然后迅速下降到1。根據上面兩個圖,可以做出結論,如果我們選擇20%的RPP,那么模型的真正率約為35%左右(收益圖),將比不使用任何模型獲得約1.7倍的正回應(提升圖)。
from:?http://iccm.cc/classification-model-evaluation-gain-chart-lift-chart/
總結
以上是生活随笔為你收集整理的分类器评价与在R中的实现:收益图与提升图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分类器评价与在R中的实现:ROC图与AU
- 下一篇: Git Workflow工作流示意图