데이터 과학자 - 그들은 무엇을 배우고 어떻게 준비하는가?

1

이 책을 읽으면 해야 할 일이 100배로 늘어나는 경험을 하게 된다.

2

책에 있는 ‘부록’만 따로 보관해서 보도록 하자. 나 같은 초보자에겐 보물이다.


정의가 너무 거대해서 사기꾼 같아 보이는건 함정이다.

[…] 문헌에 데이터 과학자라는 단어가 사용되기 시작한 것은 2005년 9월쯤이다. 그 해에 발간된 논문에서 데이터 과학자를 다음과 같이 정의한다. “정보와 컴퓨터 공학자, 데이터베이스와 소프트웨어 공학자이며 프로그래머, 훈련된 전문가, 큐레이터이며 해설자, 사서, 기록 보관인, 그리고 디지털 데이터 수집과 관리에 중요한 역할을 하는 사람”

벤 다이어그램은 항상 ‘재미’있다.

[…] “와 있는 상황에 내 생각을 그림으로 더해본다. 바로 해킹 기술과 수학과 통계 지식, 실질적 전문가에 관한 데이터 과학 벤 다이어그램이다.” 이렇듯 사고방식을 달리해서 얻어지는 변화는 데이터 과학자의 역할에서 명백하게 드러난다. 데이터 과학자는 보통 데이터 모델러와 사업가, 다른 전문가(속한 산업에 따른) 등으로 구성된 다양한 팀의 일부로서 일한다.

본격 ‘인문학’ 소환 주문

[…] 데이터 과학자는 자신이 다르는 데이터를 잘 관찰해서 바닥까지 파헤치고 싶어할 만큼 흥미미를 느껴야 한다. 통계적 분석을 살펴보는 것으로 시작하는 것도 좋겠다. 하지만 거기서 유추된 현상의 이유가 무엇인지, 즉 도출해낸 통계 자료의 근본적 이유를 알 때까지 만족해서는 안 된다. 그래야 회사 사람들에게 근본 원인을 말해 줄 수 있기 때문이다.

역시나 너무 많은걸 원하는건 아닌가 싶다.

[…] 데이터 과학자에게 공통으로 발견되는 확실한 자질과 능력이 있다. 그중 중요한 것들을 살펴보면 다음과 같다. “모델 구축 : 수학적인 모델을 제대로 설계하고 구현할 수 있어야 한다. […] 따라서 데이터 과학자는 전체 과정에서 효율성을 늘 염두해 두어야 한다.”, “계획 : […] 프로젝트 관리자처럼 생각해서 각기 다른 업무에 할당할 시간을 가늠해서 현실적이고 효과적인 계획을 세워야 한다.”, “문제해결 : […] 일반적인 과학자와 다르게 해커에 가깝다고 할 수 있다.”, “빠른학습 : 빠른 학습의 핵심 요소는 뚜렷한 동기와 새로운 자료를 응용하는 능력이다.”, “적응력 : 정보를 전달하는 방법은 보편적이기 때문이다.”, “협동성 : […] 독립된 전문가로서 자신만의 규범도 가지고 있어야 하지만, 또한 소속된 팀의 다른 팀원들과도 쉽게 협력하여 팀 전체에 공헌해야 한다.”, “유연성 : […] 다양한 측면에서 여유 있게 다룰 수 있다.”, “연구 : 학술적 연구와는 아무런 관련이 없다.”, “세부 사항에 대한 주의력 : 변칙적인 데이터를 찾아내고 문제를 미리 예견할 수도 있다.”, “보고서 : 보고서는 전문가가 아닐지라도 이해하기 쉬어야 한다.”

데이터 과학자가 아니라도 이 정도 능력이면 어디든 원한다.

데이터 과학자 구인에서 공통으로 원하는 프로그래밍 언어는 다음과 같다. “ Java, Python, C++/C#, Perl” […] 좀 더 전문화된 언어인 SQL도 요구된다.

난 Python으로 퉁쳐보기로 했다.

다음과 같은 통계 도구 중 하나는 통달해야 한다. “R, SPSS, SAS, Stata”

기승 전 “수습”

첫 업무 경험을 얻는 데에는 최소한 다음과 같은 방법이 있다. * Kaggle이라는 데이터 과학 대회에 참가한다. * 관련 업무를 수행하는 회사의 인턴사원으로 근무한다. * 대학원생이라면 데이터 관련 과제를 가진 회사의 사례를 연구하여 논문으로 발표한다. * 데이터 과학 모임에 지원한다. * Data Science Central과 같은 사이트에서 찾아 수습 기간을 가진다.

