티스토리 뷰

R

R 프로그래밍 언어란?

Jaime.Lee 2020. 10. 15. 15:37

R이란?

R은 1993 년 Ross Ihaka와 Robert Gentleman이 개발 한 프로그래밍 언어로 광범위한 통계 및 그래픽 라이브러리를 보유하고 있습니다.

머신 러닝 알고리즘, 선형 회귀, 시계열, 통계적 추론이 여기에 해당합니다. 대부분의 라이브러리는 R로 작성되지만 많은 계산을 필요로 하는 경우 C, C++, 포트란을 이용해 작성하기도 합니다.

 

R은 교육용이나 학계에서만 사용될 뿐 아니라 많은 대기업들도 사용하고 있습니다. 대표적으로 구글, 우버, 에어비엔비, 페이스북 등이 있죠.

 

R을 사용한 데이터 분석은 각 단계별로 사용할 수 있고 그 용도는 아래와 같습니다.

 

  • 프로그램: R은 명확하고 접근하기 쉬운 프로그래밍 도구임
  • 변환: R은 데이터 과학을 위해 특별히 설계된 라이브러리 모음으로 구성됨
  • 검색: 데이터를 조사하고, 가설을 다듬음
  • 모델: R은 데이터에 적합한 모델을 캡처할 수 있는 다양한 도구 제공
  • 통신: 코드, 그래프 및 출력을 R Markdown으로 보고서에 통합하거나 Shiny 앱을 구축하여 공유

R은 어디에 쓰이는가?

  • 통계적 추론
  • 데이터 분석
  • 머신러닝 알고리즘

산업별 R

산업별로 R의 활용을 세분화하면 학문 분야에 가장 많이 사용되는 것을 알 수 있습니다. R은 통계학을 하기 위한 언어입니다. 헬스케어 산업, 정부·컨설팅 등이 그 뒤를 잇고 있습니다.

R 패키지

R의 주요 용도는 통계학, 시각화 및 머신 러닝입니다. 아래 그림은 StackOverflow에서 어떤 R 패키지가 가장 많은 질문을 받았는지를 보여줍니다. 상위 10위권에 데이터 사이언스의 워크플로우, 즉 데이터 준비 및 결과 전달과 관련된 내용이 대부분 포진해있습니다.

R은 약 12,000개의 라이브러리를 제공하고 이는 CRAN에 저장되어 있습니다. CRAN은 무료 오픈 소스 입니다. 이렇게 많은 라이브러리를 다운로드하여 다양한 데이터 분석을 수행할 수 있습니다.

 

R을 이용한 커뮤니케이션

R은 마크다운 문서나 shiny 앱 등을 통해 작업을 제시하고 결과를 공유할 수 있습니다. 이 모든 결과물들은 Rpub, GitHub 또는 비즈니스 웹사이트에서 호스팅할 수 있습니다.

 

R 개발툴인 Rstudio는 마크다운 형식으로 문서를 작성할 수 있게 해주고 다양한 포맷으로 문서를 추출할 수 있습니다.

 

  • 문서 포맷
    • HTML
    • PDF/Latex
    • Word
  • 프레젠테이션 포맷
    • HTML
    • PDF beamer

왜 R을 사용하는가?

데이터 사이언스는 기업의 경영 방식을 형상화하는 방법입니다. 이를 형상화 할 때 가장 큰 문제는 어떤 도구와 언어를 사용해야 하는가입니다. 해당 분야에서 데이터 분석을 수행하기 위한 도구들이 매우 많이 존재합니다. 새로운 언어를 배우는데는 약간의 시간 투자가 필요합니다. 아래 그림은 언어가 제공하는 비즈니스 역량과 비교한 학습 곡선을 그리고 있습니다. 데이터를 통해 최고의 통찰력을 제공하려면 적절한 툴인 R을 학습하는 데 시간을 할애해야 합니다.

 

그래프의 왼쪽 상단에서 Excel 및 PowerBI를 볼 수 있습니다. 이 두 도구는 배우기 쉽지만 특히 모델링 측면에서 뛰어난 비즈니스 기능을 제공하지 않습니다. 가운데에는 Python과 SAS가 있습니다. SAS는 비즈니스 통계 분석을 실행하기위한 전용 도구이지만 무료가 아니고 클릭을 통해 실행시키는 소프트웨어 입니다. 그러나 Python은 단조로운 학습 곡선을 가진 언어입니다. Python은 머신 러닝과 AI를 배포하는 환상적인 도구이지만 커뮤니케이션 기능이 부족합니다. 동일한 학습 곡선을 가진 R은 구현과 데이터 분석 사이의 좋은 절충안입니다.

