step_impute_roll()
創建配方步驟的規範,該步驟將通過移動窗口內的位置測量(例如中位數)來替換數值變量的缺失值。
用法
step_impute_roll(
recipe,
...,
role = NA,
trained = FALSE,
columns = NULL,
statistic = median,
window = 5,
skip = FALSE,
id = rand_id("impute_roll")
)
step_rollimpute(
recipe,
...,
role = NA,
trained = FALSE,
columns = NULL,
statistic = median,
window = 5,
skip = FALSE,
id = rand_id("impute_roll")
)
參數
- recipe
-
一個菜譜對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數來選擇要估算的變量;這些列必須是非整數(即雙精度)。有關更多詳細信息,請參閱
selections()
。 - role
-
由於沒有創建新變量,因此此步驟未使用。
- trained
-
指示預處理數量是否已估計的邏輯。
- columns
-
所選變量名稱的字符串。該字段是一個占位符,一旦使用
prep()
就會被填充。 - statistic
-
具有單個數據參數的函數,用於計算估算值。隻有完整的值才會傳遞給函數,並且它應該返回雙精度值。
- window
-
要估算的點周圍的窗口大小。應該是大於 1 的奇數。有關本係列末尾要點的討論,請參閱下麵的詳細信息。
- skip
-
一個合乎邏輯的。當
bake()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在prep()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE
時應小心,因為它可能會影響後續操作的計算。 - id
-
該步驟特有的字符串,用於標識它。
細節
在尾部,窗口向兩端移動。例如,對於 5 點窗口,前四個點的窗口為 1:5
、 1:5
、 1:5
,然後是 2:6
。
當窗口中存在缺失數據時,它們不會傳遞給函數。如果窗口中的所有數據均缺失,則返回缺失值。
統計數據是根據插補之前的訓練集值計算的。這意味著,如果窗口內的先前數據丟失,則它們的估算值不會包含在用於插補的窗口數據中。換句話說,每個插補對當前點之前的係列中的先前插補一無所知。
從 recipes
0.1.16 開始,該函數名稱從 step_rollimpute()
更改為 step_impute_roll()
。
整理
當您 tidy()
這一步時,將返回一個包含列 terms
(選擇的選擇器或變量)和 window
(窗口大小)的 tibble。
也可以看看
其他插補步驟: step_impute_bag()
、 step_impute_knn()
、 step_impute_linear()
、 step_impute_lower()
、 step_impute_mean()
、 step_impute_median()
、 step_impute_mode()
其他行操作步驟:step_arrange()
、step_filter()
、step_lag()
、step_naomit()
、step_sample()
、step_shuffle()
、step_slice()
例子
library(lubridate)
set.seed(145)
example_data <-
data.frame(
day = ymd("2012-06-07") + days(1:12),
x1 = round(runif(12), 2),
x2 = round(runif(12), 2),
x3 = round(runif(12), 2)
)
example_data$x1[c(1, 5, 6)] <- NA
example_data$x2[c(1:4, 10)] <- NA
library(recipes)
seven_pt <- recipe(~., data = example_data) %>%
update_role(day, new_role = "time_index") %>%
step_impute_roll(all_numeric_predictors(), window = 7) %>%
prep(training = example_data)
# The training set:
bake(seven_pt, new_data = NULL)
#> # A tibble: 12 × 4
#> day x1 x2 x3
#> <date> <dbl> <dbl> <dbl>
#> 1 2012-06-08 0.89 0.79 0.58
#> 2 2012-06-09 0.53 0.79 0.45
#> 3 2012-06-10 0.86 0.79 0.67
#> 4 2012-06-11 0.92 0.79 0.05
#> 5 2012-06-12 0.86 0.88 0.27
#> 6 2012-06-13 0.86 0.6 0.13
#> 7 2012-06-14 0.97 0.79 0.67
#> 8 2012-06-15 0.85 0.27 0.16
#> 9 2012-06-16 0.86 0.11 0.36
#> 10 2012-06-17 0.96 0.435 0.09
#> 11 2012-06-18 0.91 0.16 0.76
#> 12 2012-06-19 0.07 0.86 0.74
相關用法
- R recipes step_impute_knn 通過 k 最近鄰進行插補
- R recipes step_impute_mean 使用平均值估算數值數據
- R recipes step_impute_mode 使用最常見的值估算名義數據
- R recipes step_impute_lower 估算低於測量閾值的數值數據
- R recipes step_impute_bag 通過袋裝樹進行插補
- R recipes step_impute_median 使用中位數估算數值數據
- R recipes step_impute_linear 通過線性模型估算數值變量
- R recipes step_inverse 逆變換
- R recipes step_ica ICA 信號提取
- R recipes step_indicate_na 創建缺失數據列指示器
- R recipes step_integer 將值轉換為預定義的整數
- R recipes step_intercept 添加截距(或常數)列
- R recipes step_interact 創建交互變量
- R recipes step_invlogit 逆 Logit 變換
- R recipes step_isomap 等位圖嵌入
- R recipes step_unknown 將缺失的類別分配給“未知”
- R recipes step_relu 應用(平滑)修正線性變換
- R recipes step_poly_bernstein 廣義伯恩斯坦多項式基
- R recipes step_pls 偏最小二乘特征提取
- R recipes step_ratio 比率變量創建
- R recipes step_geodist 兩個地點之間的距離
- R recipes step_nzv 近零方差濾波器
- R recipes step_nnmf 非負矩陣分解信號提取
- R recipes step_normalize 中心和比例數值數據
- R recipes step_depth 數據深度
注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Impute numeric data using a rolling window statistic。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。