當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。