step_discretize_cart()
創建配方步驟的規範,該步驟將使用 CART 模型以監督方式將數值數據(例如整數或雙精度數)離散化到容器中。
用法
step_discretize_cart(
recipe,
...,
role = NA,
trained = FALSE,
outcome = NULL,
cost_complexity = 0.01,
tree_depth = 10,
min_n = 20,
rules = NULL,
skip = FALSE,
id = rand_id("discretize_cart")
)
參數
- recipe
-
一個菜譜對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數用於選擇受該步驟影響的變量。有關更多詳細信息,請參閱
selections()
。 - role
-
默認為
"predictor"
。 - trained
-
指示預處理數量是否已估計的邏輯。
- outcome
-
調用
vars
指定使用哪個變量作為訓練 CART 模型的結果,以便離散化解釋變量。 - cost_complexity
-
正則化參數。不會嘗試任何不會將總體不適合度降低
cost_complexity
係數的拆分。對應於rpart::rpart()
中的cp
。默認為 0.01。 - tree_depth
-
最終樹的最大深度。對應於
rpart::rpart()
中的maxdepth
。默認為 10。 - min_n
-
節點中繼續分裂所需的數據點數量。對應於
rpart::rpart()
中的minsplit
。默認為 20。 - rules
-
為每個變量保留的最佳 CART 樹的分割規則。如果長度為零,則不能對該列使用拆分。
- skip
-
一個合乎邏輯的。當
recipes::bake()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在recipes::prep()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE
時應小心,因為它可能會影響後續操作的計算 - id
-
該步驟特有的字符串,用於標識它。
細節
step_discretize_cart()
通過利用有關結果變量的信息並應用 CART 模型,從數值變量創建非均勻箱。
每個變量的最佳存儲桶選擇是使用 CART 的標準 cost-complexity 剪枝來選擇的,這使得這種離散化方法能夠抵抗過度擬合。
此步驟需要部分包。如果未安裝,該步驟將停止並顯示有關安裝包的注釋。
請注意,原始數據將被新的 bin 替換。
整理
當您 tidy()
此步驟時,將返回包含 terms
列(選定的列)的 tibble,values
。
調整參數
這一步有3個調整參數:
-
cost_complexity
: Cost-Complexity 參數(類型:double,默認值:0.01) -
tree_depth
:樹深度(類型:整數,默認值:10) -
min_n
:最小節點大小(類型:整數,默認值:20)
箱重
此步驟執行可以利用案例權重的監督操作。要使用它們,請參閱 recipes::case_weights 中的文檔和 tidymodels.org
中的示例。
例子
library(modeldata)
data(ad_data)
library(rsample)
split <- initial_split(ad_data, strata = "Class")
ad_data_tr <- training(split)
ad_data_te <- testing(split)
cart_rec <-
recipe(Class ~ ., data = ad_data_tr) %>%
step_discretize_cart(
tau, age, p_tau, Ab_42,
outcome = "Class", id = "cart splits"
)
cart_rec <- prep(cart_rec, training = ad_data_tr)
# The splits:
tidy(cart_rec, id = "cart splits")
#> # A tibble: 19 × 3
#> terms value id
#> <chr> <dbl> <chr>
#> 1 tau 6.03 cart splits
#> 2 tau 6.17 cart splits
#> 3 tau 6.20 cart splits
#> 4 tau 6.28 cart splits
#> 5 tau 6.51 cart splits
#> 6 tau 6.66 cart splits
#> 7 age 0.986 cart splits
#> 8 age 0.987 cart splits
#> 9 age 0.987 cart splits
#> 10 age 0.988 cart splits
#> 11 p_tau 3.93 cart splits
#> 12 p_tau 4.11 cart splits
#> 13 p_tau 4.15 cart splits
#> 14 p_tau 4.27 cart splits
#> 15 p_tau 4.40 cart splits
#> 16 p_tau 4.75 cart splits
#> 17 Ab_42 10.8 cart splits
#> 18 Ab_42 11.0 cart splits
#> 19 Ab_42 11.3 cart splits
bake(cart_rec, ad_data_te, tau)
#> # A tibble: 84 × 1
#> tau
#> <fct>
#> 1 [6.278,6.515)
#> 2 [-Inf,6.032)
#> 3 [-Inf,6.032)
#> 4 [-Inf,6.032)
#> 5 [-Inf,6.032)
#> 6 [-Inf,6.032)
#> 7 [-Inf,6.032)
#> 8 [-Inf,6.032)
#> 9 [-Inf,6.032)
#> 10 [-Inf,6.032)
#> # ℹ 74 more rows
相關用法
- R embed step_discretize_xgb 使用 XgBoost 離散數值變量
- R embed step_umap 有監督和無監督均勻流形逼近和投影 (UMAP)
- R embed step_pca_truncated 截斷的 PCA 信號提取
- R embed step_lencode_glm 使用似然編碼將監督因子轉換為線性函數
- R embed step_pca_sparse 稀疏PCA信號提取
- R embed step_lencode_bayes 使用貝葉斯似然編碼將監督因子轉換為線性函數
- R embed step_collapse_stringdist 使用 stringdist 的折疊因子級別
- R embed step_collapse_cart 因子水平的監督崩潰
- R embed step_pca_sparse_bayes 稀疏貝葉斯 PCA 信號提取
- R embed step_lencode_mixed 使用貝葉斯似然編碼將監督因子轉換為線性函數
- R embed step_embed 將因子編碼到多列中
- R embed step_woe 證據權重變換
- R embed step_feature_hash 通過特征哈希創建虛擬變量
- R embed dictionary 證據權重詞典
- R embed is_tf_available 測試一下tensorflow是否可用
- R embed add_woe 在 DataFrame 中添加 WoE
- R SparkR eq_null_safe用法及代碼示例
- R SparkR except用法及代碼示例
- R SparkR explain用法及代碼示例
- R SparkR exceptAll用法及代碼示例
- R dtrMatrix-class 三角形稠密數值矩陣
- R vcov.gam 從 GAM 擬合中提取參數(估計器)協方差矩陣
- R gam.check 擬合 gam 模型的一些診斷
- R ggplot2 annotation_logticks 注釋:記錄刻度線
- R matrix轉list用法及代碼示例
注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Discretize numeric variables with CART。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。