더북(TheBook)

01 | 왜 R인가

R[1]은 데이터 분석을 위한 통계 및 그래픽스를 지원하는 자유 소프트웨어 환경이다. 그 뿌리는 벨 연구소에서 만들어진 통계 분석 언어인 S에 두고 있는데, R은 S 언어를 근간으로 뉴질랜드 오클랜드 대학교의 로스 이하카Ross Ihaka와 로버트 젠틀맨Robert Gentleman이 만든 것이 그 시작이다.

R은 현재 데이터 분석을 위한 도구로 많은 인기를 누리고 있다. 한 가지 사례로 데이터 마이닝data mining이나 기계 학습machine learning에 대한 소식을 공유하는 사이트인 kdnugget에서 실시한 ‘지난 12개월간 실제로 사용한 분석, 데이터 마이닝, 빅데이터 소프트웨어’에 대한 설문 조사를 볼 수 있다. 그 내용에 따르면 래피드 마이너Rapid Miner, 웨카Weka, SAS, 매트랩MATLAB 등의 쟁쟁한 경쟁자와 비교했을 때 R은 2012년에 1위, 2013년에 2위를 차지해 그 인기가 높음을 알 수 있다.

R은 컴퓨터 언어이자 다양한 패키지의 집합이다. 따라서 R 안에서 대부분의 데이터 분석을 해낼 수 있다는 장점이 있다. R은 통계, 기계 학습, 금융, 생물정보학, 그래픽스에 이르는 다양한 통계 패키지를 갖추고 있으며 이 모든 것이 무료로 제공된다. 이러한 다양한 패키지는 CRAN(http://cran.r-project.org/web/views/)을 통해 한곳에서 살펴볼 수 있다. 여기에 더해 최근 시류에 발맞춰 R은 멀티프로세서에서 손쉽게 병렬화하여 실행할 수 있고, RHive를 사용하면 최근 인기를 끌고 있는 Hive 환경에서 R을 사용할 수 있다.

인기가 좋다는 것은 알겠는데, 그렇다고 꼭 R을 배워야 할까? 다른 언어 또는 환경은 없을까? 물론 다른 언어나 환경도 있다. WEKA는 자바로 작성한 데이터 마이닝 소프트웨어로, 자바 언어에서 연결해 사용하기에 편리하다. 또한, 매우 훌륭한 책[2]이 나와 있어 쉽게 시작할 수 있는 환경이다. 그러나 WEKA는 기본적으로 GUI를 사용한 도구지 하나의 언어 체계는 아니다. 따라서 R의 CRAN처럼 여러 개발자가 기여하는 다양한 패키지는 없다.

파이썬Python에는 데이터 분석을 위한 라이브러리들의 모음인 pydata(http://pydata.org/)가 있다. pydata에는 numpy(고속 연산), scipy(과학 분석 알고리즘), pandas(데이터의 표현 및 처리), matplotlib(시각화 도구), scikit-learn(기계 학습) 등의 다양한 라이브러리가 있다. <Python for Data Analysis>[3]처럼 numpy, pandas 등을 잘 설명한 책도 있다. 그러나 pydata에는 R의 다양한 통계 기능에 대응하는 기능이 종종 빠져 있다. 이를 해결하기 위한 statsmodel 등의 라이브러리가 있지만 문서화 수준이 아주 빈약한 상태다.

R이 좋은 이유에 대한 질문에 딱 하나만 답해야 한다면, 필자는 셀 수 없이 많은 R을 사용한 통계 분석 서적, 기계 학습 관련 서적을 들고 싶다. 기초부터 발전된 주제까지 포괄한 서적과 문서화 덕분에 이론과 실제를 동시에 배울 수 있는 환경이 가장 잘 갖춰져 있는 것이 R이다. 이론을 한껏 공부한 뒤에 구현은 따로 해야 한다거나, 구현은 있는데 이것이 어떻게 이론적으로 연결되는지를 별도로 공부해야 하는 상황에 처할 일이 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.