데이터 시각화 (DataViz)와 관련하여 Tableau에 대해 들어 보셨을 것입니다. Tableau는 의심 할 여지없이 그래프와 차트를 통해 패턴을 발견 할 수있는 훌륭한 도구입니다. 게다가 Tableau를 배우는 데 시간이 많이 걸리지 않습니다. 데이터 시각화의 한 가지 큰 문제는 패턴을 찾지 못하거나 쓸모없는 차트를 많이 만들 수 있다는 것입니다. Tableau는 데이터 또는 비즈니스 인텔리전스를 빠르게 시각화 할 수있는 좋은 도구입니다. 통계 및 의사 결정 도구에 관해서는 R이 더 적합합니다.

Stack Overflow는 프로그래밍 언어를위한 대규모 커뮤니티입니다. 코딩 문제가 있거나 모델을 이해해야하는 경우 Stack Overflow에서 많은 도움을 받을 수 있습니다. 한 해 동안 R의 질문보기 비율은 다른 언어에 비해 급격히 증가했습니다. 물론 이러한 추세는 데이터 과학의 급성장 시대와 밀접한 관련이 있기도 하지만 데이터 과학에 대한 R 언어의 수요를 반영합니다.

 

R을 선택해야하는가?

데이터 과학자는 R과 Python이라는 두 가지 훌륭한 도구를 사용할 수 있습니다. 특히 데이터 과학을 배우기 시작하는 경우 둘 다 배울 시간이 없을 수 있습니다. 프로그래밍 언어를 배우는 것보다 통계 모델링과 알고리즘을 배우는 것이 훨씬 더 중요합니다. 프로그래밍 언어는 발견을 계산하고 전달하는 도구입니다. 데이터 과학에서 가장 중요한 작업은 가져 오기, 정리, 준비, 기능 엔지니어링, 기능 선택 등 데이터를 처리하는 방식입니다. 이것들에 대해 초점이 맞춰져야 하지 프로그래밍 언어를 배우는 것에 초점이 맞춰져서는 안 됩니다. 통계에 대한 확실한 배경없이 R과 Python을 동시에 배우려고한다면 그것은 어리석은 일입니다. 데이터 과학자는 프로그래머가 아닙니다. 그들의 임무는 데이터를 이해하고 조작하며 최상의 접근 방식을 제공하는 것입니다. 어떤 언어를 배워야할지 생각하고 있다면 어떤 언어가 가장 적합한 지 봅시다.

데이터 과학의 주요 대상은 비즈니스 전문가입니다. 비즈니스에서 큰 의미 중 하나는 커뮤니케이션입니다. 커뮤니케이션하는 방법에는 보고서, 웹 앱, 대시 보드 등 여러 가지가 있습니다. 이 모든 것을 함께 수행하는 도구가 필요합니다.

 

R은 어려운가요?

몇 년 전, R은 마스터하기 어려운 언어였습니다. 언어는 혼란스럽고 다른 프로그래밍 도구처럼 구조화되지 않았습니다. 이 주요 문제를 극복하기 위해 Hadley Wickham은 tidyverse라는 패키지 모음을 개발했습니다. 룰들이 최선으로 바뀌었고 데이터 조작은 사소하고 직관적으로 바뀌었습니다. 그래프를 만드는 것은 더 이상 어렵지 않았습니다.

기계 학습을위한 최고의 알고리즘은 R로 구현할 수 있습니다. Keras 및 TensorFlow와 같은 패키지를 사용하면 고급 기계 학습 기술을 만들 수 있습니다. R은 또한 Kaggle 경쟁을위한 최고의 알고리즘 중 하나 인 Xgboost를 수행하는 패키지를 가지고 있습니다.

R은 다른 언어와 통신 할 수 있습니다. R에서 Python, Java, C ++를 호출 할 수 있습니다. 빅 데이터의 세계는 R에서도 액세스 할 수 있습니다. R을 Spark 또는 Hadoop과 같은 다른 데이터베이스와 연결할 수 있습니다.

마지막으로 R은 발전하여 계산 속도를 높이기 위해 병렬화 작업을 허용했습니다. 실제로 R은 한 번에 하나의 CPU 만 사용한다는 비판을 받았습니다. 병렬 패키지를 사용하면 컴퓨터의 여러 코어에서 작업을 수행 할 수 있습니다.

 

요약

간단히 말해서 R은 데이터를 탐색하고 조사 할 수있는 훌륭한 도구입니다. 클러스터링, 상관 관계 및 데이터 감소와 같은 정교한 분석은 R을 사용하여 수행됩니다. 이것은 가장 중요한 부분입니다. 좋은 기능 엔지니어링 및 모델이 없으면 머신 러닝 배포가 의미있는 결과를 제공하지 않습니다.

 

이 포스팅은 이곳을 번역한 내용을 담고있습니다.

'R' 카테고리의 다른 글

R Factor  (0) 2020.10.21
R 행렬(matrix): 생성, 출력, 추가, 분할  (0) 2020.10.21
R 데이터 타입, 수학 & 논리 연산자  (0) 2020.10.20
R 다운로드 & 설치(RStudio, Mac)  (0) 2020.10.19
댓글