Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

To be a Data Scientist

THIS IS WAR : Python vs R 본문

Data Science

THIS IS WAR : Python vs R

Daby 2016. 9. 24. 15:47

데이터 쪽을 공부하리라 마음먹었다면, 가장 먼저 내딛어야 할 첫 발은 어떤 프로그래밍 언어를 공부할지 정하는 것이다. 많은 프로그램이 존재하고 각각의 장단점이 있겠지만, 요즈음 데이터 사이언티스트들은 주로 R이나 Python(파이썬)이 사용하고 있다. 


이번 포스팅에서는 R과 파이썬 중 무엇을 배울 지 고민하는 당신을 위해, R과 파이썬, 각각의 장단점을 비교하는 시간을 가져보도록 하겠다.


THE WAR BEGINS NOW!!




R 소개


1995년에 Ross Ihaka와 Robert Gentleman이 만든 오픈소스 랭귀지로, S 프로그래밍 언어를 기반하고 있다. 애초에 R은 데이터 분석나 통계, 그래프 모델링을 할 때, 사용자가 이용하기 편리하게(user-friendly) 만들어진 언어이다. 처음에는 주로 학문적인 용도로 많이 사용되었으나 최근에는 기업에서도 R을 많이 사용하고 있는 추세이다. 비즈니스 세계에서도 R은 가장 빠르게 성장하고 있는 언어 중 하나이다. R의 최고 강점 중 하나는 사용자가 많다는 점이다. 즉, 어떤 문제에 직면했을때 쉽게 도움을 받을 수 있다. 활발한 커뮤니티가 바탕으로 메일이나 Stack Overflow에서 도움을 받거나, 사용자들이 작성해놓은 자료들을 참고할 수도 있다. CRAN을 통해서 R 패키지를 다운받을 수도 있다. 패키지는 최신 기술과 기능을 다 공부하지 않더라도 쉽게 접근할 수 있게 도와주는 R의 기능과 데이터의 집합이다. 마지막으로 특히 이전에 프로그래밍을 공부한 적이 있다면, R은 더 쉽게 배울 수 있다. 초심자의 경우 R을 배우는 것이 쉽지는 않지만, 최근에는 R을 배울 수 있는 자료들이 방대하고 비교적 쉽게 구할 수 있다. 이러한 이점을 이용한다면 R을 배우는 것이 생각만큼 어렵지는 않을 것이다.


Python(파이썬) 소개


파이썬은 1991년에 Guido Van Rossem이 생산성과 코드의 가독성에 초점을 맞추어 개발하였다. 통계학적 목적으로 데이터 분석이나 통계학적 테크닉을 적용해보고 싶어하는 프로그래머들이 파이썬의 주 사용자들이다. 특히, 엔지니어 관련 일을 하게 될 수록 사람들은 파이썬을 선호한다. 파이썬은 유연하여 신박한 일을 하기에 적합하며, 파이썬의 특성상 다른 프로그래밍 언어들에 비해 접근하기 쉬운 편이다. R과 마찬가지로 파이썬 역시 패키지가 있다. Pypi는 파이썬 패키지 인덱스로 R처럼 사용자들이 일궈놓은 라이브러리들로 구성되어 있다. 파이썬 역시 커뮤니티가 활발하지만, 다소 분산되어 있는 편이다. 그럼에도 데이터 사이언스 세계에서 파이썬은 점점 더 많이 사용하고 있다.


R 과 Python: 일반적인 통계치


인터넷에서 R과 파이썬의 인기를 비교하는 많은 통계자료들을 찾을 수 있다. 그런 통계치들을 통해 전반적인 컴퓨터 공학세계에서 두 언어가 어떻게 발전해왔는지를 알 수 있지만, 그들을 하나하나 비교하는 것은 힘들다. 더더욱 R은 데이터 사이언스에서 주로 사용되는 반면, 파이썬은 웹 개발과 같은 다양한 분야에서 두루두루 사용되고 있다. 이런 점은 파이썬의 순위는 높여주지만, 연봉에 있어서는 다소 부정적으로 작용한다. 


R Vs Python Numbers


언제 어떻게 R을 사용하는가?


R은 주로 개인 서버에서 데이터 분석작업이 필요하때 사용된다. 특히 탐색 작업을 할 때 빛을 발한다. 언제든지 사용할 수 있는 엄청난 양의 패키지를 이용해, 어떤 타입의 데이터도 분석할 수 있다. 빅데이터 분석도 가능하다. 처음 R을 시작한다면, Rstudio IDE를 설치할 것을 추천한다. 다음은 인기있는 패키지에 대한 간략한 설명이다. 


      • dplyr,plyr, data.table : 패키지를 다루기 쉽게 도와준다  

      • stringr : string을 다룰때 

      • zoo : 규칙/비규칙 시계열 데이터 작업할 때 

      • ggvis,lattie, gglpot2 : 데이터를 시각화할 때

      • caret : 머신러닝할 때


언제 어떻게 파이썬을 사용할까?


데이터 분석 작업이 웹앱과 합쳐져야 하는 경우나 통계 코딩이 생산 데이터 베이스을 포함하여야 하는 경우 파이썬을 사용할수 있다. 이 언어가 완전히 익숙해진다면, 실제 운영을 위한 알고리즘을 시행하는데 있어서 굉장히 도움이 될 것이다.


과거엔 데이터 분석에 관련한 파이썬 패키지의 성능이 떨어졌지만, 최근 몇년 사이에 이 부분은 상당히 많이 개선되었다. 데이터 분석을 위해선 Numpy/SciPy와 pandas라는 패키지가 있는데, 이는 반드시 설치하는 편이 좋다. 머신 러닝을 할 때에는 scikit-learn를 그래프를 만들 때에는 matplotlib을 참고한다. 


