[데이터 사이언티스트] 갖춰야 할 5가지 스킬셋 Part.1

in #kr-steemit6 years ago

본 글은 Pabii 이경환 대표님의 블로그 글이 너무나도 유익해 공유한 내용입니다.


데이터 사이언스, 데이터 과학, 데이터 과학자, 머신러닝, 딥러닝, R

주변에서 데이터 사이언티스트가 될려면 어떤 공부를 해야되는지 묻는 경우가 참 많다. 전에 다녔던 크리테오라는 프랑스 리타게팅 광고 회사의 세일즈 팀 사람들은 Data Analyst 와 Data Scientist가 무슨 차이가 있는지 잘 모르고 날 더러 그냥 데이터 팀 사람이라고 불렀고, 그 중 누구는 자기가 데이터 쪽으로 커리어를 전환하고 싶은데, 나더러 Data Scientist가 될려면 어떻게 해야되냐고 묻더라. 개발자 중에서 요즘 머신러닝 공부하고 있는데, 무슨무슨 수업 다 듣고나면 이제 자기는 데이터 사이언티스트 되는거 아니냐고 하는 경우도 있었다. 필자가 심심하면 찾아가는 모 랩탑 브랜드 커뮤니티에는 자기가 Udemy의 Data Analysis 수업을 듣고 있는데, 앞으로 데이터 사이언티스트가 될려면 뭘 더 공부해야되냐고 느닷없이 개인 메세지를 보내시는 분도 있었다.

간단히 정리하면, 그런 질문 하시는 분들 정말, 진짜 너무너무너무 많다.

솔직한 대답을 드리자면, “저도 몰라요.”가 될 것 같다.

필자의 백그라운드는 Economics 학부, Financial Econometrics 석사, 그리고 Financial Math 박사 출신이고, 석사 시절부터 연구 주제 탓에 MCMC Simulation과 Network Theory라는 통계학과 수학의 한 분야를 깊게 공부했었다. 중간에 친구따라 강남가는 꼴로 연구실 근처에 있는 MIT에서 머신러닝 수업 몇 개듣고 이거 내가 알고 있던 Simulation이랑 같은 수리통계학 쓰고 있구나고 이해했던 정도가 전부다. 처음 데이터 사이언스 쪽 직장을 찾던 시절 쓸 수 있었던 프로그래밍 스킬셋이라고 해봐야 R이랑 Matlab이 내세울 수 있는 수준이고, SQL은 정말 기본만 했다. 다른 코딩 언어는 쓸 줄 모르기는 커녕, 별로 들어본 적도 없는 적이 많았다.

회사 가보니 Data Visulization에 필요한 Tableau라는 프로그램을 가르쳐주길래 공들여 배웠고, 데이터 베이스 접근하는 것 때문에 SQL도 Hive 알게되고, 나아가서는 Hadoop 어떻게 쓰는지까지 공부를 하게됐다. 사실 더 깊게 Data Engineer들 쪽 영역에 손을 댔으면 Spark 같은 것도 공부했으면 됐을텐데, 필자의 주 업무가 Data Science였지 Engineering 쪽이 아니어서 크게 관심을 두질 않았고, 솔직히 공부할 시간도 없었다. 당장 Data Science 업무에 쏟을 시간도 부족했었으니까.

시장에서 요즘 데이터 사이언티스트를 많이 뽑는데, 정작 사람은 없다보니까 다양한 분야 출신들을 모으고 있고, 그러니까 더더욱 뭐가 Data Science인지 잘 모르는 상태가 지속이 된 것 같다. 그 탓에 배울 지식이 엄청나게 많아보이는 착시효과가 있는데, 이건 꼭 알았으면 좋겠다 싶은 내용들을 한번 정리해보자.


1. R or Python


데이터 사이언스에서 R vs. Python으로 무슨 경쟁체제인 것처럼 몰아가는데, 둘이 상호 보완적인 관계라고 하면 더 맞지 않을까?

아무튼, 최소한 둘 중 하나는 잘 해야 어디가서 데이터 사이언티스트라고 할 수 있다.


2. 머신러닝


데이터로 뭘 하는걸 사이언스라고 주장하는 학문 분야가 나오게 된 가장 중요한 두 가지 “혁명”을 꼽으라면 빅데이터와 머신러닝을 들 수 있다. 굳이 따지자면 빅데이터가 있기 때문에 머신러닝이 의미가 있는 것이기는 하지만, 기술적인 지식이라는 측면에서 빅데이터를 배울 수는 없으니 (데이터를 어떻게 “배우”냐? 데이터를 활용하는 “지식”을 “배워”야지 ㅋㅋ “머신”이 “러닝”하게 양보하자), 당연히 머신러닝이 데이터 사이언스 업무의 필수 스킬셋이 될 수 밖에 없다. (참고, 빅데이터 만드는 백엔드 개발자는 또 다른 종류의 직업이다)

이쪽 업계에서 R이나 Python 같은 프로그래밍 언어가 크게 성공한 가장 중요한 이유가 바로 머신러닝을 실제로 돌려볼 수 있는 몇 안 되는 무료 패키지기 때문이다.

이미 많은 오픈소스 코드들이 돌아다니기 때문에, 코드를 적용한다는 측면에서 난이도는 그렇게 높지 않다. 솔찍말 학부 통계학 + 회귀분석 정도 알고 있으면 따라가는데 아무 문제 없다. 대부분의 경우에 학부 통계학과 회귀분석을 몰라서 문제고, 그 코드들이 작동하는 배경지식이 없어서 문제더라.

학부 때 컴퓨터 사이언스 해야되는거 아니냐고? 아니다. 정말 아니다.

차라리 로봇 공학, 기계, 산업 공학 같은 공대 전공이나, 경제학 같은 전공이 훨씬 더 적합한 전공이다. 이런 전공들도 학부, 석사 시절에 코딩 많이하고, 문제에 대한 접근 방식이 수학 식을 세우고, 그 문제를 풀어나가는 방식이고, 뭔가 잘못 되었을 때는 코드만 쳐다보는게 아니라 수식도 함께 쳐다본다. 굳이 차이가 있다면 수학을 코딩하는 거지, 개발자들처럼 IT 시스템의 일부를 구현하는 코딩을 하지 않는 것일 뿐이다. 머신러닝도 같은 방식으로 수리 통계학 모델링이 들어간 코딩이다.

그럼 학부 때 수학이랑 통계학 엄청 공부했어야되는거 아니냐고? 그냥 학부 1-2학년 수준의 수학 지식에 3학년 정도에 배우는 회귀분석만 알면 된다. 이건 필자의 수업을 들은 이학, 공학, 경제학 “박사 학위자”들의 공통적인 의견이다.

물론 머신러닝에 대해서 깊이 있게 알려면 다음 글에서 3번을 살펴 보자.

to be continued..

* 출처 : 데이터 과학자가 갖춰야 할 5가지 스킬셋_

Sort:  

짱짱맨 호출에 출동했습니다!!

Congratulations @beseeyong! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.028
BTC 56615.57
ETH 2387.60
USDT 1.00
SBD 2.30