用于校准的广义加法模型
Posted
技术标签:
【中文标题】用于校准的广义加法模型【英文标题】:Generalized additive models for calibration 【发布时间】:2015-04-29 21:04:21 【问题描述】:我从事概率校准工作。我正在使用一种称为generalized additive models 的概率映射方法。
我写的算法是:
probMapping = function(x, y, datax, datay)
if(length(x) < length(y))stop("train smaller than test")
if(length(datax) < length(datay))stop("train smaller than test")
datax$prob = x # trainset: data and raw probabilities
datay$prob = y # testset: data and raw probabilities
prob_map = gam(Target ~ prob, data = datax, familiy = binomial, trace = TRUE)
prob_map_prob = predict(prob_map, newdata = datay, type = "prob")
# return(str(datax))
return(prob_map_prob)
我使用的包是mgcv
。
-
x - 对
train
数据集的预测
y - 对test
数据集的预测
datax - traindata
数据-testdata
问题:
-
输出值不在 0 和 1 之间
我收到以下警告消息:
In predict.gam(prob_map, newdata = datay, type = "prob") :
Unknown type, reset to terms.
【问题讨论】:
【参考方案1】:警告告诉您predict.gam
无法识别您传递给type
参数的值。由于看不懂,所以决定使用默认值type
,即"terms"
。
请注意,predict.gam
和 type="terms"
返回有关模型项的信息,不是概率。因此输出值不在 0 和 1 之间。
有关mgcv::predict.gam
的更多信息,请查看here。
【讨论】:
嗨,Alex,非常感谢您的回答!我学到了两点:i)类型必须是“响应”,ii)拟合有一个错误,我写了“家庭” - 必须是“家庭”。我对此感到抱歉。亚历克斯,你能否也评论一下:***.com/questions/29948919/… - 我已经尝试过提供的答案,但结果仍然不在 0 和 1 之间以上是关于用于校准的广义加法模型的主要内容,如果未能解决你的问题,请参考以下文章
R语言广义线性模型函数GLMglm函数构建逻辑回归模型(Logistic regression)模型参数解读查看系数的加法效应(Interpreting the model parameters
泊松回归gamma回归Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线 洛伦兹曲线卡方检验AICBIC偏差(Deviance)指标