tidyverse
성명서12017-11-13일 위캠(Hadley Wickham)은 tidyverse
성명서(manifesto)를 발표하였다. 엉망진창인 R 도구상자(messyverse)와 비교하여 깔끔한 R 도구상자(tidyverse)는 깔끔한(tidy) API에 다음과 같은 4가지 원칙을 제시하고, 기본적으로 tidy
API에 필수적인 다음 원칙에 대한 준수를 당부하고 있다.
ggplot2
, dplyr
, tidyr
을 포함한 많은 R 팩키지는 관측점과 변수로 구성된 직사각형 데이터셋(rectangular dataset)을 기반으로 돌아간다. 그렇다면 데이터프레임 혹은 티블(tibble)에서도 문제가 없을 것이다.
직사각형 데이터셋 외에 문자열은 stringr
, 날짜/시간은 lubridate
, 요인(factor)은 forcats
를 주요한 기본 자료구조를 구성하게 된다.
No matter how complex and polished the individual operations are, it is often the quality of the glue that most directly determines the power of the system.
파이프 연산자로 간단한 함수를 조합하여 시스템 전체의 힘을 극대화한다. 복잡한 문제를 해결하는 강력한 전략은 단순한 많은 조각으로 나누고 이를 조합하는 것이다. 단, 각 조각은 격리되어 쉽게 파악되고, 다른 조각과 조합할 수 있는 표준이 성립되어야 된다. R에 파이프 연산자를 사용하여 본 전략이 구현되어 있다. %>%
연산자는 많은 팩키지에 두루 걸쳐 동작되는 일반적인 결합 방식으로 이를 위해 함수를 작성할 때 다음 원칙을 갖고 작성한다.
modify
, add
, compute
등을 들 수 있다. 이런 경우 반복되는 동사가 중복되지 않도록 명사에 집중한다. ggplot2가 좋은 예가 되는데 기존 플롯에 좌표, 점, 범례등을 거의 모든 함수가 추가하기 때문이다.R은 함수형 언어라 객체지향언어나 다른 언어 패러다임과 싸우려고 하지 말고 받아들여라. 이것이 의미하는 바는 다음과 같다.
Programs must be written for people to read, and only incidentally for machines to execute.
API를 작성할 때 사람이 사용하기 쉽게 설계한다. 데이터과학에서 병목점으로 문제가 발생되는 곳은 공통적으로 컴퓨터 실행시간(computing time)이 아니라 사람의 생각(thinking time)의 시간이다.
tidyverse
모형 - tidymodels
기존 10여년에 걸쳐 catet
팩키지가 담당했던 기능을 tidyverse
방식에 맞게 모형화도 깔끔(?)해지고 있다. 이를 위해서, 각각 기능별로 하나만 정말 잘 하는 팩키지들이 속속 출시되고 있다. 현재시점 기준 “2019-08-04” 몇몇 블로그를 통해서 개발되고 있는 최신 기능이 일부 소개되고 있다.2 3
기계학습을 통한 일관된 인터페이스에 대한 요구는 파이썬 scikit-learn
에 잘 나타나 있다. 어떻게 보면 R에서 파이썬 scikit-learn
을 보면서 이에 대한 영감을 받아 시작되었는지도 모르겠다.
tidymodels
은 통계검정과 모형 크게 두가지로 나눌 수 있는데 여기서는 우선 모형에 관련된 사항에 집중하기로 한다. 모형이 tidyverse
체계를 구성하는 핵심 사항임에도 불구하고 dplyr
, ggplot
과 비교하여 체계적으로 정리된 것이 없어 과거 caret
이 했던 기능을 tidymodels
를 통해 하나씩 채워나가고 있다. tidymodels
를 구성하는 핵심 팩키지는 rsample
, recipes
, parnip
, yardstick
을 들 수 있다.
tidymodels
recipe
(feature engineering): 모형 설계행렬 데이터를 생성하고 전처리하는 기능.
embed
: 범주형 예측변수를 숫자 칼럼 예측변수로 담아내는 기능.rsample
: 모형개발을 위한 표본추출 기능themis
: 불균형 데이터 처리 전문 팩키지spatialsample
: 공간 데이터 표본추출textrecipes
: 텍스트 전처리parsip
: 다양한 모형 적합yardstick
: 깔끔한 데이터(tidy data) 원칙에 따라 모형성능 추정.tidyposterior
: 사후(post hoc) 모형 분석tidymodels
템플릿 생성
workflowsets
corrr
infer
broom
butcher
baguette
applicable
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com