DataCamp Python Data Scientist Track 학습기
프로그래밍과는 거리가 먼 한의대 출신으로 코딩 공부에 유혹당한 시점은 여러 서점과 국회도서관을 배회하면서부터 였다.
서가들을 장악한 "당신도 앱 개발을 할 수 있다!"류의 책들을 반복해서 보다 보니, 나도 왠지 트렌드 리더가 되어 뭔가 만들어 볼 수 있을 것 같다는 생각에 현혹되고 말았다.
당시는 아이폰을 사용하고 있던 터라 iOS가 왠지 멋지다는 생각에 겁도 없이 Objective-C 책을 구매했다.
어떤 배경지식도 없이 대략 훑어보기만 하고 구매한 Objective-C 책들로 시작한 코딩 공부의 결과는 처참했다.
이해가 되지 않는 개념도 한 두 가지여야지, 읽다가 지쳐 Xcode에 막 코딩으로 따라 해보려 해도, 일어난 에러는 파악도 안 되고, 실제 코드가 돌아가더라도 구석구석 미지의 세계인 Objective-C는 도저히 무리라고 판단했다.
포기한 채 시간만 보내던 어느 날, IT 업계에서 일하던 친구로부터 파이썬을 해보라는 추천을 받았다. 충분히 쉽고 요즘 스타트업계에서도 대세라는 평은 귀가 얇은 나를 유혹하긴 충분했다.
파이썬 공부의 처음은 역시 책으로 시작했다. 일단 뭔가 쉬워 보이는 책 위주로 구매해 코드를 따라 해 보니, 훨씬 더 직관적인 파이썬은 매력적으로 느껴졌다. 그러나 쉬운 책들은 끝까지 따라 해 봐도 할 수 있는 게 극히 적었고, 이해도는 역시나 낮은 상태였다. 학습은 지지부진한 상태에 머물러 있는 듯했다.
그러다 수소문 끝에 웹브라우저 콘솔 상에서 코드를 실습해보면서 학습할 수 있는 플랫폼들을 발견하게 됐다.
그런 플랫폼들 중 Code School과 CodeAcademy를 먼저 시작해 보았다.
https://www.codeschool.com/courses/try-python
Objective-C 공부할 때 Code School을 이용해보았다. 특징은 애니메이션을 활용한 게임과 같은 요소가 있는 것이 재밌었다. Objective-C의 학습 이해도가 낮았던 탓에 결과는 좋지 않았지만 흥미를 유발하는 요소가 많았던 점은 장점이었다.
CodeAcademy는 Code School과 같은 애니메이션은 없었지만, 파이썬 기초를 익히기엔 좋은 코스가 있었다. 그래서 유료결제를 하고 이 코스를 완주했다. 기본적인 파이썬 문법을 익히기엔 실제 콘솔에 코드를 쳐보면서 실행되는지 확인하는 것이 확실히 효과적이었다. 학습하는 동안 버그가 조금 있어 구글링으로 찾아보고 넘어가는 과정은 있었지만, 전반적으로 만족스러웠다.
파이썬은 범용성이 장점인 언어답게 구현할 수 있는 것이 무척 많다. 그중 데이터 쪽이 끌렸다. 이후 논문을 쓸 때도 활용 가능할 듯했고, 데이터 분석으로 할 수 있는 것들이 증가하고 있는 것이 느껴졌다.
대표적인 MOOC 플랫폼인 Coursera의 몇 강의들을 들어보며 데이터 분석이나 머신 러닝이 어떤 분야인지 감을 익혔다. 존스 홉킨스 대학의 R programming 강의는 입문 수준의 강의라 따라 할 만했지만, 유명한 스탠포드 대학 앤드류 응 교수님의 Machine Learning 강의는 굉장히 힘들게 수료했다.
이후 Pycon과 '데이터야 놀자' 등의 여러 컨퍼런스를 다녀보면서 데이터 쪽을 열심히 해봐야겠다는 생각을 굳혔다.
이번에도 CodeAcademy 같은 학습 플랫폼을 찾고 싶었는데, '데이터야 놀자'에서 어느 강의하신 분이 추천한 DataCamp를 알게 됐다. 그분은 R공부용으로 추천했지만 Python 코스도 있었기에 시도해보기로 했다.
DataCamp에 있는 Data Scientist with Python 트랙은 총 20개의 코스로 구성되어 있다.
기초적인 파이썬 문법부터, 데이터 조작, 시각화, 머신러닝, 딥러닝을 포함한 방대한 양을 보니 도전의식이 불끈 솟았다.
느린 학습능력 탓에 얼마가 걸릴 진 모르지만, 빠르게 결제 카드를 꺼내서 유료 코스들을 시작했다.
일을 하면서 공부를 하는 상황이라, 학습 속도는 매우 지지부진했지만 느린 가운데 포기하진 않았다.
트랙 설명엔 67시간짜리 트랙이라고 되어 있었지만, 나의 경우엔 여러 달이 걸려서야 20개 코스 한 바퀴를 학습 완료했다.
DataCamp에서의 Python을 활용한 데이터 사이언스 학습에 대한 간단 리뷰는 다음과 같다.
1. 확실히 웹브라우저 콘솔에서 예제들을 즉시 코딩해볼 수 있는 플랫폼은 참 좋다. 배경지식이 없는 비전공자에게 책 보다 더 이해가 잘 된다고 느껴진다.
2. 영어가 장벽이다. 데이터 분석의 경우 통계라던지 머신 러닝의 개념들은 영어 실력이 뛰어나지 않은 경우엔 이중 장벽이 된다. 같은 내용의 한국어 컨텐츠였으면 더할 나위 없이 좋았을 것 같다. 더불어 짧은 영상 강의이긴 하지만 영어 자막이 제공이 되지 않는 점은 불편하다. 온전히 리스닝으로 이해하는 게 버거운 영어 실력이라 더욱 그랬다.
3. 내용의 충실도가 좋다. 어떤 책 한 권이나 MOOC 강의 하나를 끝냈는데 막상 배운 게 얼마 되지 않아 보이는 경우가 있다. 이 트랙의 20개 코스를 끝내고 나면 그런 허기짐은 느껴지지 않는다. 파이썬을 활용한 데이터 사이언스의 구석구석을 배워볼 수 있는 콘텐츠이다.
파이썬과 데이터 사이언스를 학습할 수 있는 플랫폼 혹은 컨텐츠 들은 매우 많다. 어떤 계기로 DataCamp를 선택하긴 했지만, 가장 좋은 컨텐츠라고 생각하진 않는다. 특히 한국인이라면 영어보단 한국어로 학습하는 게 더 유리할 것이다.
다른 여러 플랫폼에 비해 장점도 단점도 있지만, 본인에게 적절한 핏이라면 충분히 선택해볼 만하다고 생각된다.
물론 이 학습 트랙을 한 번 처음부터 끝까지 했다고 해서 모두 이해하고 바로 데이터 분석이 가능한 건 아니다. 복습이 필요하고, 이해가 미진한 개념들은 다른 자료나 구글링을 통해 이해할 필요가 있다.
특히 DataCamp는 영어 기반 컨텐츠이기에 다소 이해하기 힘들었던 여러 통계, 머신러닝 개념들이 많았다. 하지만 구글에선 이를 설명해주는 수많은 블로그 포스트와 유튜브 영상들을 찾을 수 있다.
다소 이해가 힘들었던 개념들을 상세하고 쉽게 설명해주는 여러 포스트와 영상들을 링크로 덧붙일까 한다. 이 리스트는 이후 더 좋은 컨텐츠를 찾는 대로 업데이트할 계획이다. 혹여나 이 플랫폼으로 파이썬 혹은 데이터 사이언스를 학습할 이에게 도움이 되었으면 하는 바람이다.
향후 학습 계획은 아직 베타 서비스이긴 하지만 DataCamp의 프로젝트 실습 과정이 있다. 주피터 노트북 상에서 실제 데이터 분석 프로젝트를 실습해 볼 수 있다. 이 프로젝트 실습 과정과 실제 기업에서 제공하는 데이터를 가지고 데이터 사이언스 문제를 풀어볼 수 있는 Kaggle을 더불어 해 볼 계획이다.
최종 업데이트 2017/11/16
파이썬 공부를 위한 책으로 <점프 투 파이썬>이 많이 추천된다. 위키 독스에 내용이 공개되어 있으니, 파이썬 기초 문법에 대해선 참고하기 좋은 자료이다. DataCamp의 파이썬 기초 과정을 따라 해 보는 것만으로도 꽤 익숙해질 수 있다.
탐색적 데이터 분석(EDA)은 도표, 그래프, 요약 통계 등을 통해 데이터를 체계적으로 둘러보는 방법이다. 데이터 시각화와 겹치는 개념으로 들리기도 한다. EDA에 시각화가 많이 포함되지만 구분할 필요가 있다. EDA는 연구의 초기단계에서 이루어지고, 데이터 시각화는 분석 결과를 커뮤니케이션하기 위해 연구의 마지막 단계에서 행해진다. (출처 : 데이터 과학 입문, 레이철 슈트, 한빛미디어)
http://www.dodomira.com/2016/01/12/데이터-분석의-유형/
http://bearfoon.tistory.com/12
https://en.wikipedia.org/wiki/Empirical_distribution_function
머신러닝을 공부하다 보면 선형대수의 개념 이해가 필수적이다. 학부에서 공부해놓지 않은 비전공자의 경우 책으로만 공부하기엔 막막하다. 완전한 이해까진 아니더라도 대략적인 개념 이해를 하는 데 비록 PPT 화면상으로 음성만 있는 형태의 강의이긴 하지만, 개인적으로는 Jaeoh Lee님의 유튜브 영상이 도움이 되었다. 머신러닝을 공부하기 위핸 선형대수의 개념 이해가 필요하다면 참고해보자.
https://www.youtube.com/watch?v=KKGfjhs_26M&t=657s
: 머신러닝에 대한 여러 개념과 구현하기에 대한 유튜브 영상들이다. 한 클립의 길이가 길지 않으면서도 개념을 이해하기에 좋은 설명을 담고 있다.
https://www.youtube.com/watch?v=CyuI2F_wJWw&list=PLVNY1HnUlO241gILgQloWAs0xrrkqQfKe
Classification
K-nearest Neighnors
: 허민석 유튜브에서의 설명이 가장 이해하기 쉬울 듯하다.
: 위키피디아에도 설명이 있으니 참고할 만하다.
https://ko.wikipedia.org/wiki/K-최근접_이웃_알고리즘
Overfitting underfitting
: 데이터 분석을 알아야 하는 사람이라면 꼭 알아야 하는 오버피팅에 관한 설명 영상이다.
Regression
Linear regreession
:선형회귀에 대한 설명이 쉽게 되어있는 포스트이다.
Cross-validation
: Cross-validation(교차검증)의 개념과 Scikit-Learn에서의 교차검증기능 사용 방법에 대해서까지 자세히 설명된 포스트이다.
https://datascienceschool.net/view-notebook/266d699d748847b3a3aa7b9805b846ae/
K-fold Cross-validation
: K-fold Cross-validation에 대해 자세한 설명이 포함된 페이지이다. 좀 더 이해가 쉬운 문서를 참고하면 좋을 듯하다.
https://tensorflow.blog/머신-러닝의-모델-평가와-모델-선택-알고리즘-선택-3/
Fine-tunning
http://haandol.github.io/2016/12/25/define-bottleneck-feature-and-fine-tuning.html
Logistic regression and ROC curve
https://medium.com/mathpresso/mathpresso-머신-러닝-스터디-4-회귀-분석-regression-2-4f938f1f1c2d
AUC computation
t-SNE
https://ko.wikipedia.org/wiki/T-분포_확률적_임베딩
https://ratsgo.github.io/machine%20learning/2017/04/28/tSNE/
PCA(주성분 분석), NMF(Non-negative matrix factorization)
: PCA, NMF가 모두 설명된 슬라이드쉐어 자료이다.
https://www.slideshare.net/madvirus/pca-svd
: 딥러닝에 대해서는 홍콩과기대의 김성훈 교수님의 유튜브 강의가 유명하다. 한국어로 쉽고 상세하며 꼼꼼한 강의로 이 보다 더 좋은 자료를 찾기는 쉽지 않을 것 같다. 딥러닝의 Linear Regression, Nueral network(CNN, RNN), Gradient descent, Backpropagation 등을 개념 이해를 위하 김성훈 교수님의 강의를 추천한다.
https://www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm
http://channelofchaos.tistory.com/99