한국에선 인적 네트워크라 쓰고 학벌이라 읽으면 되는 것 같지만 그것 마져도 쉽지 않다. 여기저기 흥미를 가지고 ‘커뮤니티’ 활동을 하자!

데이터 과학자는 인적 네트워크를 통해서 기업 세계와 늘 접촉하며 현실감을 유지해야 한다.

‘BashReduce’가 끌리는건 왜 일까?

이 책을 쓰는 현재, 짚고 넘어갈 만한 프로그램들은 다음과 같다. “Spark, BashReduce, Disco Project, GraphLab, HPCC Systems, Sector/Sphere”

‘Julia’!! 내가 요즘에 약을 먹어서 관심이 많다.(요즘 = “2015/09/07”)

하둡을 배우려 한다면 기초를 배우고 나서 한번쯤 이들을 들여다볼 필요가 있다. “Drill, D3.js, Kafka, Julia, Impala”

영어를 잘해야 된다느 뼈저린 교훈

몇 개의 다른 사이트에서도 MOOC를 찾을 수 있는데, 그 중 가장 잘 알려진 곳은 다음과 같다. Udacity, edX, Khan Academy, Codeacedemy, Coursera”

여튼, 통계학도 잘해야 한다.

[…] 기계 학습은 아무런 가정도 없이 데이터를 다루는 데 아주 훌륭한 방법이다. 그리고 연산 기술이 지속적으로 진본하고 있으므로 많은 잠재력이 있으며 효과적인 방법으로 제시된다. 이 분야에 대한 연구가 많은 주목을 받고 있기 때문에 현재의 방법도 더 다듬어지게 될 것이 분명하다. 하지만 통계학도 잘 다듬어진 분야이기 때문에 이미 많은 연구가 행해져서 관련 모델들은 다 증명되어 있고 커다른 데이터 집합에 매우 효과적인 방법이다. 또한, 관련 모델들은 상대적으로 구현하기 쉬울뿐더러 실용적 지식을 얻는 것도 어렵지 않다.

기승 전 ‘기계학습’

기본 프로세스 : 데이터에 대한 기본 설명(통), 데이터의 깊이 있는 이해(기), 데이터 탐색(둘)

‘둘’다 좋다고 말하는건 ‘기계학습’이 더 좋다고 말하는거랑 동의어다.

데이터 분석 프로세스 : 단순 모델 구축(통), 복잡 모델 구축(기), 자동화된 지능적 프로세스(기), 데이터에 기반을 둔 딥 러닝(기), 예측 분석(기), 신뢰도 추정(통), 알 수 없는 데이터로부터 학습(기), 알고 있는 데이터로부터 학습(기), 이상치 찾기(둘), 연관 찾기(기)

뭐가 되었든 ‘기계학습’이 승리다.

다른 작업 : 데이터 시각화(둘), 추천 찾기(기), 구조화된 데이터 집합(둘), 구조화되지 않은 데이터 집합(기), 모델의 근거 설명(통)

눈여겨볼 만한 다양한 ‘디테일’

데이터 과학 프로세스 “1. 데이터 준비 : […] JSON이나 유사한 형식으로 데이터를 만들어야 한다. […] 데이터 집합이 이용 가능하고 분석에 쓸모가 있는지 먼저 알아보는 것이 좋다., 2. 데이터 탐색 : 데이터 과학자는 두 방법(자동화된 데이터 탐색, 사람이 직접 수행하는 데이터 탐색), 3. 데이터 표현 : […] 컴퓨터에서 이진 기호로 표기되는 방식, 4. 데이터 발견 : […] 이 단계가 얼만 효율적일지는 여러분의 경험과 직과, 투자 시간에 달렸다., 5. 데이터로부터 학습 : […] 자율 학습과 감독 학습 모두 어느 정도 자동화된 방법을 이용해야 하는 것처럼 보인다., 6. 데이터 산출문 생성 : […] 데이터 산출물을 만들어 내려면 최종 사용자를 잘 이해해야 하고 그들이 무엇을 기대하는지 알아야 한다., 7. 통찰력과 표명, 시각화 : […] 데이터 과학자나는 만들어낸 데이터 산출물을 전달하고 어떻게 사용되는지도 관찰한다. “

Written on September 6, 2015