对的
SAS和R可以用iml交互
简单点的,就是用ROCR(),计算lift值,然后plot
require(ROCR)
data(ROCR.simple)
data <- as.data.frame(ROCR.simple)[1:10, ]
按照以下步骤计算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放横轴,Lift放纵轴画出lift图。
par(mfrow = c(1, 2))
plot(data$rpp, data$lift, type = "l", main = "Lift Chart")
就是这样了
|