xgboost
包中没有评价指标和KS值。
因此需要自定义。
R^2来来源于对的波动解释。
假设方程
其中是随机变量,即满足正态分布。 自身具备一定的波动,可以用来描述。 其中,是的均值。 假设经过回归或者决策树等,我们得到
其中,,使我们估计出来。
如果均值为0,那么。 所以可以用对波动的解释量。 其中,
为什么呢?
因为,
因为我们假设,和, 所以,
书上定义,
和我们的定义一致。
下面开始对这个指标进行自定义函数。
r2 <- function(preds, dtest) {
library(ROCR)
labels <- getinfo(dtest, "label")
y_avg = mean(labels)
SSE = sum( (preds - y_avg)^2 )
SST = sum( (labels - y_avg)^2 )
R2 = SSE/SST
return(list(metric = "r2", value = R2))
}
测试以后这个公式算的有问题。