簡體   English   中英

tidymodels 如何為朴素貝葉斯 model 設置先驗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM