[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_knn

  • step_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_log

  • step_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_dummy

    • one_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 : 날짜 특징 생성

    • features

      • dow (day of week)

      • mday (day of month)

      • doy (day of year)

      • week

      • month

      • year

      • decimal

      • quarter

      • semester

    • abbr , label : A logical. Only available for month or dow

  • step_time : 시간 특징 생성

    • features

      • am : am인지 TRUE/FALSE 반환

      • hour

      • hour12

      • minute

      • second

      • decimal_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_arrange

  • step_filter

  • step_lag

  • step_naomit

  • step_sample

  • step_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 : 롤링 윈도우 기반 통계 변수 생성