데이터 과학을 위한 파이썬과 R - 오픈소스를 활용한 데이터 분석, 시각화, 머신러닝
한빛미디어 “나는 리뷰어다” 활동을 위해서 책을 제공받아 작성된 서평입니다.
TL;DR
R
과Python
을 동시에 활용하여, 두 언어가 가진 특징을 결합해서 활용하는 방법을 제시R
과Python
의 강점을 적극적으로 활용하는 방식을 제시(6장)- 두 언어를 활용하는 방법을 간단한 예제를 통해서 실습해 볼 수 있음(7장)
R
과Python
중 하나를 알고 있다면, 이 책을 통해서 다른 언어를 접해볼 수 있는 기회를 제공R
이나Python
을 비교해서 학습하게 되면, 개별 언어의 특징을 잘 이해할 수 있음- 각 언어의 핵심적인 패키지의 장단점을 체험할 수 있는 기회
- 두 언어를 모두 모른다면, 난이도가 상당할 수 있으니 주의가 필요(각 언어별 추천 서적은 아래 링크를 참고)
R과 Python을 다시 되돌아보는 기회
이 책을 통해서 R과 Python의 활용에 대해서 다시금 되돌아보는 기회를 가질 수 있었다. 내가 즐겨사용하는 언어인 Python으로 모든 것을 해야한다는 단순하지만, 강력한 편견을 이 책을 통해서 깰 수 있었다. 파이썬과 R 중 하나의 언어를 알고 있다면 이 책을 꼭 읽어보길 권한다. 서점이나 도서관에 들러서 1장은 꼭 읽어보길 권한다.
이제 두 언어를 모두 사용하는 데이터 과학자로 구성된 새로운 커뮤니티를 맞이할 준비가 되었 습니다. 하나의 언어만 사용하는 사람의 대부분이 두 언어가 얼마나 상호 보완적인지와 언제 어 떤 언어를 사용해야 하는지 모른다는 점은 여전히 풀기 힘든 문제입니다. 수년에 걸쳐 몇 가지 해결책이 나왔는데, 이에 대해서는 4장에서 설명하겠습니다.
이 책을 읽고나서 R
을 언제 배웠던가 생각해보았다. 어렴풋하게 통계학 응용 시간에 배웠던 것 같다. 그때는 나에게 선택지가 두 개 있었는데, MATLAB
을 하던가, R을 했어야 했다. 대부분의 공대생이라면 MATLAB은 간단하게 다룰 수 있었기 때문에, 난 당연히 R을 선택했다. 나에게 있어서 모르는 언어를 배운다는 것은 항상 즐거운 일이기 떄문이다.
이후에 회사를 다니면서 문자열 처리를 못해서(정규식은 여전히 어렵다…) 영혼을 모아서 사용했던 Python이 갑자기 부상하면서 데이터 랭글링
(Data Wrangling) 혹은 데이터 먼징
(Data Munging)을 활용하는데 Python을 적극적으로 활용했다. 내가 사용했던 OS
에서 별다른 설정없이 곧바로 사용할 수 있다는 장점도 크게 한 몫했다.
R과 Matlab은 석사논문과 함께 잊혀져갔다가 요즘에 수리통계학
을 공부하면서 다시금 R을 배우면서 고민도 많아졌다. 뭐랄까… Python에서 다 되는 것 같은데, 통계학 관련 서적은 대부분 R이나 엑셀을 고집하는 이유에 대해서 적당한 불만이 있었다.
이 불만의 원천은 “왜 내가 자주 사용하는 언어를 통계 연구자는 사용하지 않는가?”였다. 질문이 잘못 되었으니 답변이 올바르게 나올리 없었다. R과 Python은 각자의 이유가 있었다. 단지 내가 그 간단한 이유를 올바르게 이해하지 못했던 것이다.
오늘날 파이썬과 R 커뮤니티에 속한 대부분의 데이터 과학자는 두 언어가 모두 탁월하고 유용 하며 상호 보완적이라는 점을 인정합니다. 요점으로 돌아가서, 데이터 과학 커뮤니티는 연관된 사람 모두가 이익을 얻을 수 있도록 ‘협력과 커뮤니티 구축’이라는 지점으로 수렴했습니다.
생각만 했지만, 정말로 가능한지 몰랐던 것들
개발 환경이 Python에 맞춰져 있었다. 거의 대부분의 절차가 Python을 활용하고 있었기 때문에, R을 함께 활용하는 방법에 대한 명확한 기준이 없었다. 그렇다고 두 언어를 교차해서 사용하는 것은 아무리 생각해도 어색한 방법이다.
하지만 이 책의 4장 이후 부분을 참고하면서 Python과 R을 함께 활용하는 방법에 대한 힌트를 얻을 수 있었다. 이 책에서 소개하는 방법을 활용하는 것도 좋은 방법이지만, 개인적인 선호를 위해서 몇가지 것을 수정해서 적용해보았고 나름의 성과를 얻었다. Rmd
환경과 r-shiny
에 대한 접근은 신선하고 새로웠다. Mercury 등과 같은 것도 공부하면서 알게 되었다.
어색하다는 감정을 내려놓는다면, R과 Python을 활용해서 더 수준높은 생산성을 추구할 수 있을 것이다. 더 나아가서 언어가 가진 특징을 잘 활용한다면 내가 만들어낸 결과를 깔끔하고 아름답게 배포할 수 있다. 두 언어를 함꼐 사용한다는 것이 쉽지 않은 결정이지만, 한번쯤 도전해보는 것도 좋은 선택이라 할 수 있다.
이 책은 최소한 두 언어를 활용하는 방법을 이론적인 부분에서 실습적인 것까지 모두 고려하고 있기 때문에 시간을 들여서 학습하는 것이 유익하고 즐거운 시간이 될 것이다.
부록. 전자책 예찬
이번엔 책을 구글 도서로 받았다. 덕분에 아이패드와 컴퓨터에서 실시간으로 동기화를 하면서 읽을 수 있었다. 특히나 이론적인 부분은 출퇴근 시간을 활용해서 읽을 수 있었고, 실습은 듀얼 모니터를 활용해서 손쉽게 진행할 수 있었다.
만약, 태블릿과 듀얼모니터를 사용할 수 있는 환경이라면 전자책을 권한다. 학습 효율이 급상승 할 것이다. 그리고 IT 서적은 리디북스 보다는 구글에서 제공하는 Play book이 좋았다. 브라우저에서 손쉽게 책을 볼 수 있다는 것이 실습에 엄청난 도움이 된다고 생각한다.
덕분에 책을… 많이 사게 되었다.