對於至少具有一個預處理操作的配方,從訓練集中估計所需的參數,然後將其應用於其他數據集。
用法
prep(x, ...)
# S3 method for recipe
prep(
x,
training = NULL,
fresh = FALSE,
verbose = FALSE,
retain = TRUE,
log_changes = FALSE,
strings_as_factors = TRUE,
...
)
參數
- x
-
一個東西
- ...
-
傳入或傳出其他方法的更多參數(當前未使用)。
- training
-
將用於估計預處理參數的 DataFrame 或標題。
- fresh
-
指示是否應重新訓練已訓練操作的邏輯。如果是
TRUE
,您應該將數據集傳遞給參數training
。 - verbose
-
控製是否在執行操作時報告進度的邏輯。
- retain
-
邏輯:訓練後預處理的訓練集是否應該保存到配方的
template
槽中?如果您想稍後添加更多步驟但希望避免重新訓練現有步驟,這是一個好主意。此外,如果任何步驟使用選項skip = FALSE
,建議使用retain = TRUE
。請注意,這可能會使最終的配方尺寸變大。當verbose = TRUE
時,消息是用內存中的近似對象大小寫入的,但可能會低估,因為它沒有考慮環境。 - log_changes
-
用於打印每個步驟的摘要的邏輯,該摘要涉及訓練期間添加或刪除的列(如果有)。
- strings_as_factors
-
邏輯:字符列應該轉換為因子嗎?這會影響預處理的訓練集(當
retain = TRUE
時)以及bake.recipe
的結果。
細節
給定一個數據集,該函數會估計任何操作所需的數量和統計數據。 prep()
返回包含估計值的更新配方。如果您使用配方作為建模的預處理器,我們強烈建議您使用 workflow()
而不是手動估計配方(請參閱 recipe()
中的示例)。
請注意,丟失的數據是在步驟中處理的;配方級別或 prep()
中沒有全局 na.rm
選項。
此外,如果使用 prep()
訓練配方,然後添加步驟,prep()
將僅更新新操作。如果是 fresh = TRUE
,所有操作都將被(重新)估計。
執行這些步驟時,training
集會更新。例如,如果第一步是使數據居中,第二步是縮放數據,則縮放步驟將給出居中的數據。
例子
data(ames, package = "modeldata")
library(dplyr)
ames <- mutate(ames, Sale_Price = log10(Sale_Price))
ames_rec <-
recipe(
Sale_Price ~ Longitude + Latitude + Neighborhood + Year_Built + Central_Air,
data = ames
) %>%
step_other(Neighborhood, threshold = 0.05) %>%
step_dummy(all_nominal()) %>%
step_interact(~ starts_with("Central_Air"):Year_Built) %>%
step_ns(Longitude, Latitude, deg_free = 5)
prep(ames_rec, verbose = TRUE)
#> oper 1 step other [training]
#> oper 2 step dummy [training]
#> oper 3 step interact [training]
#> oper 4 step ns [training]
#> The retained training set is ~ 0.48 Mb in memory.
#>
#>
#> ── Recipe ────────────────────────────────────────────────────────────────
#>
#> ── Inputs
#> Number of variables by role
#> outcome: 1
#> predictor: 5
#>
#> ── Training information
#> Training data contained 2930 data points and no incomplete rows.
#>
#> ── Operations
#> • Collapsing factor levels for: Neighborhood | Trained
#> • Dummy variables from: Neighborhood, Central_Air | Trained
#> • Interactions with: Central_Air_Y:Year_Built | Trained
#> • Natural splines on: Longitude, Latitude | Trained
prep(ames_rec, log_changes = TRUE)
#> step_other (other_AAhJh): same number of columns
#>
#> step_dummy (dummy_kTnm6):
#> new (9): Neighborhood_College_Creek, Neighborhood_Old_Town, ...
#> removed (2): Neighborhood, Central_Air
#>
#> step_interact (interact_95l5E):
#> new (1): Central_Air_Y_x_Year_Built
#>
#> step_ns (ns_FzcMd):
#> new (10): Longitude_ns_1, Longitude_ns_2, Longitude_ns_3, ...
#> removed (2): Longitude, Latitude
#>
#>
#> ── Recipe ────────────────────────────────────────────────────────────────
#>
#> ── Inputs
#> Number of variables by role
#> outcome: 1
#> predictor: 5
#>
#> ── Training information
#> Training data contained 2930 data points and no incomplete rows.
#>
#> ── Operations
#> • Collapsing factor levels for: Neighborhood | Trained
#> • Dummy variables from: Neighborhood, Central_Air | Trained
#> • Interactions with: Central_Air_Y:Year_Built | Trained
#> • Natural splines on: Longitude, Latitude | Trained
相關用法
- R recipes step_unknown 將缺失的類別分配給“未知”
- R recipes step_relu 應用(平滑)修正線性變換
- R recipes step_poly_bernstein 廣義伯恩斯坦多項式基
- R recipes step_impute_knn 通過 k 最近鄰進行插補
- R recipes step_impute_mean 使用平均值估算數值數據
- R recipes step_inverse 逆變換
- R recipes step_pls 偏最小二乘特征提取
- R recipes update.step 更新菜譜步驟
- R recipes step_ratio 比率變量創建
- R recipes step_geodist 兩個地點之間的距離
- R recipes step_nzv 近零方差濾波器
- R recipes step_nnmf 非負矩陣分解信號提取
- R recipes step_normalize 中心和比例數值數據
- R recipes step_depth 數據深度
- R recipes step_other 折疊一些分類級別
- R recipes step_harmonic 添加正弦和餘弦項以進行諧波分析
- R recipes step_corr 高相關濾波器
- R recipes step_novel 新因子水平的簡單賦值
- R recipes step_select 使用 dplyr 選擇變量
- R recipes formula.recipe 從準備好的食譜創建配方
- R recipes step_regex 檢測正則表達式
- R recipes step_spline_b 基礎樣條
- R recipes step_window 移動窗口函數
- R recipes step_ica ICA 信號提取
- R recipes check_range 檢查範圍一致性
注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Estimate a preprocessing recipe。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。