當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。