R vs Python 모델 속도 비교

2022. 1. 26. 23:18[개발] 지식/Python

R vs Python

Learing curve Popularity Packages Visualizations Performance
R O O
Python O O O

R은 데이터 처리 및 분석용이고, Python은 개발용 언어이다. → 애초에 목적이 다르다

속도 비교

머신러닝은 크게 데이터 처리 + 모델 학습 + 추론(Inference)의 단계를 거친다. 이에 대한 속도 차이를 분석한 자료를 조사해보았다.

데이터 처리

데이터 처리 및 분석 측면에서 R은 일반적으로 느린 것으로 간주된다. 물리적 메모리에 개체를 저장해야 하므로 빅 데이터를 활용할 때는 그다지 좋은 옵션이 아니다. 하지만 더 빠른 프로세서를 통해 이러한 한계를 줄이고 있고, 이를 해결하는 데 초점을 맞춘 다양한 패키지가 존재하고 만들어지고 있다. 그럼에도 불구하고 Python은 대용량 데이터셋과 대용량 파일을 더 빠르게 로드할 수 있는 기능에 더 적합하다.

R vs Python - Which is best? - Blogs - SuperDataScience | Machine Learning | AI | Data Science Career | Analytics | Success

R or Python

→ 빅데이터를 처리하거나 고용량 파일을 다루는데 Python이 속도면에서 더 유리하다(데이터가 클수록).

모델 학습

추론 과정이 포함되긴 하였으나 Logistic Regression, Linear Discriminant Analysis, K-Nearest Neighbors, and Support Vector Machine 모델 대상으로 동일조건 테스트 한 결과, 100회 반복 수행시 R 은 7분 12초, Python은 2분 2초로 약 5.8배 빠른 결과를 보였다. Random Forest 나 XGBoost 같은 경우 너무 많은 매개변수의 필요로 하고 모델 인터페이스가 상이하여 실험 대상에서 제외되었다.

R vs Python - Which is best? - Blogs - SuperDataScience | Machine Learning | AI | Data Science Career | Analytics | Success

→ 동일 하드웨어 동일 로직 기준, 100회 반복 수행시 학습+추론 과정에서 Python이 약 5.8배 빠른 결과를 보였다.

Data Science 101: Is Python better than R?

→ 모델 학습 과정만 테스트한 경우, Python이 약 2배 빠른 결과를 보였다.

추론(Inference)

데이터 처리/분석, 모델 학습 등에서는 Python이 속도면에서 더 유리하지만 추론 과정에서는 동일 알고리즘인 경우 큰 차이가 없다는 것이 중론이다.

→ 언어보다는 하드웨어나 사용된 알고리즘에 의해 좌우되는 것으로 보인다.

Why Do I Get Different Results Each Time in Machine Learning? - Machine Learning Mastery

rpy2

Python에서 R 환경을 에뮬레이팅하여 R 코드를 수행하거나 R 모델을 읽고 처리하는 인터페이스 모듈. R 모델을 Python 환경에서 처리하기 위한 거의 유일한 대안.

High-Level 레이어 rpy2.robject는 클래스 매핑과 인터페이스와 같은 많은 편의성을 제공하지만 성능 측면에서는 분명히 비용을 발생시키다. 이 비용은 일반적인 사용 사례(파이썬 대안이 없거나 비슷한 수준의 성숙도를 가진 라이브러리에서 복잡한 R 코드를 호출하는 것)에 대해서 부정적인 영향을 끼칠 것으로 예상된다.

Performances - rpy2 3.5.0dev documentation

→ Python에서 R 모델을 사용하는 것 자체가 성능이나 속도와 같은 추가 비용을 발생시킨다.

결론

  • 추론 속도 측면에서 R 모델과 Python 모델의 경우 언어에 의한 속도차이는 미미하다(알고리즘과 하드웨어의 차이가 더 중요). 반면 R 모델은 Python 기반 웹에서 에뮬레이팅 하는 과정을 한번 이상 거치기 때문에 추가 비용이 발생한다.
  • 데이터 처리, 모델 학습 속도는 규모가 커질 수록 Python 처리 속도가 더 우수하다.
  • 하지만 라이브러리의 다양성 측면에서 아직까진 R이 더 우세하다.
  • 그럼에도 불구하고 Python 진영에서 이를 빠르게 따라잡고 있다.
  • 그런데 라이브러리를 Python으로 재개발하는 것이 아닌, rpy2 처럼 에뮬레이팅 하는 방식으로 타협하고 있다는 점은 성능을 최대한 끌어올리지 못한다는 점에서 생각해볼만한 여지가 있다

Reference

R과 Python을 같이 써 보자 - RPy2(1) - 파비블로그

어떻게 R 속도를 높일 수 있을까

머신러닝에 파이썬을 즐겨쓰는 4가지 이유

Is Python faster than R?

R vs Python - Which is best? - Blogs - SuperDataScience | Machine Learning | AI | Data Science Career | Analytics | Success

R vs. Python: What's the Real Difference Between R and Python?

R or Python

R Vs Python: What's the Difference?

<