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