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


R baguette bagger 装袋函数


适用于多种型号的装袋函数通用套件。

用法

bagger(x, ...)

# S3 method for default
bagger(x, ...)

# S3 method for data.frame
bagger(
  x,
  y,
  weights = NULL,
  base_model = "CART",
  times = 11L,
  control = control_bag(),
  cost = NULL,
  ...
)

# S3 method for matrix
bagger(
  x,
  y,
  weights = NULL,
  base_model = "CART",
  times = 11L,
  control = control_bag(),
  cost = NULL,
  ...
)

# S3 method for formula
bagger(
  formula,
  data,
  weights = NULL,
  base_model = "CART",
  times = 11L,
  control = control_bag(),
  cost = NULL,
  ...
)

# S3 method for recipe
bagger(
  x,
  data,
  base_model = "CART",
  times = 11L,
  control = control_bag(),
  cost = NULL,
  ...
)

参数

x

DataFrame 、矩阵或配方(取决于所使用的方法)。

...

传递给基本模型函数的可选参数。

y

结果的数字或因子向量。分类结果(即类别)应表示为因子,而不是整数。

weights

非负案例权重的数值向量。在引导重采样期间不使用这些值。

base_model

正在装袋的模型的单个字符值。可能的值为"CART"、"MARS"、"nnet" 和"C5.0"(仅限分类)。

times

引导样本/集合成员的最大数量大于 1 的单个整数(某些模型拟合可能会失败)。

control

control_bag() 生成的选项列表。

cost

非负标度(对于两类问题)或成本矩阵。

formula

"formula" 类的对象(或可以强制为该类的对象):要拟合的模型的符号说明。请注意,此包不支持多变量结果,并且如果某些预测变量是因子,则除非通过基础模型函数,否则不会创建虚拟变量。

data

包含公式或配方中使用的变量的 DataFrame 。

细节

bagger() 适合单独的模型来引导样本。每个模型对象的预测函数被编码在 R 表达式中,并且原始模型对象被丢弃。进行预测时,每个预测公式都会根据新数据进行评估并使用平均值进行聚合。

变量重要性分数是使用每个包中的实现来计算的。根据请求,结果位于标题中,列名称为term(预测变量)、value(重要性得分)和used(变量在预测方程中的次数百分比)。

这些模型可以使用并行拟合未来包。启用并行性,使用future::plan()声明的函数如何计算应该是分布式的。请注意,这几乎肯定会增加适合模型所需的内存要求。

对于神经网络,变量重要性是使用 Gevrey 等人 (2003) 中说明的 Garson 方法计算的

参考

Gevrey, M.、Dimopoulos, I. 和 Lek, S. (2003)。人工神经网络模型中变量贡献研究方法的回顾和比较。生态建模,160(3), 249-264。

例子

library(recipes)
#> Loading required package: dplyr
#> 
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#> 
#>     filter, lag
#> The following objects are masked from ‘package:base’:
#> 
#>     intersect, setdiff, setequal, union
#> 
#> Attaching package: ‘recipes’
#> The following object is masked from ‘package:stats’:
#> 
#>     step
library(dplyr)

data(biomass, package = "modeldata")

biomass_tr <-
  biomass %>%
  dplyr::filter(dataset == "Training") %>%
  dplyr::select(-dataset, -sample)

biomass_te <-
  biomass %>%
  dplyr::filter(dataset == "Testing") %>%
  dplyr::select(-dataset, -sample)

# ------------------------------------------------------------------------------

ctrl <- control_bag(var_imp = TRUE)

# ------------------------------------------------------------------------------

# `times` is low to make the examples run faster

set.seed(7687)
mars_bag <- bagger(x = biomass_tr[, -6], y = biomass_tr$HHV,
                   base_model = "MARS", times = 5, control = ctrl)
mars_bag
#> Bagged MARS (regression with 5 members)
#> 
#> Variable importance scores include:
#> 
#> # A tibble: 5 × 4
#>   term      value std.error  used
#>   <chr>     <dbl>     <dbl> <int>
#> 1 carbon   100        0         5
#> 2 hydrogen  18.1      2.66      5
#> 3 oxygen    11.6      2.53      4
#> 4 sulfur     1.56     0         1
#> 5 nitrogen   1.09     0.757     2
#> 
var_imp(mars_bag)
#> # A tibble: 5 × 4
#>   term      value std.error  used
#>   <chr>     <dbl>     <dbl> <int>
#> 1 carbon   100        0         5
#> 2 hydrogen  18.1      2.66      5
#> 3 oxygen    11.6      2.53      4
#> 4 sulfur     1.56     0         1
#> 5 nitrogen   1.09     0.757     2

set.seed(7687)
cart_bag <- bagger(x = biomass_tr[, -6], y = biomass_tr$HHV,
                   base_model = "CART", times = 5, control = ctrl)
cart_bag
#> Bagged CART (regression with 5 members)
#> 
#> Variable importance scores include:
#> 
#> # A tibble: 5 × 4
#>   term     value std.error  used
#>   <chr>    <dbl>     <dbl> <int>
#> 1 carbon   5716.     226.      5
#> 2 oxygen   3190.     110.      5
#> 3 hydrogen 2297.     283.      5
#> 4 sulfur    464.      63.2     5
#> 5 nitrogen  268.      12.3     5
#> 

# ------------------------------------------------------------------------------
# Other interfaces

# Recipes can be used
biomass_rec <-
  recipe(HHV ~ ., data = biomass_tr) %>%
  step_pca(all_predictors())

set.seed(7687)
cart_pca_bag <- bagger(biomass_rec, data = biomass_tr, base_model = "CART",
                       times = 5, control = ctrl)

cart_pca_bag
#> Bagged CART (regression with 5 members)
#> 
#> Variable importance scores include:
#> 
#> # A tibble: 5 × 4
#>   term  value std.error  used
#>   <chr> <dbl>     <dbl> <int>
#> 1 PC2   4500.     245.      5
#> 2 PC1   3559.     156.      5
#> 3 PC3   1107.     210.      5
#> 4 PC5    648.     137.      5
#> 5 PC4    468.      71.6     5
#> 

# Using formulas
mars_bag <- bagger(HHV ~ ., data = biomass_tr, base_model = "MARS", times = 5,
                   control = ctrl)
mars_bag
#> Bagged MARS (regression with 5 members)
#> 
#> Variable importance scores include:
#> 
#> # A tibble: 5 × 4
#>   term      value std.error  used
#>   <chr>     <dbl>     <dbl> <int>
#> 1 carbon   100         0        5
#> 2 oxygen    22.4       3.09     5
#> 3 hydrogen  17.2       1.45     5
#> 4 sulfur     2.22      2.10     2
#> 5 nitrogen   1.39      0        1
#> 
源代码:R/bagger.R

相关用法


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