分类器评价与在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值:
- 按预测分值对数据集排序
- 用当前行号/总行数当做Rate of Positive
- 计算TPR
- 用TPR列与RPP列计算Lift值
data <- data[order(data[, 1], decreasing = TRUE), ]
data$rpp <- row(data[, 1, drop = FALSE])/nrow(data)
data$target_cum <- cumsum(data[, "labels"])
data$tpr <- data$target_cum/sum(data[, "labels"])
data$lift <- data$tpr/data$rpp
data
## predictions labels rpp target_cum tpr lift
## 7 0.9706 1 0.1 1 0.1667 1.6667
## 8 0.8902 1 0.2 2 0.3333 1.6667
## 10 0.8688 0 0.3 2 0.3333 1.1111
## 9 0.7818 1 0.4 3 0.5000 1.2500
## 1 0.6125 1 0.5 4 0.6667 1.3333
## 3 0.4321 0 0.6 4 0.6667 1.1111
## 5 0.3849 0 0.7 4 0.6667 0.9524
## 2 0.3643 1 0.8 5 0.8333 1.0417
## 6 0.2444 1 0.9 6 1.0000 1.1111
## 4 0.1403 0 1.0 6 1.0000 1.0000
有了如上结果,将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图与AUC
分类模型评价一般有以下几种方法:混淆矩阵(Confusion Matrix).收益图(Gain Chart).提升图(Lift Chart).KS图(KS Chart).接受者操作特性曲线(ROC C ...
- 分类器评价与在R中的实现:混淆矩阵
分类模型评价一般有以下几种方法:混淆矩阵(Confusion Matrix).收益图(Gain Chart).提升图(Lift Chart).KS图(KS Chart).接受者操作特性曲线(ROC C ...
- Co-occurrence网络图在R中的实现
作者:陈亮 单位:中科院微生物所 编者按:上个月菌群月坛,在军科院听取王军组陈亮博士分享网络分析的经验,不仅使我对网络的背景知识有了更全面的认识,更使我手上一个关于菌根的课题有极大的启示.这么好的知识 ...
- 一文学会网络分析——Co-occurrence网络图在R中的实现
作者:陈亮 单位:中科院微生物所 编者按:在菌群月坛,在军科院听取王军组陈亮博士分享网络分析的经验,不仅使我对网络的背景知识有了更全面的认识,更使我手上一个关于菌根的课题有极大的启示.这么好的知识, ...
- R plot图片背景设置为透明_一文学会网络分析——Cooccurrence网络图在R中的实现...
作者:陈亮 单位:中科院微生物所 编者按:在菌群月坛,在军科院听取王军组陈亮博士分享网络分析的经验,不仅使我对网络的背景知识有了更全面的认识,更使我手上一个关于菌根的课题有极大的启示.这么好的知识, ...
- echart 广州3d_【R中最好的3D地理可视化】之echarts4r
本系列主要介绍R语言中当下最好的3D地理可视化,且完全可以商用或科研用. 涉及到的包有echarts4r,mapdeck,rayshader. 首先展示一下三种包做出的可视化效果, (1)echart ...
- rstudio中位数的公式_如何在R中找到中位数
rstudio中位数的公式 In this tutorial, let's learn how we can find the median in R. Median is defined as th ...
- 独家 | 在R中使用LIME解释机器学习模型
作者:PURVAHUILGOL 翻译:陈丹 校对:欧阳锦 本文约3200字,建议阅读15分钟 本文为大家介绍如何在R中使用LIME来解释机器学习模型,并提供了相关代码. 关键词:机器学习模型解释.R语 ...
- 图像梯度增强_使用梯度增强机在R中进行分类
图像梯度增强 背景 (Background) Purpose of analysis: 分析目的: Understand the factors driving student success so ...
最新文章
- iOS—如何申请苹果公司开发者账号流程详细图文介绍(包括邓白氏编码的申请方法详细介绍)...
- 服务器论坛有哪些_SEO工作中,经常使用的无效外链有哪些?
- 浏览器市场占有率_分水岭初现 全球浏览器市场现状及竞争格局分析
- Exchange2010配置-设置OWA身份验证及重定向
- 【Java】MyBatis与Spring框架整合(一)
- Reporting Services 安装的备份和还原操作
- VC++之自定义消息
- 一个关于c++ list迭代器的问题
- Avalonia跨平台入门第四篇之Popup在uos下问题
- 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义
- php学习_第8章_PHP面向对象的程序设计
- 持续集成工具 jenkins 实践
- URI和URL、URN的作用和区别
- JAVA Applet——绘制心形曲线
- C语言:野指针成因。
- ABAP对excel的操作(为单元格填充背景颜色、设置border等)
- 如何使用Metasploit对安卓手机进行控制
- 2.2 拓扑空间与连续映射
- LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件
- c语言调用cmd隐藏黑窗口,golang 调用cmd下程序隐藏黑窗口-方法1