싱가폴 출신의 데이터 사이언티스트, Travis Tang님의 아티클을 번역한 글입니다.
데이터 사이언티스트 wannabe라면, 일독할 가치가 충분한 글입니다.
Travis Tang님은 화학공학을 전공했지만 테크기업에서 데이터 분석가로 사회생활을 시작했습니다.
몇 차례에 걸쳐 포스팅 될 그의 이 아티클은 화학공학도가
데이터 사이언티스트로 일하기까지의 여정과 필요한 스킬셋(skill set)을 구체적으로 담고 있습니다.
Tang은, 데이터 사이언티스트로 나아가는 데 필요한 정보는 홍수처럼 넘치는데
오히려 그 때문에 최고의 자원을 선별해내는 것이 어렵다고 토로합니다.그렇기 때문에 먼저 아래의 질문에 답을 할 수 있어야 한다고 강변합니다.
데이터 과학이란 무엇입니까?
아, 이것은 인사 담당자와 기업의 면접관 모두를 당황하게 만드는 대답하기 어려운 질문입니다. 사실, 회사마다 데이터 과학을 다르게 정의하여 용어가 모호하고 다소 이해하기 어렵습니다. 프로그래밍이라고 하는 사람도 있고 수학이라고 말하는 사람도 있고 데이터를 이해하는 일이라고 말하는 사람도 있습니다. 모두 어느 정도 맞는 말입니다. 나(Travis Tang)에게 가장 동의하는 정의는 다음과 같습니다.
데이터 사이언스data science는 수학, 컴퓨터 과학, 도메인 지식 분야에서 도출된 기술과 이론을 사용하는, 학제를 넘나드는(inter-disciplinary) 분야이다.
아래 그림은 위의 정의를 잘 보여주는 이미지입니다.
데이터 사이언스는 다양한 학문들의 교차로
이 이미지에서 각 분야의 지식이 뭉쳐 데이터 과학을 형성한다는 것을 보여주기 위하여 분야 사이의 경계를 흐릿하게 묘사했습니다.
자, 그럼 데이터 사이언스, 데이터 과학을 배우기 위해선 뭘 해야 할까요?
일련의 게시물을 통해 저는 데이터 사이언티스트로 나아가는 과정에서 제가 배운 것들을 알려드리려 합니다. 이를 통해 저와 같은 입장에 있는 분들이 데이터 사이언스를 배워나가는 데에 도움이 되었으면 합니다. 이 아티클은 아래와 같은 내용으로 구성될 예정입니다.
1부 — SQL, Python 및 R을 사용한 데이터 처리
2부 — 수학, 확률 및 통계(본 게시물의 내용)
3부 — 컴퓨터 과학 기초
4부 — 기계학습(머신러닝)
5부 — 첫 번째 기계 학습 프로젝트 구축
이번 포스트에서는 데이터 사이언티스트들에게 필요한 '통계 연구(statistical research)' 지식을 제가 어떻게 습득했는지 집중 조명해 보겠습니다. 그러려면 확률 이론에 대한 확고한 이해가 필요합니다.
그럼, 데이터 과학에 필요한 '확률'은 어떻게 배우나요?
확률은 이론적 뉘앙스가 난해하고 모호할 수 있으므로 마스터하기 쉬운 주제는 분명 아닙니다. 그러나 어려워 할 필요 없습니다. 제가 아래에서 공유하는 최고의 리소스는 전문 용어를 피하고 직관적인 용어로 확률을 가르칩니다.
이론 강의 시리즈
아래 세 가지는 유명 기관이 제공하는 우수한 '확률' 강의 시리즈입니다. 3개의 시리즈의 내용은 대체로 비슷하므로 강의 시리즈 중 하나를 선택하여 진행하면 됩니다.
- Khan Academy의 통계 및 확률(고등학교 수준)
- HarvardX Stat 110: 확률 개론(대학/대학원 수준)
- MITx 6.431 확률 - 불확실성 및 데이터 과학(대학/대학원 수준)
응용 강의 시리즈(선택 사항)
앞서 소개한 강의 시리즈는 R이나 파이썬과 같은 프로그래밍 언어를 사용하여 확률 문제를 해결하는 방법을 가르치진 않습니다. 그러나 아래의 강의 시리즈는 확률의 '코딩 측면'을 가르칠 것입니다. 이미 Python이나 R에 익숙하다면, 수업에 참석하지 않고도 확률 문제를 푸는 데 필요한 구문을 쉽게 익힐 수 있습니다. 그러나 수업을 통해 약간의 지도를 받는 것이 더 편안하다고 생각되면 아래는 훌륭한 선택지입니다. 다시 말하지만 시리즈의 내용이 비슷하므로 다음 중 하나를 선택하는 것이 좋습니다.
- HarvardX 데이터 과학: EdX의 확률(R)
- HarvardX 데이터 과학: DataCamp의 확률(Python)
- Coursera의 R을 사용한 Duke University의 확률 및 데이터 개론
책(선택사항)
강의 시리즈를 진행하면서 도서로부터 추가적인 정보를 얻을 필요가 있다는 것을 깨달았습니다. 나는 아래의 입문 교재들이 특히 참고할 만하다고 생각합니다.
- Blitztein과 Hwang의 Introduction to Probability, Harvard Stat 110의 교재로 사용됨
- Grinstead와 Snell의 Introduction to Probability, Dartmouth College에서 교재로 사용됨
- Bertsekas 및 Tsitsiklis의 확률 개론, MITx 6.431의 교재로 사용됨
- Applied Statistics with R(의 일부 챕터), 일리노이 대학교 어바나-샴페인의 STAT 420에서 교재로 사용됨
동영상(선택사항)
명확하지 않은 특정 개념에 대해서는 부분부분 비디오를 참조합니다. 아래 리스팅한 비디오 리소스들은 개념을 명확하고 간결하게 설명해주 자주 참고하는 편입니다.
- StatQuest with John Starmer on YouTube
- Discrete Math Series by Dr Trefor Bazett on YouTube (확률의 개념을 포함)
웹사이트(선택 사항)
때로는 확률이론의 특정 개념을 시각화하는 것이 어려울 수 있습니다. 이를 해결하기 위해 제자 자주 이용하는 리소스는 Seeing Theory입니다. 이 사이트에서는 상호작용 경험을 통해 확률 개념을 시각화할 수 있습니다.
선택지가 많아도 너무 많은데 뭘 선택해야 가장 좋을까요?
제가 제안드리고 싶은 것은 Khan Academy, HarvardX 또는 MITx에서 제공되는 강의 시리즈입니다. 그 코스를 밟으면서 교재를 통해 주제에 대한 이해를 심화하고 책에서 제공하는 예제도 연습할 수 있습니다. 강의 시리즈와 교재에서 의문점이 생기면 비디오와 웹사이트에서 주제를 이해하는 데 도움이 될 수 있는 훌륭한 보안적 설명을 접할 수 있습니다.
저는 MITx 6.431을 가장 광범위하게 사용했습니다. 그 과정에서 가끔 Khan Academy와 Harvard Stat 100의 자료를 참고했습니다. 따라서 저는 개인적으로 열정적인 데이터 사이언티스트 지망생에게는 MITx 6.431를 추천합니다.
6.431x는 MIT의 엄격함을 그대로 제공합니다.
온라인 수업도 캠퍼스 수업과 동일한 강사인 Tsitsiklis교수가 캠퍼스 내 과정과 비슷한 속도와 수준으로 진행합니다. 실제로 MITx 6.431에는 MIT 6.431 on MIT Open Courseware의 캠퍼스 버전이 있습니다. 제 생각에는, MITx가 Open Corseware의 버전에 비해 우월합니다. 이유는 단순합니다. MITx는 온라인에서 소비되는 것을 목적으로 특별히 설계된 반면, MIT Open Courseware의 버전은 대면 강의를 녹음한 것이기 때문입니다.
6.431x에는 멋진 교육 팀과 자료가 있습니다.
Tsitsiklis 교수는 전문 용어를 피하고 개념을 명확하게 설명합니다. 게다가 튜토리얼을 통해 학생들을 가이드하는 조교 역시 어려운 문제에 대한 명확한 설명을 잘 제공합니다. 교육팀은 내용이 논리적으로 전개되고 간결하게 요약되어 있는지도 검수합니다. 학습과정은 이 팀에 의해 마찰 없이 유쾌하게 이루어졌습니다.
6.431x는 대학원 과정에서도 도움이 될 수 있습니다.
대학원 프로그램을 고려하는 사람들에게 MITx는 탁월한 선택입니다. 6.431x는 MIT MicroMasters Program in Statistics and Data Science의 일부입니다. 이 MicroMasters 프로그램은 4개의 핵심 과정(확률, 기계학습, 통계 및 캡스톤 시험)과 (데이터 분석에 대한) 2개의 과목으로 구성됩니다.
MicroMasters 프로그램을 완료하면 MIT의 사회 및 공학 시스템 박사 학위를 신청할 수 있습니다. 그 외에도 Curtin University, Harvard Extension School 및 Tsinghua University에서 대학원 학위과정을 제공합니다.
일단 한 번 해보면 됩니다.
EdX에 대한 강의 처음 몇 주는 무료로 참석할 수 있으며 본격 참석하기 전에 마음에 드는지 결정할 수 있습니다.
그렇다면 확률이론에서 무엇을 배워야 할까요?
각 과정은 약간 다른 범위를 가지고 있습니다. 그러나 일반적으로 확률을 배우고자 한다면 반드시 먼저 숙지해야 하는 출발점이 있습니다. 다음은 데이터 사이언티스트가 확률에 대해 숙달해야 하는 몇 가지 주제입니다. 관련된 질문으로 각 주제를 설명하겠습니다.
'독립적 사건'의 개념
오늘은 해가 떠올랐다고 내일도 해가 뜰까요?
간단히 말해서 두 사건이 독립적이라면 두 사건은 어떤 식으로든 서로 영향을 미치지 않습니다. 예를 들어, 우리는 일출이 서로 독립적이라는 사실을 알고 있습니다. 오늘 해가 떴는지 안다고 해서 내일 해가 뜨는지 여부에 대해서 알게 되는 것은 아니기 때문입니다.
독립성 개념은 많은 확률 개념과 통계 모델에서 가정한 것이기 때문에 확률과 통계의 초석입니다. 나중에 확률 개념을 마스터하려면 독립의 수학적 직관을 배우는 것이 중요합니다.
경우의 수(The Counting Rule)
반복을 허용하여 네 자리 숫자 비밀번호를 만들 때 가능한 경우의 수는 모두 몇 가지 일까요?
이 문제를 해결하려면 반복되는 문자가 있거나 없는 비밀번호의 경우의 수를 계산해야 합니다. 일반적으로 서로 다른 사건이 발생하는 경우의 수를 셀 수 있다면 사건의 확률을 알 수 있습니다.
이산확률 변수
공정한 동전을 6번 던졌을 때 앞면이 나올 것으로 예상되는 횟수는 몇 번입니까?
그 질문에 답하기 위해 동전 던지기를 이산적인 사건으로 모델링할 수 있습니다. 즉, 각 동전 던지기를 베르누이 확률 변수라고 하는 이산확률 변수로 모델링합니다. 앞면을 1로 처리하고 뒷면을 0으로 처리하면 6번의 동전 던지기 결과를 합산하여 또 다른 이산 확률 변수(이항확률 변수)를 얻을 수 있습니다. 우리가 앞면을 보는 횟수는 단순히 이항 확률 변수의 기대치일 것입니다.
연속확률 변수
5년 된 시리즈 X를 감안할 때 Tesla의 가격은 얼마입니까?
이 질문에 답하기 위해 5년 된 Series X Tesla의 가격을 정규확률 변수로 모델링할 수 있습니다. 이것은 대부분의 5년 된 Series X가 평균 가격을 가지고 있다는 것을 의미합니다. 어떤 자동차는 평균 가격보다 비싸고 어떤 자동차는 평균 가격보다 저렴합니다. 그러나 평균 가격보다 훨씬, 훨씬 더 비싸거나 저렴한 자동차를 찾기는 어렵습니다.
즉, 5년 된 시리즈 X의 가격은 종 모양 분포로 모델링할 수 있습니다.
사실, 우리는 연식과 모델이 주어졌을 때 Tesla의 가격을 예측하는 선형 회귀 기계학습 모형을 구축할 수 있습니다. 그렇게 할 때 우리는 암묵적으로 Tesla의 가격을 정규확률 변수로 모델링한 것입니다.
베이지안 추론
동전을 10번 던진다고 합시다. 우리는 이 코인에 대해 아무것도 알지 못하기 때문에 처음에는 그것이 공정한 코인이라고 가정합니다. 동전 앞면이 9번 나온다면 동전이 공정할 확률은 얼마입니까?
베이지안 추론은 급성장하는 분야이며 데이터 사이언스에서 빠르게 입지를 넓혀가고 있습니다. 단순히 말하면 베이지안 추론은 더 많은 정보를 사용할 수 있게 됨에 따라 우리가 보는 것을 기반으로 사건의 확률을 업데이트하는 원리입니다.
다음의 사례에 베이지안 추론의 원리를 적용해 보겠습니다. 동전을 10번 던졌을 때 앞면이 9번 나오는 것을 관찰하게 된다면, 처음에는 우리가 동전이 공정하다고 가정했지만, 동전이 앞면으로 치우쳤을 가능성이 높다고 결론을 수정할 것입니다.
기계학습에서 베이지안 추론을 적용한 것이 Naive Bayes 분류기(Naive Bayes classifier)입니다. 예를 들어 Naive Bayes 분류기를 사용하여 이메일이 스팸인지 여부를 분류할 수 있습니다. 처음에 모델은 모든 이메일이 스팸이 아니라고 가정할 것입니다. 그 후 보낸 사람의 이메일 주소와 이메일 내용을 기반으로 그 믿음을 업데이트합니다.
극한 정리
공정한 동전을 4번, 400번, 40000번, 400만 번 던졌을 때 앞면을 관찰하게 될 확률은 얼마입니까?
우리가 공정한 동전을 4번 던진다면 4번 모두 앞면이 나와도 놀라지 않을 것입니다. 그러나 아무리 공정한 동전이라도 400만 번 던졌을 때 모두 앞면이 나온다면 매우 놀랄 것입니다.
왜 이런 일이 발생합니까? 본능적으로 대수의 법칙(law of large numbers)을 믿기 때문입니다. 이 법칙은 동일한 실험을 반복하면 결과의 평균이 점점 더 진실(기대값)에 가까워진다고 이야기합니다.
대수의 법칙과 같은 극한 정리는 기계학습 시스템으로 대규모 데이터 세트를 분석하는 데 중요합니다.
고전 통계
미국인 100명을 대상으로 한 대선 여론조사를 실시한 후 트럼프나 바이든의 승리를 어느 정도 자신 있게 예측합니까?
이 질문에 대한 답은 p-값 및 신뢰구간과 같은 개념에 달려 있습니다. 둘 다 데이터 사이언티스트를 뽑는 면접에서 흔히 접하게 되는 고전적 통계의 중요한 부분입니다.
데이터 과학에서 확률이 중요한 이유는 무엇입니까?
확률은 통계의 동반자입니다.
데이터 사이언스 분야에서는 종종 통계도구를 활용하여 추론이나 예측을 수행합니다. 이러한 통계 도구를 철저히 이해하려면 확률에 대한 강력한 기반을 구축해야 합니다.
예를 들어 Facebook의 데이터 사이언티스트는 사용자가 새 버튼을 클릭하는지 확인하기 위해 Facebook 사용자의 A/B 테스트를 계획해야 할 수 있습니다. 실험을 계획할 때는 실험을 실행하기 전에 가설을 세우고, 적절한 샘플링 계획을 세워야 합니다. 데이터 과학자는 적절한 샘플링 계획을 세우기 전에 확률 개념을 이해해야 합니다. 그래야만 전체 Facebook 사용자에 대해 통계적으로 유의미한 추론을 할 수 있습니다.
확률은 기계학습의 기초를 형성합니다.
더욱이 많은 데이터 과학자를 꿈꾸는 사람들에게 알려지지 않았지만, 확률 개념은 기계학습 개념을 마스터하는 데에도 중요합니다. 많은 기계학습 모델은 데이터가 특정 유형의 분포를 따른다는 가정 하에 구축됩니다.
확률을 이해하지 못하면 데이터 과학자는 데이터가 기계학습 모델의 가정을 충족하는지 결정할 수 없으므로 기계학습 모델에서 최선의 선택을 하지 못 할 수 있습니다.
예를 들어, 선형회귀 모형은 각 데이터 포인트의 노이즈가 정규 분포를 따른다고 가정합니다. 의미를 이해하려면 데이터 사이언티스트는 정규분포가 무엇인지 알아야 합니다. 정규분포는 확률로 배우는 것입니다.
다음 단계로 나아가려면
확률의 이론적 측면을 학습한 후에는 다음을 수행할 수 있습니다.
- 프로젝트에서 R 또는 Python을 사용하여 확률 개념을 적용합니다.
- 데이터 사이언티스트에게 중요한 기술인 A/B 테스팅 수업을 듣습니다.
- 통계에 대해 더 깊이 배워보기(다음 포스팅에서 확률과 통계의 주요 차이점을 강조하고 통계에 대한 몇 가지 리소스를 공유하겠습니다.)
그 외 읽을거리
이 블로그 게시물이 마음에 들면 기계학습에 대한 다른 아티클도 읽어보세요.
- How to be a Data Analyst — Data Viz with Google Data Studio
- 4 Steps to be a Great Data Analyst — Don’t be a Query Monkey
참고문헌
[1] Dhar, V. (2013). “Data science and prediction”. Communications of the ACM. 56 (12): 64–73. doi:10.1145/2500499. S2CID 6107147. Archived from the original on 9 November 2014. Retrieved 2 September 2015.
[2] “Bayes’ Theorem (Stanford Encyclopedia of Philosophy)”. Plato.stanford.edu. Retrieved 2014–01–05.
'Programming > Knowledge' 카테고리의 다른 글
[웹개발] 파이썬 웹 프레임워크(Web Frameworks)에 대한 간단 지식과 추천 프레임워크 (0) | 2022.01.15 |
---|---|
[머신러닝 for 비즈니스] 비즈니스에 가치를 더하는 기계학습 인프라 구축 6단계 (0) | 2021.09.10 |
[데이터사이언티스트 독학 04] 취업하고자 한다면 데이터 사이언스 프로젝트를 수행하라 (0) | 2021.08.26 |
[데이터 사이언티스트 독학 03] 기계학습(머신러닝)은 무엇인가, 어디서 배울 수 있나 (0) | 2021.08.21 |
[데이터 사이언티스트 독학 01] Data Science의 정의, 데이터 처리(Data Processing)를 배우는 방법 (0) | 2021.08.18 |
댓글