[Recipes] step_
1. selections
dplyr style syntex
starts_with()ends_with()contains(): 특정 텍스트 포함matches(): 정규표현식 사용num_range(): 특정 텍스트 + 숫자 범위 지정 가능num_range("wk", 10:15): wk10 ~ wk15 까지 선택
everything()all_of(): 변수 벡터가 모두 테이블에 있어야 반환(하나라도 없으면 오류)any_of(): 변수 벡터 중 하나라도 테이블에 있으면 반환
by role of the variables
all_outcomes()all_predictors()has_role()
by type of the variables
all_nominal()all_numeric()has_type()
by both
all_nominal_predictors()all_numeric_predictors()
2. step_function list
2.1 Imputation
step_impute_bag: bagged tree 모델로 결측값 처리하는 방식으로 시간이 오래 걸림step_impute_knnstep_impute_linear: 다변량 선형 회귀step_impute_lower: 최소값step_impute_mean: 평균step_impute_median: 중앙값step_impute_mode: 최빈값step_impute_roll(): 시간 순서를 고려하여 rolling window를 고려한 시계열 전용 함수statistic: rolling window 내에서 사용할 통계량window: rolling window 크기
2.2 Transformation
step_logstep_sqrt
step_BoxCox: 연속형 변수의 분포 정규화(only 양수)step_YeoJohnson: BoxCox의 확장판으로 음수 및 0 가능step_logit: 0~1 사이 확률값 p를 로그 오즈값으로 변환- \(logit(p) = log(\frac{p}{1-p})\)
step_invlogit: logit함수의 역함수로 다시 0~1 사이 확률값 p 반환- \(p = \frac{1}{1 + e^{-x}}\)
step_harmonic: 시간 변수를 sin/cos 함수로 변환시켜 주기성 특징 생성frequency: 주파수로 주기(period)와 역수 관계cycle_size: 주기 단위
step_percentile: 수치형 범주의 누적 분포를 계산하여 0 ~ 1 사이 범위로 변환
2.3 Discretization
step_discretize: 연속형 변수를 구간(bin)으로 나누어 범주형으로 변환step_cut:step_discretize와 동일한 함수지만breaks인자로 구간 경계값 지정 필요
2.4 Dummy variables
step_dummyone_hot: A logical. 범주를 n개로 나눌 때 n개(TRUE)로 할지 n-1개(FALSE)로 할지 결정
step_dummy_extract: 문자열 내 개별 단어를 분리한 뒤, 각 단어의 존재 여부나 빈도를 0/1 형태의 특징으로 변환sep: 문자열 분리 기준 문자pattern: 문자열 분리 정규 표현식threshold: 단어의 최소 발생 비율 또는 개수(기준 미만은 “other”로 통합)
step_dummy_multi_choice: 여러 개의 명목형 변수를 이진 변수로 변환step_count: 문자열 내 패턴과 일치하는 단어 개수 반환normalize: 정규화 여부
step_regex: 문자열 내 패턴과 일치하는 단어 존재 여부 이진 변수로 반환step_bin2factor: 수치형 이진 변수를 원하는 라벨로 범주형 변수로 변환levels: 원하는 라벨 설정
step_factor2string: 범주형 변수(fct)를 문자열 변수(chr)로 변환step_string2factor: 문자열 변수(chr)를 범주형 변수(fct)로 변환step_num2factor: 숫자형 변수를 특정 함수를 적용해 범주형 변수로 변환transform: 사용자 정의 함수를 지정 가능 e.g.\(x) x > mean(x)
step_integer: 범주형 변수를 각 범주의 order를 기준으로 정수값으로 변환- 문자형 변수(chr)도 가능하지만 level이 없기에 알파벳 순으로 정수값 변환
step_ordinalscore: 순서가 있는 범주형 변수(ordered factor)를 순서(level)에 따라 숫자로 변환step_novel: 범주형 변수에 새로운 범주를 추가step_other: 범주형 변수를 특정 비율 미만인 범주를 “others”로 처리step_indicate_na: 결측치 존재 여부를 나타내는 이진 변수 생성step_unknown: 범주형 변수에 존재하는NA를 사용자가 지정한 수준으로 대체new_level = "unknown"
step_relevel: 범주형 변수의 기준 level을 새롭게 지정ref_level: 첫 번째 기준이 될 level
step_unorder: 순서가 있는 범주형 변수에서 순서가 없는 범주형 변수로 변환
2.5 Date and Datetime
step_date: 날짜 특징 생성featuresdow(day of week)mday(day of month)doy(day of year)weekmonthyeardecimalquartersemester
abbr,label: A logical. Only available formonthordow
step_time: 시간 특징 생성featuresam: am인지 TRUE/FALSE 반환hourhour12minuteseconddecimal_day: 하루 24 시간을 1 단위로 표현
step_holiday: 휴일 여부를 이진변수로 변환
2.6 Interactions
step_interact: 상호작용 특징 생성숫자형 변수에 주로 사용
범주형 변수 사용을 위해서는 dummy 변수로 변환이 필요
terms: R formula 형태로 입력(e.g.~ A:B)
2.7 Normalization
step_center: 단위는 그대로 두고 평균을 0으로 이동step_normalize: 표준 정규화(평균 0, 분산 1)step_range: Min-Max 정규화step_scale: 단순히 표준편차로 나눔
2.8 Filters
step_corr: 다른 변수들 간 상관관계가 높은 변수 제거(통계적 중복 제거)step_filter_missing: 일정 비율 이상의 결측치를 가진 변수 제거(수학적 중복 제거)step_lincomb: 선형 종속 변수 제거step_nzv: 분산이 낮아 모델에 영향이 없는 변수 제거step_rm: 분산이 0인 상수형 변수 제거step_zv: 사용자가 명시한 변수 제거
2.9 Row Operations
step_arrangestep_filterstep_lagstep_naomitstep_samplestep_shuffle: 선택한 변수 내 행 무작위 변환step_slice
2.10 Others
step_intercept: 상수항 변수 추가step_profile: 특정 변수를 제외한 나머지 변수들을 고정(median)하고 특정 변수를 대상으로 grid 생성grid = list(pctl = T/F, len = 100)pctl = TRUE: 데이터 분위수(percentile)를 고려하여 grid 생성pctl = FALSE: 최소값과 최대값 사이의 균등 간격으로 grid 생성
step_rename: 변수명 변경step_rename_at: 사용자 정의 조건으로 변수명 변경step_window: 롤링 윈도우 기반 통계 변수 생성