discretize()
將數值向量轉換為具有大致相同數據點數量的箱的因子(基於訓練集)。
用法
discretize(x, ...)
# S3 method for default
discretize(x, ...)
# S3 method for numeric
discretize(
x,
cuts = 4,
labels = NULL,
prefix = "bin",
keep_na = TRUE,
infs = TRUE,
min_unique = 10,
...
)
# S3 method for discretize
predict(object, new_data, ...)
參數
- x
-
數值向量
- ...
-
傳遞給
stats::quantile()
的選項不應包含x
或probs
。 - cuts
-
一個整數,定義對數據進行多少次切割。
- labels
-
定義新因子中的因子級別的字符向量(從最小到最大)。該長度應為
cuts+1
,並且不應包含缺失級別(請參閱下麵的keep_na
)。 - prefix
-
用作因子級別前綴的單個參數值(例如
bin1
、bin2
等)。如果字符串不是有效的 R 名稱,則會將其強製為 1。如果是prefix = NULL
,則因子級別將根據cut()
的輸出進行標記。 - keep_na
-
是否應創建因子級別來識別
x
中缺失值的邏輯。如果keep_na
設置為TRUE
,則在調用stats::quantile()
時使用na.rm = TRUE
。 - infs
-
指示最小和最大分割點是否應該是無限的邏輯。
- min_unique
-
定義分箱尊嚴的樣本大小線的整數。如果(唯一值的數量)
/(cuts+1)
小於min_unique
,則不會發生離散化。 - object
-
類
discretize
的對象。 - new_data
-
要分箱的新數字對象。
細節
discretize
使用百分位數估計 x
的分割點。例如,如果 cuts = 3
,該函數會估計 x
的四分位數並將其用作分割點。如果 cuts = 2
,則 bin 被定義為高於或低於 x
的中值。
然後可以使用 predict
方法將數值向量轉換為因子向量。
如果是 keep_na = TRUE
,則後綴 "_missing" 將用作因子級別(請參閱下麵的示例)。
如果 infs = FALSE
和新值大於 x
的最大值,則會導致缺失值。
例子
data(biomass, package = "modeldata")
biomass_tr <- biomass[biomass$dataset == "Training", ]
biomass_te <- biomass[biomass$dataset == "Testing", ]
median(biomass_tr$carbon)
#> [1] 47.1
discretize(biomass_tr$carbon, cuts = 2)
#> Bins: 3 (includes missing category)
#> Breaks: -Inf, 47.1, Inf
discretize(biomass_tr$carbon, cuts = 2, infs = FALSE)
#> Bins: 3 (includes missing category)
#> Breaks: 14.61, 47.1, 97.18
discretize(biomass_tr$carbon, cuts = 2, infs = FALSE, keep_na = FALSE)
#> Bins: 2
#> Breaks: 14.61, 47.1, 97.18
discretize(biomass_tr$carbon, cuts = 2, prefix = "maybe a bad idea to bin")
#> Warning: The prefix 'maybe a bad idea to bin' is not a valid R name. It has been changed to 'maybe.a.bad.idea.to.bin'.
#> Bins: 3 (includes missing category)
#> Breaks: -Inf, 47.1, Inf
carbon_binned <- discretize(biomass_tr$carbon)
table(predict(carbon_binned, biomass_tr$carbon))
#>
#> bin1 bin2 bin3 bin4
#> 114 115 113 114
carbon_no_infs <- discretize(biomass_tr$carbon, infs = FALSE)
predict(carbon_no_infs, c(50, 100))
#> [1] bin4 <NA>
#> Levels: bin1 bin2 bin3 bin4
相關用法
- R recipes detect_step 檢測配方中是否使用了特定步驟或檢查
- 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 信號提取
注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Discretize Numeric Variables。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。