用法
# S3 method for model_spec
fit(
object,
formula,
data,
case_weights = NULL,
control = control_parsnip(),
...
)
# S3 method for model_spec
fit_xy(object, x, y, case_weights = NULL, control = control_parsnip(), ...)
参数
- object
-
具有选定引擎的
model_spec
类对象(通过set_engine()
)。 - formula
-
formula
类的对象(或可以强制为该类的对象):要拟合的模型的符号说明。 - data
-
可选,具体取决于接口(请参阅下面的详细信息)。包含所有相关变量(例如结果、预测变量、案例权重等)的 DataFrame 。注意:需要时,应使用命名参数。
- case_weights
-
数字案例权重的可选分类向量。当
hardhat::is_case_weights()
运行时,它必须返回TRUE
。有关示例,请参阅hardhat::frequency_weights()
和hardhat::importance_weights()
。 - control
-
包含元素
verbosity
和catch
的命名列表。请参阅control_parsnip()
。 - ...
-
目前未使用;此处传递的值将被忽略。适合模型所需的其他选项应使用
set_engine()
传递。 - x
-
预测变量的矩阵、稀疏矩阵或 DataFrame 。只有某些模型支持稀疏矩阵输入。有关详细信息,请参阅
parsnip::get_encoding()
。x
应该有列名称。 - y
-
结果数据的向量、矩阵或 DataFrame 。
值
包含多个元素的 model_fit
对象:
-
lvl
:如果结果是一个因子,则包含模型拟合时的因子水平。 -
spec
:模型规范对象(object
在对fit
的调用中) -
fit
:当模型执行没有错误时,这是模型对象。否则,它是带有错误消息的try-error
对象。 -
preproc
:公式和非公式接口之间转换所需的任何对象(例如terms
对象)
返回值在 "model_fit"
的基类之前还将有一个与拟合模型相关的类(例如 "_glm"
)。
细节
fit()
和 fit_xy()
将模型规范中的当前参数替换为计算引擎的代码,检查它们的有效性,然后使用数据和引擎特定的代码拟合模型。不同的模型函数具有不同的接口(例如,公式或 x
/y
),这些函数在调用 fit()
或 fit_xy()
时使用的接口与底层模型所需的接口之间进行转换。
如果可能,这些函数会尝试避免复制数据。例如,如果底层模型使用公式并调用fit()
,则模型拟合时将引用原始数据。但是,如果底层模型使用其他内容,例如 x
/y
,则会计算公式并将数据转换为所需的格式。在这种情况下,生成的模型对象中的任何调用都会引用用于拟合模型的临时对象。
如果尚未设置模型引擎,则将使用模型的默认引擎(如每个模型页面上所述)。如果control_parsnip()
的verbosity
选项大于零,将产生警告。
如果您想在向 fit()
提供公式时使用替代方法来生成对比,请将全局选项 contrasts
设置为您的首选方法。例如,您可以将其设置为:options(contrasts = c(unordered = "contr.helmert", ordered = "contr.poly"))
。有关更多可能的对比度类型,请参阅 stats::contr.treatment()
的帮助页面。
对于具有 "censored regression"
模式的模型,将执行额外的计算并将其保存在防风草对象中。 censor_probs
元素包含一条“反向 Kaplan-Meier”曲线,用于对审查概率进行建模。这可以稍后用于计算性能测量的逆概率审查权重。
也可以看看
set_engine()
, control_parsnip()
, model_spec
, model_fit
例子
# Although `glm()` only has a formula interface, different
# methods for specifying the model can be used
library(dplyr)
library(modeldata)
data("lending_club")
lr_mod <- logistic_reg()
using_formula <-
lr_mod %>%
set_engine("glm") %>%
fit(Class ~ funded_amnt + int_rate, data = lending_club)
using_xy <-
lr_mod %>%
set_engine("glm") %>%
fit_xy(x = lending_club[, c("funded_amnt", "int_rate")],
y = lending_club$Class)
using_formula
#> parsnip model object
#>
#>
#> Call: stats::glm(formula = Class ~ funded_amnt + int_rate, family = stats::binomial,
#> data = data)
#>
#> Coefficients:
#> (Intercept) funded_amnt int_rate
#> 5.131e+00 2.767e-06 -1.586e-01
#>
#> Degrees of Freedom: 9856 Total (i.e. Null); 9854 Residual
#> Null Deviance: 4055
#> Residual Deviance: 3698 AIC: 3704
using_xy
#> parsnip model object
#>
#>
#> Call: stats::glm(formula = ..y ~ ., family = stats::binomial, data = data)
#>
#> Coefficients:
#> (Intercept) funded_amnt int_rate
#> 5.131e+00 2.767e-06 -1.586e-01
#>
#> Degrees of Freedom: 9856 Total (i.e. Null); 9854 Residual
#> Null Deviance: 4055
#> Residual Deviance: 3698 AIC: 3704
相关用法
- R parsnip logistic_reg 逻辑回归
- R parsnip predict.model_fit 模型预测
- R parsnip linear_reg 线性回归
- R parsnip C5_rules C5.0 基于规则的分类模型
- R parsnip set_engine 声明计算引擎和特定参数
- R parsnip condense_control 将控制对象压缩为更小的控制对象
- R parsnip control_parsnip 控制拟合函数
- R parsnip augment 通过预测增强数据
- R parsnip repair_call 修复模型调用对象
- R parsnip dot-model_param_name_key 翻译模型调整参数的名称
- R parsnip glm_grouped 将数据集中的分组二项式结果与个案权重拟合
- R parsnip rule_fit 规则拟合模型
- R parsnip svm_rbf 径向基函数支持向量机
- R parsnip set_args 更改模型规范的元素
- R parsnip translate 解决计算引擎的模型规范
- R parsnip max_mtry_formula 根据公式确定 mtry 的最大值。此函数可能会根据公式和数据集限制 mtry 的值。对于生存和/或多变量模型来说,这是一种安全的方法。
- R parsnip svm_linear 线性支持向量机
- R parsnip set_new_model 注册模型的工具
- R parsnip rand_forest 随机森林
- R parsnip mlp 单层神经网络
- R parsnip nearest_neighbor K-最近邻
- R parsnip parsnip_update 更新型号规格
- R parsnip boost_tree 增强树
- R parsnip bart 贝叶斯加性回归树 (BART)
- R parsnip add_rowindex 将一列行号添加到 DataFrame
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Fit a Model Specification to a Dataset。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。