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


R parsnip fit 将模型规范拟合到数据集


fit()fit_xy() 采用模型规范,通过替换参数翻译所需的代码,并执行模型拟合例程。

用法

# 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

包含元素 verbositycatch 的命名列表。请参阅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/fit.R

相关用法


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