R과 달리 파이썬은 특출난 IDE가 없다. 대신 Spyder, IPython Notebook, Rodeo를 살펴보고 필요에 맞는 프로그램을 이용하면 된다. 



R과 파이썬 : 데이터 사이언스


데이터 분석에 사용하는 프로그래밍 언어의 관점에서 본다면 R이 파이썬에 비해 우세한다. 파이썬과 R의 데이터 분석 커뮤니티에만 초점을 맞췄을 때도, 비슷한 패턴을 관찰할 수 있다.   


R vs Python Activity


하지만 위의 그래프의 결과에도 불구하고, R에서 파이썬으로 방향전환을 하는 사람들이 많아지고 있다. 게다가 두 언어를 혼합해서 사용하는 사람들도 늘고 있는 추세이다. 데이터 사이언스 관련한 커리어를 희망한다면, 두 언어에 능통한 것이 유리하다. 회사에서도 두 스킬을 동시에 보유하고 있는 있는 사람에 대한 수요가 느는 추세이며, 연봉 역시 평균을 웃돈다.

  

R : 장점과 단점

        

- 하나의 그림이 몇천자의 글자보다 더 많을 것을 함축한다.


시각화된 데이터는 일반적인 데이터보다 더 효과적이고 효율적으로 이해하기 쉽다. R과 시각화는 완벽한 커플이다. 시각화 패키지는 gglot2, ggvis, googleVis, rCharts가 있다. 


- R 생태계


R은 엄청난 양의 패키지와 커뮤니티가 활발히 운영되고 있다. 패키지는 CRAN, BioConductor, Github에서 다운받을 수 있다. Rdocumentation에서 모든 R패키지를 검색할 수 있다. 


-R은 데이터 사이언스의 공통어다. 


R은 통계학자들이 통계학자들을 이해 만든 언어이다. R코드와 패키지를 통해서 아이디어와 컨셉을 공유할 수 있어서 반드시 컴퓨터를 전공하지 않았더라도 배울 수 있다.


- R은 느리다.


R은 기본적으로 컴퓨터가 아니라 통계학자들을 위해 만들어 진 언어이다. 비록 R이 형편없이 쓰여진 코드때문에 느릴 순 있지만, pqR, renjin and FastR, Riposte 등의 패키지로 R의 실행 속도를 향상시킬 수 있다. 


- R은 처음 배우기 어렵다.


특히 GUI를 사용했던 사람이라면 더더욱 R을 처음 접근하기가 힘들다.R에 익숙하지 않다면, 패키지를 찾는 것 또한 시간이 많이 소요된다.  



파이썬 : 장점과 단점


- IPython Notebook 


IPython Notebook은 파이썬과 데이터를 더 쉽게 다룰 수 있게 해준다. Notebook을 추가 설치 프로그램 없이 동료들과 공유할 수 있다. 노트 파일, 아웃풋과 코드를작성하는 데 걸리는 시간을 줄일 수 있다.


- 일반용 언어


파이썬은 일반용 언어로 쉽고 직관적이다. 상대적으로 접근하기 쉬우며, 프로그램을 작성할 때 속도가 빠르다. 즉, 코딩을 하는 시간은 줄고 데이터를 직접 다룰 수 있는 시간이 많아 진다. 게다가 파이썬 테스팅 프레임워크(Python testing framework)는 이미 설치되어 있고, 접근하기 쉬운 테스팅 프레임 워크로 좋은 검사 방법을 권장해준다. 또한 코드가 재 사용가능하고 믿을만 한지를 검증해준다.  


- 다용도 언어


파이썬은 다양한 백그라운드를 가진 사람들을 모아주는 역할을 한다. 통계학자들도 쉽게 배울 수 있고, 프로그래머들도 이미 알고 있는 일반적이고 이해하기 쉬운 언어로, 작업흐름의 부분 부분을 통합할 수 있는 툴을 만들 수 있다. 


- 시각화


데이터 분석 소프트웨어를 선정할 때 시각화는 중요한 기준이다. 파이썬에도 Seaborn, Bokeh, Pygal과 같이 몇몇의 좋은 시각화 라이브러리가 존재하지만, R에 비해선 선택의 폭이 좁다. 게다가 시각화하는 법도 보통 난해하며, 결과도 기대 이하인 경우가 많다. 


- 파이썬은 도전자이다


파이썬은 R에 도전하고 있다. 몇백개나 되는 필수적인 R패키지에 대한 대응책을 충분히 제공하고 있지 않다. R을 따라잡는 중이지만, 과연 궁극적으로 사람들이 R을 포기하고 파이썬을 선택할 지는 미지수이다. 



결론


이 싸움의 승자는 .... 


철저히 당신의 선택이다. 데이터 사이언티스트로서 필요에 알맞는 언어를 스스로 골라야 한다. 아래의 질문들을 답하면서 해답을 얻을 수 있을 것이다. 


1. 당신이 해결하고 싶은 문제가 무엇인가?


2. 언어를 배우는데 있어서 순비용은 얼마나 드는가?


3. 당신의 필드에서 일반적으로 사용되는 툴이 무엇인가?


4. 다른 툴은 어떤 것이 존재하고, 일반적으로 사용되는 툴과는 어떻게 관련되는가?



출처; http://www.kdnuggets.com/2015/05/r-vs-python-data-science.html

'Data Science' 카테고리의 다른 글

Data scientist = UNICORN?!  (0) 2016.09.20
Data Scientist가 되기 위해서  (0) 2016.09.04
Comments