본문 바로가기
Data Science

R을 사용하던 데이터 분석가는 왜 파이썬 머신러닝 공부를 시작했을까

by Lora Baek 2022. 8. 1.
300x250

우선 나는 R을 이용한 수업 및 프로젝트가 주였던 통계학과의 졸업생이다.

현재 나는 데이터 분석가+프로젝트 매니저가 혼합된 형태의 일을 하고 있는데, 이제부터 파이썬 머신러닝 공부를 시작하기로 결심하고 이를 실천에 옮기고 있다. 제목과 같이, R을 사용하던 나는 왜 Python으로, 그것도 파이썬 머신러닝 공부를 시작하게 되었을까? 그 이유를 말하기 전에 먼저 머신러닝의 개념을 설명하고자 한다.

 

머신러닝이란

머신러닝(Machine Learning)은 단연 이 4차 산업혁명 시대에 화두가 되는 몇몇 키워드 중 하나이다. 알파고를 계기로 한국에는 인공지능(Artificial Intelligence)이라는 개념이 널리 알려지게 되었으며, 자연스럽게 AI/ML 혹은 ML/AI처럼 두 단어를 묶어 이야기하는 경우도 종종 있다.

 

이러한 머신러닝 개념은 다양한 방법으로 이야기할 수 있겠지만, 사람이 직접 컴퓨터에게 특정 명령을 내리지 않더라도 컴퓨터가 스스로 데이터에 기반하여 패턴을 학습하고 결과를 예측하는 것이라고 부를 수 있을 것이다.

기존의 코드만으로 해결이 어려웠던 문제들을 최근 머신러닝을 이용해 해결한 사례들 또한 많이 알려지고 있다.

 

머신러닝은 오래 전부터 존재하던 개념이었으나, 기술을 발전으로 인한 데이터 처리 속도 및 저장공간의 발전으로 빅데이터(Big data)의 활용이 가능해지면서 그 진가를 발휘하게 되었다.

 

또한 인터넷이 발전하고, 인간의 업무가 보다 복잡해지면서 여러 가지 조건과 규칙들이 생겨나고 변화하는 속도 또한 엄청나게 빨라졌다. 이러한 상황에서 데이터를 활용하고 다양한 수학적 기법을 적용한 머신러닝 알고리즘은 이에 대응하기 위한 최적의 방법이라는 데에는 논란의 여지가 없을 것이다.

 

데이터의 패턴을 학습하고, 예측을 수행하는 머신러닝은 따라서 데이터 분석가에게도 필수가 되었다.

데이터 분석가와 데이터 사이언티스트들이 수행하는 업무는 이제 '머신러닝 기반의 예측 분석'이라고 해도 과언이 아닐 것이다. 새로운 예측 모델을 만들어 정확도를 높이고, 보다 나은 의사결정을 도출해낼 수 있어야만 한다.

 

하지만 Garbage In, Garbage Out이라는 유명한 격언은 여전히 유효하다. 좋은 품질의 데이터를 갖추어야만 좋은 결과를 얻을 수 있는 것이지, 머신러닝이 마법처럼 멋진 결과를 도출해내지는 못한다는 점을 꼭 기억해야만 한다. 최근 국가 주도로 데이터 센터를 통합하고자 하는 움직임이 계속해서 유지되고 있으나, 이러한 데이터 품질의 향상을 위해서도 많은 노력과 고민이 필요한 시점이 아닌가 싶다.

 

데이터 분석 R 파이썬 뭐가 좋을까

Python과 R은 데이터 분석에서의 대표적인 오픈소스 프로그램 언어이다.

먼저 R은 통계 전용 프로그램 언어다. 통계학과에서 R을 공부하고 그 사용법을 익히는 것은 당연한 일이라고 할 수 있다.

R 뿐만 아니라 SAS, SPSS 등의 전통적인 툴들을 함께 배우기도 했지만, 비용적인 문제로 실제로 이러한 역량을 요구하는 기업은 쉽게 찾아볼 수는 없었다. 개발 언어에는 익숙하지 않았지만 통계 이론들을 배우고 그 분석을 활용하는 데에는 R이 배우기에 훨씬 좋았다. 통계 패키지도 다양하게 존재하고, 예쁘게 시각화를 할 수 있다는 것도 큰 장점이었다.

 

하지만 파이썬은 전 세계 개발자들이 선호하는 높은 생산성의 언어이다. 

오픈소스이므로 라이브러리가 엄청나게 많고, 인터프리터 언어라서 문법이 직관적이라 배우기도 쉽다.

또한 머신러닝과 결합한 다양한 앱 개발이 가능하다는 확장성이라는 장점도 가지고 있다.

무엇보다 딥러닝 프레임워크인 Tensorflow, Keras, Pytorch에서 파이썬을 우선적으로 지원한다. 물론 R에도 지원을 하지만 그 우선순위는 파이썬보다 뒤에 있을 것이고, 앞으로도 Python 중심으로 딥러닝 프레임워크가 발전할 것이다.

 

그래서 나 또한 R에서 파이썬으로 주 사용 언어를 바꾸게 되었다. 실무에서는 R과 파이썬 둘 다 사용을 하기도 하지만,

R을 통해 하고자 하는 업무를 파이썬으로도 할 수 있기에 Python만 사용할 수 있어도 큰 무리가 없다고 생각한다.(내 능숙도 문제일 수도 있지만, 오히려 더 빠르게 처리할 수 있는 경우도 있다.)

 

필수 파이썬 패키지

- 사이킷런(Scikit-Learn) : 파이썬 패키지는 여러 가지가 있겠지만, 머신러닝 패키지에서는 사이킷런(Scikit-Learn)이 단연 많이 사용된다. 텐서 플로우, 케라스도 많이 이용한다.

- 넘파이(Numpy) : 행렬과 선형대수를 다룰 수 있다. 사이킷런이 넘파이 기반으로 작성됐기 때문에 기본 프레임 워크를 잘 이해해야 한다. 사이파이(SciPy) 또한 유용한 자연과학, 통계 패키지.

- 판다스(Pandas) : 데이터 프레임 기반으로 쉬운 데이터 핸들링 가능. 실제로 가장 많이 사용한 패키지이고, Matplotlib으로 시각화하기 좋다.

-시본(Seaborn) : 대표적인 시각화 패키지였던 맷플롯립(Matplotlib)의 단점을 보완하여 좀 더 효율적이고 예쁜 시각화가 가능하다.

댓글