适用于多种型号的装袋函数通用套件。
用法
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 方法计算的
例子
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 baguette control_bag 控制装袋过程
- R baguette predict.bagger 来自 bagged 模型的预测
- R baguette class_cost 少数群体的成本参数
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
- R icuSetCollate 按 ICU 设置整理
- R search 给出 R 对象的搜索路径
- R Defunct 将对象标记为已失效
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Bagging functions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。