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


R parsnip set_new_model 注冊模型的工具


這些函數與構造函數類似,可用於驗證與包使用的底層模型結構不存在衝突。

用法

set_new_model(model)

set_model_mode(model, mode)

set_model_engine(model, mode, eng)

set_model_arg(model, eng, parsnip, original, func, has_submodel)

set_dependency(model, eng, pkg = "parsnip", mode = NULL)

get_dependency(model)

set_fit(model, mode, eng, value)

get_fit(model)

set_pred(model, mode, eng, type, value)

get_pred_type(model, type)

show_model_info(model)

pred_value_template(pre = NULL, post = NULL, func, ...)

set_encoding(model, mode, eng, options)

get_encoding(model)

參數

model

模型類型的單個字符串(例如 "rand_forest" 等)。

mode

模型模式的單個字符串(例如"regression")。

eng

模型引擎的單個字符串。

parsnip

parsnip 公開的 "harmonized" 參數名稱的單個字符串。

original

底層模型函數使用的參數名稱的單個字符串。

func

說明如何調用函數的命名字符向量。 func 應該包含元素 pkgfun 。前者是可選的,但建議使用,後者是必需的。例如,c(pkg = "stats", fun = "lm") 將用於調用通常的線性回歸函數。在某些情況下,在使用包的 predict 方法時使用 c(fun = "predict") 會很有幫助。

has_submodel

關於參數是否可以同時對多個子模型進行預測的單一邏輯。

pkg

包名稱的選項字符串。

value

符合下麵 fit_objpred_obj 說明的列表,具體取決於上下文。

type

預測類型的單個字符值。可能的值為: classconf_intnumericpred_intprobquantileraw

pre, post

用於預測結果的預處理和後處理的可選函數。

...

應傳遞到預測對象的 args 槽中的可選參數。

options

特定於引擎的預處理編碼的選項列表。請參閱下麵的詳細信息。

細節

這些函數可供用戶添加自己的模型或引擎(在包中或以其他方式),以便可以使用 parsnip 訪問它們。軟件包網站上對此進行了更詳細的記錄(請參閱下麵的引用)。

簡而言之,parsnip 存儲一個環境對象,其中包含有關如何使用模型的所有信息和代碼(例如擬合、預測等)。這些函數可用於將模型添加到該環境中,以及可用於確保模型數據采用正確格式的輔助函數。

check_model_exists() 檢查模型值並確保模型已注冊。 check_model_doesnt_exist() 檢查模型值,並檢查它在環境中是否新穎。

特定於引擎的編碼選項決定了如何處理預測變量。這些選項確保 parsnip 提供給基礎模型的數據允許模型擬合與其直接生成的數據盡可能相似。

例如,如果使用 fit() 來擬合沒有公式接口的模型,通常必須進行一些預測器預處理。 glmnet 就是一個很好的例子。

有四個選項可用於編碼:

predictor_indicators 說明是否以及如何從因子預測變量創建指標/虛擬變量。共有三個選項:"none"(不擴展因子預測變量)、"traditional"(應用標準 model.matrix() 編碼)和 "one_hot"(創建包括所有因子的基線水平的完整集)。此編碼僅影響使用 fit.model_spec() 並且底層模型具有 x/y 接口的情況。

另一個選項是compute_intercept;這控製 model.matrix() 是否應在其公式中包含截距。這影響的不僅僅是截距列的包含。通過截距,model.matrix() 計算除一個因子水平之外的所有虛擬變量。如果沒有截距,model.matrix() 會計算第一個因子變量的完整指標集,但會計算其餘變量的不完整指標集。

接下來,選項remove_intercept將在model.matrix()完成後刪除截距列。如果模型函數(例如 lm() )自動生成截距,這會很有用。

最後,allow_sparse_x 指定模型函數是否可以在擬合和調整期間本機容納預測變量的稀疏矩陣表示。

參考

“如何構建防風草模型”https://www.tidymodels.org/learn/develop/models/

例子

# set_new_model("shallow_learning_model")

# Show the information about a model:
show_model_info("rand_forest")
#> Information for `rand_forest`
#>  modes: unknown, classification, regression, censored regression 
#> 
#>  engines: 
#>    classification: randomForest, ranger¹, spark
#>    regression:     randomForest, ranger¹, spark
#> 
#> ¹The model can use case weights.
#> 
#>  arguments: 
#>    ranger:       
#>       mtry  --> mtry
#>       trees --> num.trees
#>       min_n --> min.node.size
#>    randomForest: 
#>       mtry  --> mtry
#>       trees --> ntree
#>       min_n --> nodesize
#>    spark:        
#>       mtry  --> feature_subset_strategy
#>       trees --> num_trees
#>       min_n --> min_instances_per_node
#> 
#>  fit modules:
#>          engine           mode
#>          ranger classification
#>          ranger     regression
#>    randomForest classification
#>    randomForest     regression
#>           spark classification
#>           spark     regression
#> 
#>  prediction modules:
#>              mode       engine                    methods
#>    classification randomForest           class, prob, raw
#>    classification       ranger class, conf_int, prob, raw
#>    classification        spark                class, prob
#>        regression randomForest               numeric, raw
#>        regression       ranger     conf_int, numeric, raw
#>        regression        spark                    numeric
#> 
源代碼:R/aaa_models.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Tools to Register Models。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。