用于校准的广义加法模型

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.gamtype="terms" 返回有关模型项的信息,不是概率。因此输出值不在 0 和 1 之间。

有关mgcv::predict.gam的更多信息,请查看here。

【讨论】:

嗨,Alex,非常感谢您的回答!我学到了两点:i)类型必须是“响应”,ii)拟合有一个错误,我写了“家庭” - 必须是“家庭”。我对此感到抱歉。亚历克斯,你能否也评论一下:***.com/questions/29948919/… - 我已经尝试过提供的答案,但结果仍然不在 0 和 1 之间

以上是关于用于校准的广义加法模型的主要内容,如果未能解决你的问题,请参考以下文章

R语言广义线性模型函数GLMglm函数构建逻辑回归模型(Logistic regression)模型参数解读查看系数的加法效应(Interpreting the model parameters

数据结构22:数组和广义表

泊松回归gamma回归Tweedie回归等广义线性回归模型GLM的评估指标:校准曲线 洛伦兹曲线卡方检验AICBIC偏差(Deviance)指标

迁移模型运行手写数字加法机(MNIST)

迁移模型运行手写数字加法机(MNIST)

使用感知机训练加法模型