当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R embed step_lencode_bayes 使用贝叶斯似然编码将监督因子转换为线性函数


step_lencode_bayes() 创建配方步骤的规范,该步骤将标称(即因子)预测变量转换为从使用贝叶斯分析估计的广义线性模型派生的一组分数。

用法

step_lencode_bayes(
  recipe,
  ...,
  role = NA,
  trained = FALSE,
  outcome = NULL,
  options = list(seed = sample.int(10^5, 1)),
  verbose = FALSE,
  mapping = NULL,
  skip = FALSE,
  id = rand_id("lencode_bayes")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

...

一个或多个选择器函数用于选择变量。对于 step_lencode_bayes ,这表示要编码为数字格式的变量。有关更多详细信息,请参阅recipes::selections()。对于tidy 方法,当前未使用这些。

role

由于没有创建新变量,因此此步骤未使用。

trained

指示预处理数量是否已估计的逻辑。

outcome

调用 vars 以指定哪个变量用作广义线性模型中的结果。目前仅支持数字和两级因子。

options

要传递给 rstanarm::stan_glmer() 的选项列表。

verbose

通过 rstanarm::stan_glmer() 控制默认打印的逻辑。

mapping

定义编码的 tibble 结果列表。在 recipes::prep() 训练该步骤之前,这是 NULL

skip

一个合乎逻辑的。当recipes::bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 recipes::prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算

id

该步骤特有的字符串,用于标识它。

recipe 的更新版本,其中新步骤添加到现有步骤(如果有)的序列中。对于 tidy 方法,一个 tibble 包含列 terms(用于编码的选择器或变量)、level(因子级别)和 value(编码)。

细节

对于每个因子预测器,广义线性模型适合结果,并且系数作为编码返回。这些系数采用线性预测量表,因此对于因子结果,它们采用 log-odds 单位。这些系数是使用无截距模型创建的,当使用两个因子结果时,log-odds 反映感兴趣的事件是因子的第一级。

对于新颖的水平,返回系数的稍微定时的平均值。

使用 rstanarm::stan_glmer() 拟合分层广义线性模型,并且没有截距

  stan_glmer(outcome ~ (1 | predictor), data = data, ...)

其中 ... 包括 family 参数(由步骤自动设置,除非由 options 传入)以及为步骤的 options 参数提供的任何参数。相关选项包括 chainsitercores 以及先验参数(请参阅下面参考文献中的链接)。 prior_intercept 是对收缩量影响最大的参数。

整理

当您tidy()此步骤时,将返回包含terms(选定的选择器或变量)、valuecomponent 列的小标题。

箱重

此步骤执行可以利用案例权重的监督操作。要使用它们,请参阅 recipes::case_weights 中的文档和 tidymodels.org 中的示例。

参考

Micci-Barreca D (2001) “分类和预测问题中高基数分类属性的预处理方案”,ACM SIGKDD Explorations Newsletter,3(1), 27-32。

Zumel N 和 Mount J (2017)“vtreat:用于预测建模的 data.frame 处理器”,arXiv:1611.09477

“重复二元试验的分层部分池”https://tinyurl.com/stan-pooling

“`rstanarm`` 模型的先验分布”https://tinyurl.com/stan-priors

“用Group-Specific项和rstanarm估计广义(非线性)线性模型”https://tinyurl.com/stan-glm-grouped

例子

library(recipes)
library(dplyr)
library(modeldata)

data(grants)

set.seed(1)
grants_other <- sample_n(grants_other, 500)
# \donttest{
reencoded <- recipe(class ~ sponsor_code, data = grants_other) %>%
  step_lencode_bayes(sponsor_code, outcome = vars(class))
# }
源代码:R/lencode_bayes.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Supervised Factor Conversions into Linear Functions using Bayesian Likelihood Encodings。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。