[英]tidymodels how to set priors for a Naive Bayes model
我想使用tidymodels
框架用朴素貝葉斯分類器訓練 model。
Tidymodels 使用discrim
包,它本身使用klaR
package 來估計朴素貝葉斯模型。
在 tidymodels 框架中指定 NB model 可以通過以下方式完成:
naive_Bayes(
mode = "classification",
engine = "klaR",
smoothness = NULL,
Laplace = NULL)
但是,在檢查klaR
package 中的原始 NB function 時,它有一個參數:
事先的
class 成員資格的先驗概率。 如果未指定,則使用訓練集的 class 比例。 如果存在,則應按因子水平的順序指定概率。
問題是,我還沒有找到在 tidymodel 管道中指定這些先驗的方法。 將先前的參數僅添加到上面顯示的naive_Bayes
function 不起作用並引發錯誤:
Error in naive_Bayes(prior = rep(0.2, 5)) :
unused argument (prior = rep(0.2, 5))
知道在哪里可以進行參數設置嗎?
您可以將此 model 參數設置為引擎參數:
library(discrim)
#> Loading required package: parsnip
parabolic_prior <- runif(n = 500)
klar_mod <-
naive_Bayes() %>%
set_engine("klaR", prior = parabolic_prior)
translate(klar_mod)
#> Naive Bayes Model Specification (classification)
#>
#> Engine-Specific Arguments:
#> prior = parabolic_prior
#>
#> Computational engine: klaR
#>
#> Model fit template:
#> discrim::klar_bayes_wrapper(x = missing_arg(), y = missing_arg(),
#> prior = parabolic_prior, usekernel = TRUE)
klar_fit <- fit(klar_mod, class ~ ., data = parabolic)
由代表 package (v2.0.1) 於 2022 年 1 月 26 日創建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.