SlideShare a Scribd company logo
1 of 84
Download to read offline
효율적 데이터 과학을 위한
7가지 팁
2017년 10월
권재명 https://dataninja.me/
데이터 분석이 취미이자 직업인 통계학자 출신의
실리콘밸리 데이터 과학자. 1972년에 서울에서
태어났다. 어려서부터 컴퓨터를 좋아해서 전산학을
공부하고자 서울대학교 계산통계학과에 입학했다
(1990년). 하지만 대학 2학년 때 들은 통계수업에
매료되어 통계를 전공하기로 결심하여 서울대 통계학
학사(1994년), 석사(1996년)를 거쳐 버클리대학교
(UC Berkeley)에서 박사(2000년) 학위를 받았다.
졸업 후 같은 대학에서 교통 데이터 분석 연구원으로
활동했고, 이후 이스트베이 캘리포니아주립대학교
(Cal State East Bay)에서 통계학과 조교수를 지냈다.
2009년부터 지금까지 실리콘밸리의 인터넷, 테크
기업에서 데이터 과학자로, 그리고 분석 팀 리더로
활동 중이다. 최근 "따라 하며 배우는 데이터
과학"(2017)를 출간했다.
https://dataninja.me/
데이터 과학 이론은 --- 변하고, 툴은 --- 변한다
데이터 과학 이론은 천천히 변하고, 툴은 빨리 변한다
미적분학: 뉴튼과 라이프니츠 (17세기)
선형대수 / 행렬연산
● "determinant" - 라이프니츠 (17세기)
● "matrix" - J.J.Sylvester (1848)
● "matrix algebra" - Arthur Cayley (1855)
확률론
● 중심극한 정리 - 라플라스 + (1778)
● 베이즈 확률론 (1763)
이론은 천천히 변하고, 툴은 빨리 변한다: 수학-확률
https://en.wikipedia.org/wiki/History_of_calculus
최소제곱법 - Carl Friedrich Gauss + (1795)
회귀분석 - Francis Galton + (19세기 후반)
MLE - R.A.피셔 + (20세기 초)
이론은 천천히 변하고, 툴은 빨리 변한다: 확률-통계
랜덤 포레스트 - L. Breiman+ (~2001)
부스팅 - J. Friedman+ (~1999)
라쏘+ - J. Friedman+ (~2008)
이론은 천천히 변하고, 툴은 빨리 변한다: 통계-머신러닝
이론은 천천히 변하고, 툴은 빨리 변한다: 딥러닝
https://beamandrew.github.io/deeplearning/2017/02/23/deep_learning_101_part1.html
이론은 천천히 변하고, 툴은 빨리 변한다: OS, 랭귀지
유닉스 - 1970년대
C - 커니건&리치 (1972)
SQL - (1979)
자바 - James Gosling (1995)
파이썬 - Guido van Rossum (1989)
S - Chambers, Becker, Wilks of Bell Labs (1988)
R - R. Ihaka and R. Gentleman (2000)
R스튜디오
파이썬 libraries
● scikit learn (2011)
● tensorflow, keras
R libraries
● tidyverse
● rmarkdown
● htmlwidgets
이론은 천천히 변하고, 툴은 빨리 변한다: 패키지
컴퓨팅 + 데이터
이론은 천천히 변하고, 툴은 빨리 변한다: 딥러닝
https://www.matroid.com/scaledml/2017/jeff.pdf
컴퓨팅 + 데이터
따름정리 1. 데이터 과학
적용 영역의 폭발적 증가
따름정리 2. 데이터 과학자
수요 폭발적 증가
이론은 천천히 변하고, 툴은 빨리 변한다: 딥러닝
https://www.matroid.com/scaledml/2017/jeff.pdf
이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, ....
데이터 과학 = 이론
이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, ....
툴 = 코딩, R/파이썬, 패키지, ...
데이터 과학 = 이론 + 툴
이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, ....
툴 = 코딩, R/파이썬, 패키지, ...
적용 = 문제 이해, 해결, 소통 ... 능력
데이터 과학 = 이론 + 툴 + 적용
이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, ....
툴 = 코딩, R/파이썬, 패키지, ...
적용 = 문제 이해, 해결, 소통 ... 능력
데이터 과학 = 이론 + 툴 + 적용 (+경험)
이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, ....
툴 = 코딩, R/파이썬, 패키지, ...
적용 = 문제 이해, 해결, 소통 ... 능력
이상적인 데이터 과학자는 셋을 다 갖춘 사람
데이터 과학 = 이론 + 툴 + 적용 (+경험)
데이터 취득
데이터 가공
탐색적
데이터 분석
문제 정의
데이터 정의
확증적
데이터 분석
자동화리포트
데이터 과학 프로세스
데이터 취득
데이터 가공
탐색적
데이터 분석
문제 정의
데이터 정의
확증적
데이터 분석
자동화리포트
데이터 과학 프로세스 in R
dplyr*
tidyr*
stringr
readr*
tidyr*
ggplot2*
rmarkdown
flexdashboard
DT
testthat
logging
도커
파이썬
caret
* = tidyverse
데이터 과학자의 스트레스와 야근의 원인?
이상적인 데이터 과학자도 항상 효율적인 것은 아니다
(10초간 생각해보기)
데이터 과학자의 스트레스와 야근의 원인?
이상적인 데이터 과학자도 항상 효율적인 것은 아니다
(10초간 생각해보기)
("이론이 부족하다"는 제외)
1. 박하사탕 증후군 - "나 돌아갈래!"
"(컴퓨터 크래시) 지난 일주일간 작업한 내 코드는? ㅠㅠ"
"분석 코드 필요하다고? 이멜로 보내줄께"
"(분석 안돌아감) 3일전에 이 코드는 어땠더라?"
http://blog.daum.net/ps212d/114
해결책: 깃을 사용한 분석 코드 관리
git init / git clone
git add
git commit
git push / git pull
분석 프로젝트 시작은 항상 git clone 으로
모든 코드/텍스트를 git add
매일 git commit / git push
깃을 사용한 분석 코드 관리 by Default
https://github.com/jaimyoung/
게으른 데이터 과학자
부지런한 데이터 과학자
https://www.sourcetreeapp.com/
http://ohmyz.sh/
https://git-scm.com/book/tr/v2/Git-in-Other-Environments-Git-in-Zsh
남이 작성한 읽기 어려운 코드
내가 (3달 전) 작성한 읽기 어려운 코드
2. 난독증 유발형 - "이 코드는 뭘 하는 코드일까?"
http://darai17.tistory.com/44
https://blog.codinghorror.com/when-understanding-means-rewriting/
전문 프로그래머의 하루 일과:
새로운 코드 작성 5%
기존 코드 고치기 25%
기존 코드 이해하기 70%
https://blogs.msdn.microsoft.com/peterhal/2006/01/04/what-do-programmers-really-do-anyway-
aka-part-2-of-the-yardstick-saga/
해결책: 스타일 가이드 by default
"당신이 작성한 코드를 관리할 사람이 당신 집 주소를 아는 정신병자라고
생각하고 코딩하라" - (John Woods, 1991)
R 스타일 가이드 - http://style.tidyverse.org/
파이썬 스타일 가이드 - https://www.python.org/dev/peps/pep-0008/
데이터 과학자의 시급이 컴퓨터의 시급보다 비싸다
일단은 코드를 읽는 이를 위해 최적화
코드 리뷰
기계를 위한 최적화는 나중에
Don't Optimize Until You Have to
기계가 아니라, 읽는 이를 위해 최적화하라
https://atom.io/packages/linter-pylama
가장 좋은 코드는?
https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html
pipe %>%
https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html
RDBMS, Spark 에 저장된 데이터에도 사용 가능
https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html
3. 발뺌형 - "헉, 어떻게 이 결과가 나왔었지?"
실험/리포트 결과가 재현이 안된다
해결책: 재현가능성 When Necessary
재현가능 방법 1: R 마크다운
http://rmarkdown.rstudio.com/
(한글깨짐 ㅠㅠ)
재현가능 방법 2: 도커
개발 환경 == 테스트 환경 == 프로덕션 환경
데이터 과학 환경 == 테스트 환경 == 프로덕션 환경
R 도커 이미지
https://hub.docker.com/u/rocker/
https://github.com/rocker-org/rocker-versioned
4. 단순반복형 - "과도한 복사-붙여넣기"
https://www.quora.com/What-is-the-importance-of-ctrl-c-
+-ctrl-v-for-programmers
팀/개인 라이브러리를 안만들고 잘라붙이기로 해결한다.
라이브러리를 사용하여 짧게 할 수 있는 일을 길게 한다.
A. 라이브러리를 사용한 빠른 프로토타입
B. 반복되는 작업은 라이브러리화
3번 이상 사용되는 코드는 라이브러리/패키지화를 고려해야
실험 인프라에 투자 - 나중에 다양한 실험을 빠르게 할 수 있도록
해결책: 라이브러리화
빠른 프로토타입 - flexdashboard
https://jjallaire.shinyapps.io/shiny-crandash/
(~300줄)
빠른 프로토타입 - leaflet
https://rstudio.github.io/leaflet/choropleths.html
빠른 프로토타입 - DT
https://rstudio.github.io/DT/
빠른 프로토타입 - keras 딥러닝
https://keras.rstudio.com/
MNIST
notMNIST
http://yaroslavvb.blogspot.kr/2011/09/notmnist-dataset.html
반복되는 작업은 라이브러리화
데이터 취득
데이터 가공
탐색적
데이터 분석
문제 정의
데이터 정의
확증적
데이터 분석
자동화리포트
dplyr*
tidyr*
stringr
readr*
tidyr*
ggplot2*
rmarkdown
flexdashboard
DT
testthat
logging
도커
파이썬
caret
* = tidyverse
"How R helps Airbnb make the most of its data"
Community - R 교육
Tooling - 어떻게 하면 팀 라이브러리
개발에 참여하게 할 수 있을까?
https://peerj.com/preprints/3182/
5. 토끼굴형 - "... 이런 설정을 해 보았습니다 ..."
https://www.thirdcoastfestival.org/
explore/feature/rabbit-hole-show
대다수의 시간을 분석의 목적과 무관한 탐색에 사용한다.
지나친 완벽주의
데드라인의 개념이 없다.
분석 기간이 너무 길다.
애자일 방법론 - 2주 스프린트 - (거의) 매일 짧은 싱크업/피드백
Define "Done" (결과물은 리포트인가? 프로토타입인가? 둘 다인가?).
Define "Metrics/KPI" (효과적 지표를 결정하고 계속 측정해야)
투명한 작업진척 공유. 불완전한 결과도 공유 (Expect Errors)
열린 결말을 위한 연구시간은 20% 이하로.
해결책: 진화적 반복 "Iterative" by default
https://blog.codinghorror.com/when-understanding-means-rewriting/
QA 와 리팩터링 (refactoring) 을 고려한다
JIRA
https://www.atlassian.com/software/jira
Phabricator
https://www.phacility.com/
비전문가에게 조리있게 분석결과를 전달하지 못한다.
리포트는 주로 R 코드 출력 결과 복사물과 다듬어지지 않은 파이썬 노트북 등이다.
6. 불통형 - "분석 결과요? 여기 R 출력입니다"
피드백 받기; 지식의 저주 피하기 (Get Feedback)
연습! (Practice, Practice, Practice)
최종 자료는 예쁘게 (Look is Important; Leverage Templates)
가능하면 후원자/소통 전문가를 찾으라. (Find Champion / Advocate)
해결책: 소통 훈련 by Default
https://brunch.co.kr/@blade31/26
https://www.goodreads.com/book/sh
ow/20821371-the-sense-of-style
7. 마피아형 - "오른손이 하는 일을 왼손이 모르게..."
코드와 분석결과를 공유하지 않는 팀
코드와 분석결과를 공유하지 않는 개인
해결책: 개방성 Open by Default
데이터 과학자가 코드/문서를 공개하지 않는 이유는?
깃 in Public by default
구글독 Public by default
근본적으로 조직 문화의 문제 - 리더십 역할이 중요하다
1.박하사탕형
2. 난독증 유발형
3. 발뺌형
4. 단순반복형
5. 토끼굴형
6. 불통형
7. 마피아형
1.박하사탕형
(깃 코드관리)
2. 난독증 유발형
(스타일 가이드)
3. 발뺌형
(재현가능)
4. 단순반복형
(라이브러리화/사용)
좋은 디폴트
5. 토끼굴형
(진화적 반복/애자일)
6. 불통형
(소통 연습)
7. 마피아형
(개방성)
7. Open
5. Iterative / Agile
1. Codebase in Git
2. Readability via Style
Guide
3. Reproducibility
4. Efficient Use of
Libraries
좋은 디폴트
6. Communication
C
S
R L I
C
O
여러분의 팀의 현재 점수는?
2 = 항상 하고
있다
1 = 가끔 하고
있다
0 = 못하고 있다 점수
1. 깃 코드관리
2. 가독성
3. 재현 가능성
4. 라이브러리
5. 진화적 반복
6. 소통 훈련
7. 개방성
합계
여러분의 팀의 현재 점수는?
2 = 항상 하고
있다
1 = 가끔 하고
있다
0 = 못하고 있다 점수
1. 깃 코드관리 X 2
2. 가독성 X 2
3. 재현 가능성 X 1
4. 라이브러리 X 0
5. 진화적 반복 X 1
6. 소통 훈련 X 0
7. 개방성 X 1
합계 7
요약
● 데이터 과학의 이론과 툴/코딩
● 데이터 과학자의 스트레스와 야근의 원인 7유형
a. 박하사탕형, 난독증 유발자, 발뺌형, 단순반복형, 토끼굴형, 불통형, 마피아형
● 데이터 과학자의 스트레스와 야근을 줄이는 팁:
a. 박하사탕형 -> 깃 코드관리 Codebase in Git (C)
b. 난독증 유발자 -> 가독성 Readability, Style Guide (S)
c. 발뺌형 -> 재현 가능성 Reproducible (R)
d. 단순반복형 -> 라이브러리 Efficient Use of Libraries (L)
e. 토끼굴형 -> 진화적 반복 Iterative (I)
f. 불통형 -> 소통 훈련 Communication (C)
g. 마피아형 -> 개방성 Open (O)
Q&A

More Related Content

What's hot

The Timeless Way of Programming between Wiki and XP
The Timeless Way of Programming between Wiki and XPThe Timeless Way of Programming between Wiki and XP
The Timeless Way of Programming between Wiki and XPKoichiro Eto
 
Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...
Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...
Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...DATAVERSITY
 
Salesforce App Cloud First Call Deck
Salesforce App Cloud First Call DeckSalesforce App Cloud First Call Deck
Salesforce App Cloud First Call DeckSalesforce Partners
 
Account Management Roadmap
Account Management RoadmapAccount Management Roadmap
Account Management Roadmapbnemecek
 
My favorite quotes from who moved my cheese quotes by Vatsala Shukla
My favorite quotes from who moved my cheese quotes by Vatsala Shukla My favorite quotes from who moved my cheese quotes by Vatsala Shukla
My favorite quotes from who moved my cheese quotes by Vatsala Shukla Vatsala Shukla
 
DataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de KreukDataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de KreukErwin de Kreuk
 
Jak ogarnąć analitykę w 2023?
Jak ogarnąć analitykę w 2023?Jak ogarnąć analitykę w 2023?
Jak ogarnąć analitykę w 2023?Karol Dziedzic
 
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?Yoshitaka Kawashima
 
UB Ventures SaaS Annual Report 2021
UB Ventures SaaS Annual Report 2021UB Ventures SaaS Annual Report 2021
UB Ventures SaaS Annual Report 2021UB Ventures
 
Forrester Webinar - Individualization Versus Personalization
Forrester Webinar - Individualization Versus PersonalizationForrester Webinar - Individualization Versus Personalization
Forrester Webinar - Individualization Versus PersonalizationZAPinfo.io
 
Lake Database Database Template Map Data in Azure Synapse Analytics
Lake Database  Database Template  Map Data in Azure Synapse AnalyticsLake Database  Database Template  Map Data in Azure Synapse Analytics
Lake Database Database Template Map Data in Azure Synapse AnalyticsErwin de Kreuk
 
SQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアにSQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアにTomotsune Murata
 
Recency/Frequency and Predictive Analytics in the gaming industry
Recency/Frequency and Predictive Analytics in the gaming industryRecency/Frequency and Predictive Analytics in the gaming industry
Recency/Frequency and Predictive Analytics in the gaming industryQualex Asia
 
SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...
SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...
SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...Taste
 
Salesforce Marketing cloud
Salesforce Marketing cloudSalesforce Marketing cloud
Salesforce Marketing cloudCloud Analogy
 

What's hot (20)

The Timeless Way of Programming between Wiki and XP
The Timeless Way of Programming between Wiki and XPThe Timeless Way of Programming between Wiki and XP
The Timeless Way of Programming between Wiki and XP
 
Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...
Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...
Data Architecture Strategies: Artificial Intelligence - Real-World Applicatio...
 
Salesforce App Cloud First Call Deck
Salesforce App Cloud First Call DeckSalesforce App Cloud First Call Deck
Salesforce App Cloud First Call Deck
 
Account Management Roadmap
Account Management RoadmapAccount Management Roadmap
Account Management Roadmap
 
基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304基本設計+詳細設計の書き方 社内勉強会0304
基本設計+詳細設計の書き方 社内勉強会0304
 
My favorite quotes from who moved my cheese quotes by Vatsala Shukla
My favorite quotes from who moved my cheese quotes by Vatsala Shukla My favorite quotes from who moved my cheese quotes by Vatsala Shukla
My favorite quotes from who moved my cheese quotes by Vatsala Shukla
 
DataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de KreukDataMinds 2022 Azure Purview Erwin de Kreuk
DataMinds 2022 Azure Purview Erwin de Kreuk
 
Org Merge Best Practices
Org Merge Best PracticesOrg Merge Best Practices
Org Merge Best Practices
 
Jak ogarnąć analitykę w 2023?
Jak ogarnąć analitykę w 2023?Jak ogarnąć analitykę w 2023?
Jak ogarnąć analitykę w 2023?
 
Beyond Custom Metadata Types
Beyond Custom Metadata TypesBeyond Custom Metadata Types
Beyond Custom Metadata Types
 
TDDBC お題
TDDBC お題TDDBC お題
TDDBC お題
 
なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?なぜデータモデリングが重要なのか?
なぜデータモデリングが重要なのか?
 
UB Ventures SaaS Annual Report 2021
UB Ventures SaaS Annual Report 2021UB Ventures SaaS Annual Report 2021
UB Ventures SaaS Annual Report 2021
 
Forrester Webinar - Individualization Versus Personalization
Forrester Webinar - Individualization Versus PersonalizationForrester Webinar - Individualization Versus Personalization
Forrester Webinar - Individualization Versus Personalization
 
Lake Database Database Template Map Data in Azure Synapse Analytics
Lake Database  Database Template  Map Data in Azure Synapse AnalyticsLake Database  Database Template  Map Data in Azure Synapse Analytics
Lake Database Database Template Map Data in Azure Synapse Analytics
 
SQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアにSQLiteを手軽に・セキュアに
SQLiteを手軽に・セキュアに
 
Data Mesh
Data MeshData Mesh
Data Mesh
 
Recency/Frequency and Predictive Analytics in the gaming industry
Recency/Frequency and Predictive Analytics in the gaming industryRecency/Frequency and Predictive Analytics in the gaming industry
Recency/Frequency and Predictive Analytics in the gaming industry
 
SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...
SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...
SEO Restart 2023: Pavel Ungr - Transformace tvorby a optimalizace obsahu pomo...
 
Salesforce Marketing cloud
Salesforce Marketing cloudSalesforce Marketing cloud
Salesforce Marketing cloud
 

Similar to 효율적 데이터 과학을 위한 7가지 팁

1.introduction(epoch#2)
1.introduction(epoch#2)1.introduction(epoch#2)
1.introduction(epoch#2)Haesun Park
 
Week1 ot
Week1 otWeek1 ot
Week1 otEun Yu
 
UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑Dongsik Yang
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindDataya Nolja
 
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”
데이터분석의 길 3   “r 워크플로우 (스토리텔링)”데이터분석의 길 3   “r 워크플로우 (스토리텔링)”
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”Jaimie Kwon (권재명)
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyDataya Nolja
 
[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자neuroassociates
 
코딩은 문제해결이다 (도구로써 파이썬)
코딩은 문제해결이다 (도구로써 파이썬)코딩은 문제해결이다 (도구로써 파이썬)
코딩은 문제해결이다 (도구로써 파이썬)HYEONGNAM LEE
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루Jaimie Kwon (권재명)
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScienceNAVER D2
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
졸업후 취업까지.ssul
졸업후 취업까지.ssul졸업후 취업까지.ssul
졸업후 취업까지.ssul승표 홍
 
소프트웨어교육 운영지침(2015)_교육부
소프트웨어교육 운영지침(2015)_교육부소프트웨어교육 운영지침(2015)_교육부
소프트웨어교육 운영지침(2015)_교육부sam Cyberspace
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다Evion Kim
 
『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기
『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기
『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기복연 이
 
『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기복연 이
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료neuroassociates
 
『이펙티브 디버깅』 맛보기
『이펙티브 디버깅』 맛보기『이펙티브 디버깅』 맛보기
『이펙티브 디버깅』 맛보기복연 이
 

Similar to 효율적 데이터 과학을 위한 7가지 팁 (20)

1.introduction(epoch#2)
1.introduction(epoch#2)1.introduction(epoch#2)
1.introduction(epoch#2)
 
Week1 ot
Week1 otWeek1 ot
Week1 ot
 
Rdata 180320
Rdata 180320Rdata 180320
Rdata 180320
 
UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑UI/UX 개선을 위한 빠른 프로토타이핑
UI/UX 개선을 위한 빠른 프로토타이핑
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in Mind
 
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”
데이터분석의 길 3   “r 워크플로우 (스토리텔링)”데이터분석의 길 3   “r 워크플로우 (스토리텔링)”
데이터분석의 길 3 “r 워크플로우 (스토리텔링)”
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its Difficulty
 
1.introduction
1.introduction1.introduction
1.introduction
 
[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자
 
코딩은 문제해결이다 (도구로써 파이썬)
코딩은 문제해결이다 (도구로써 파이썬)코딩은 문제해결이다 (도구로써 파이썬)
코딩은 문제해결이다 (도구로써 파이썬)
 
실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루실리콘 밸리 데이터 사이언티스트의 하루
실리콘 밸리 데이터 사이언티스트의 하루
 
[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience[2A7]Linkedin'sDataScienceWhyIsItScience
[2A7]Linkedin'sDataScienceWhyIsItScience
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
졸업후 취업까지.ssul
졸업후 취업까지.ssul졸업후 취업까지.ssul
졸업후 취업까지.ssul
 
소프트웨어교육 운영지침(2015)_교육부
소프트웨어교육 운영지침(2015)_교육부소프트웨어교육 운영지침(2015)_교육부
소프트웨어교육 운영지침(2015)_교육부
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
 
『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기
『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기
『9가지 사례로 익히는 고급 스파크 분석』 - 맛보기
 
『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기『파이썬 라이브러리를 활용한 머신러닝』 맛보기
『파이썬 라이브러리를 활용한 머신러닝』 맛보기
 
Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료Bloter 넥스트 저널리즘 스쿨 강의자료
Bloter 넥스트 저널리즘 스쿨 강의자료
 
『이펙티브 디버깅』 맛보기
『이펙티브 디버깅』 맛보기『이펙티브 디버깅』 맛보기
『이펙티브 디버깅』 맛보기
 

효율적 데이터 과학을 위한 7가지 팁

  • 1. 효율적 데이터 과학을 위한 7가지 팁 2017년 10월 권재명 https://dataninja.me/
  • 2. 데이터 분석이 취미이자 직업인 통계학자 출신의 실리콘밸리 데이터 과학자. 1972년에 서울에서 태어났다. 어려서부터 컴퓨터를 좋아해서 전산학을 공부하고자 서울대학교 계산통계학과에 입학했다 (1990년). 하지만 대학 2학년 때 들은 통계수업에 매료되어 통계를 전공하기로 결심하여 서울대 통계학 학사(1994년), 석사(1996년)를 거쳐 버클리대학교 (UC Berkeley)에서 박사(2000년) 학위를 받았다. 졸업 후 같은 대학에서 교통 데이터 분석 연구원으로 활동했고, 이후 이스트베이 캘리포니아주립대학교 (Cal State East Bay)에서 통계학과 조교수를 지냈다. 2009년부터 지금까지 실리콘밸리의 인터넷, 테크 기업에서 데이터 과학자로, 그리고 분석 팀 리더로 활동 중이다. 최근 "따라 하며 배우는 데이터 과학"(2017)를 출간했다. https://dataninja.me/
  • 3. 데이터 과학 이론은 --- 변하고, 툴은 --- 변한다
  • 4. 데이터 과학 이론은 천천히 변하고, 툴은 빨리 변한다
  • 5. 미적분학: 뉴튼과 라이프니츠 (17세기) 선형대수 / 행렬연산 ● "determinant" - 라이프니츠 (17세기) ● "matrix" - J.J.Sylvester (1848) ● "matrix algebra" - Arthur Cayley (1855) 확률론 ● 중심극한 정리 - 라플라스 + (1778) ● 베이즈 확률론 (1763) 이론은 천천히 변하고, 툴은 빨리 변한다: 수학-확률 https://en.wikipedia.org/wiki/History_of_calculus
  • 6. 최소제곱법 - Carl Friedrich Gauss + (1795) 회귀분석 - Francis Galton + (19세기 후반) MLE - R.A.피셔 + (20세기 초) 이론은 천천히 변하고, 툴은 빨리 변한다: 확률-통계
  • 7. 랜덤 포레스트 - L. Breiman+ (~2001) 부스팅 - J. Friedman+ (~1999) 라쏘+ - J. Friedman+ (~2008) 이론은 천천히 변하고, 툴은 빨리 변한다: 통계-머신러닝
  • 8. 이론은 천천히 변하고, 툴은 빨리 변한다: 딥러닝 https://beamandrew.github.io/deeplearning/2017/02/23/deep_learning_101_part1.html
  • 9. 이론은 천천히 변하고, 툴은 빨리 변한다: OS, 랭귀지 유닉스 - 1970년대 C - 커니건&리치 (1972) SQL - (1979) 자바 - James Gosling (1995) 파이썬 - Guido van Rossum (1989) S - Chambers, Becker, Wilks of Bell Labs (1988) R - R. Ihaka and R. Gentleman (2000)
  • 10. R스튜디오 파이썬 libraries ● scikit learn (2011) ● tensorflow, keras R libraries ● tidyverse ● rmarkdown ● htmlwidgets 이론은 천천히 변하고, 툴은 빨리 변한다: 패키지
  • 11. 컴퓨팅 + 데이터 이론은 천천히 변하고, 툴은 빨리 변한다: 딥러닝 https://www.matroid.com/scaledml/2017/jeff.pdf
  • 12. 컴퓨팅 + 데이터 따름정리 1. 데이터 과학 적용 영역의 폭발적 증가 따름정리 2. 데이터 과학자 수요 폭발적 증가 이론은 천천히 변하고, 툴은 빨리 변한다: 딥러닝 https://www.matroid.com/scaledml/2017/jeff.pdf
  • 13. 이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, .... 데이터 과학 = 이론
  • 14. 이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, .... 툴 = 코딩, R/파이썬, 패키지, ... 데이터 과학 = 이론 + 툴
  • 15. 이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, .... 툴 = 코딩, R/파이썬, 패키지, ... 적용 = 문제 이해, 해결, 소통 ... 능력 데이터 과학 = 이론 + 툴 + 적용
  • 16. 이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, .... 툴 = 코딩, R/파이썬, 패키지, ... 적용 = 문제 이해, 해결, 소통 ... 능력 데이터 과학 = 이론 + 툴 + 적용 (+경험)
  • 17. 이론 = 수학, 확률, 통계, 머신러닝, 딥러닝, .... 툴 = 코딩, R/파이썬, 패키지, ... 적용 = 문제 이해, 해결, 소통 ... 능력 이상적인 데이터 과학자는 셋을 다 갖춘 사람 데이터 과학 = 이론 + 툴 + 적용 (+경험)
  • 18. 데이터 취득 데이터 가공 탐색적 데이터 분석 문제 정의 데이터 정의 확증적 데이터 분석 자동화리포트 데이터 과학 프로세스
  • 19. 데이터 취득 데이터 가공 탐색적 데이터 분석 문제 정의 데이터 정의 확증적 데이터 분석 자동화리포트 데이터 과학 프로세스 in R dplyr* tidyr* stringr readr* tidyr* ggplot2* rmarkdown flexdashboard DT testthat logging 도커 파이썬 caret * = tidyverse
  • 20. 데이터 과학자의 스트레스와 야근의 원인? 이상적인 데이터 과학자도 항상 효율적인 것은 아니다 (10초간 생각해보기)
  • 21. 데이터 과학자의 스트레스와 야근의 원인? 이상적인 데이터 과학자도 항상 효율적인 것은 아니다 (10초간 생각해보기) ("이론이 부족하다"는 제외)
  • 22. 1. 박하사탕 증후군 - "나 돌아갈래!" "(컴퓨터 크래시) 지난 일주일간 작업한 내 코드는? ㅠㅠ" "분석 코드 필요하다고? 이멜로 보내줄께" "(분석 안돌아감) 3일전에 이 코드는 어땠더라?" http://blog.daum.net/ps212d/114
  • 23. 해결책: 깃을 사용한 분석 코드 관리 git init / git clone git add git commit git push / git pull
  • 24. 분석 프로젝트 시작은 항상 git clone 으로 모든 코드/텍스트를 git add 매일 git commit / git push 깃을 사용한 분석 코드 관리 by Default
  • 26.
  • 27.
  • 32. 남이 작성한 읽기 어려운 코드 내가 (3달 전) 작성한 읽기 어려운 코드 2. 난독증 유발형 - "이 코드는 뭘 하는 코드일까?" http://darai17.tistory.com/44
  • 34. 전문 프로그래머의 하루 일과: 새로운 코드 작성 5% 기존 코드 고치기 25% 기존 코드 이해하기 70% https://blogs.msdn.microsoft.com/peterhal/2006/01/04/what-do-programmers-really-do-anyway- aka-part-2-of-the-yardstick-saga/
  • 35. 해결책: 스타일 가이드 by default "당신이 작성한 코드를 관리할 사람이 당신 집 주소를 아는 정신병자라고 생각하고 코딩하라" - (John Woods, 1991) R 스타일 가이드 - http://style.tidyverse.org/ 파이썬 스타일 가이드 - https://www.python.org/dev/peps/pep-0008/
  • 36. 데이터 과학자의 시급이 컴퓨터의 시급보다 비싸다 일단은 코드를 읽는 이를 위해 최적화 코드 리뷰 기계를 위한 최적화는 나중에 Don't Optimize Until You Have to 기계가 아니라, 읽는 이를 위해 최적화하라
  • 40. RDBMS, Spark 에 저장된 데이터에도 사용 가능 https://cran.r-project.org/web/packages/dplyr/vignettes/dplyr.html
  • 41.
  • 42. 3. 발뺌형 - "헉, 어떻게 이 결과가 나왔었지?" 실험/리포트 결과가 재현이 안된다
  • 44. 재현가능 방법 1: R 마크다운 http://rmarkdown.rstudio.com/
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 52. 재현가능 방법 2: 도커 개발 환경 == 테스트 환경 == 프로덕션 환경 데이터 과학 환경 == 테스트 환경 == 프로덕션 환경
  • 54.
  • 55.
  • 57.
  • 58. 4. 단순반복형 - "과도한 복사-붙여넣기" https://www.quora.com/What-is-the-importance-of-ctrl-c- +-ctrl-v-for-programmers 팀/개인 라이브러리를 안만들고 잘라붙이기로 해결한다. 라이브러리를 사용하여 짧게 할 수 있는 일을 길게 한다.
  • 59. A. 라이브러리를 사용한 빠른 프로토타입 B. 반복되는 작업은 라이브러리화 3번 이상 사용되는 코드는 라이브러리/패키지화를 고려해야 실험 인프라에 투자 - 나중에 다양한 실험을 빠르게 할 수 있도록 해결책: 라이브러리화
  • 60. 빠른 프로토타입 - flexdashboard https://jjallaire.shinyapps.io/shiny-crandash/ (~300줄)
  • 61. 빠른 프로토타입 - leaflet https://rstudio.github.io/leaflet/choropleths.html
  • 62. 빠른 프로토타입 - DT https://rstudio.github.io/DT/
  • 63. 빠른 프로토타입 - keras 딥러닝 https://keras.rstudio.com/
  • 64. MNIST
  • 66. 반복되는 작업은 라이브러리화 데이터 취득 데이터 가공 탐색적 데이터 분석 문제 정의 데이터 정의 확증적 데이터 분석 자동화리포트 dplyr* tidyr* stringr readr* tidyr* ggplot2* rmarkdown flexdashboard DT testthat logging 도커 파이썬 caret * = tidyverse
  • 67. "How R helps Airbnb make the most of its data" Community - R 교육 Tooling - 어떻게 하면 팀 라이브러리 개발에 참여하게 할 수 있을까? https://peerj.com/preprints/3182/
  • 68. 5. 토끼굴형 - "... 이런 설정을 해 보았습니다 ..." https://www.thirdcoastfestival.org/ explore/feature/rabbit-hole-show 대다수의 시간을 분석의 목적과 무관한 탐색에 사용한다. 지나친 완벽주의 데드라인의 개념이 없다. 분석 기간이 너무 길다.
  • 69. 애자일 방법론 - 2주 스프린트 - (거의) 매일 짧은 싱크업/피드백 Define "Done" (결과물은 리포트인가? 프로토타입인가? 둘 다인가?). Define "Metrics/KPI" (효과적 지표를 결정하고 계속 측정해야) 투명한 작업진척 공유. 불완전한 결과도 공유 (Expect Errors) 열린 결말을 위한 연구시간은 20% 이하로. 해결책: 진화적 반복 "Iterative" by default
  • 73. 비전문가에게 조리있게 분석결과를 전달하지 못한다. 리포트는 주로 R 코드 출력 결과 복사물과 다듬어지지 않은 파이썬 노트북 등이다. 6. 불통형 - "분석 결과요? 여기 R 출력입니다"
  • 74. 피드백 받기; 지식의 저주 피하기 (Get Feedback) 연습! (Practice, Practice, Practice) 최종 자료는 예쁘게 (Look is Important; Leverage Templates) 가능하면 후원자/소통 전문가를 찾으라. (Find Champion / Advocate) 해결책: 소통 훈련 by Default
  • 76. 7. 마피아형 - "오른손이 하는 일을 왼손이 모르게..." 코드와 분석결과를 공유하지 않는 팀 코드와 분석결과를 공유하지 않는 개인
  • 77. 해결책: 개방성 Open by Default 데이터 과학자가 코드/문서를 공개하지 않는 이유는? 깃 in Public by default 구글독 Public by default 근본적으로 조직 문화의 문제 - 리더십 역할이 중요하다
  • 78. 1.박하사탕형 2. 난독증 유발형 3. 발뺌형 4. 단순반복형 5. 토끼굴형 6. 불통형 7. 마피아형
  • 79. 1.박하사탕형 (깃 코드관리) 2. 난독증 유발형 (스타일 가이드) 3. 발뺌형 (재현가능) 4. 단순반복형 (라이브러리화/사용) 좋은 디폴트 5. 토끼굴형 (진화적 반복/애자일) 6. 불통형 (소통 연습) 7. 마피아형 (개방성)
  • 80. 7. Open 5. Iterative / Agile 1. Codebase in Git 2. Readability via Style Guide 3. Reproducibility 4. Efficient Use of Libraries 좋은 디폴트 6. Communication C S R L I C O
  • 81. 여러분의 팀의 현재 점수는? 2 = 항상 하고 있다 1 = 가끔 하고 있다 0 = 못하고 있다 점수 1. 깃 코드관리 2. 가독성 3. 재현 가능성 4. 라이브러리 5. 진화적 반복 6. 소통 훈련 7. 개방성 합계
  • 82. 여러분의 팀의 현재 점수는? 2 = 항상 하고 있다 1 = 가끔 하고 있다 0 = 못하고 있다 점수 1. 깃 코드관리 X 2 2. 가독성 X 2 3. 재현 가능성 X 1 4. 라이브러리 X 0 5. 진화적 반복 X 1 6. 소통 훈련 X 0 7. 개방성 X 1 합계 7
  • 83. 요약 ● 데이터 과학의 이론과 툴/코딩 ● 데이터 과학자의 스트레스와 야근의 원인 7유형 a. 박하사탕형, 난독증 유발자, 발뺌형, 단순반복형, 토끼굴형, 불통형, 마피아형 ● 데이터 과학자의 스트레스와 야근을 줄이는 팁: a. 박하사탕형 -> 깃 코드관리 Codebase in Git (C) b. 난독증 유발자 -> 가독성 Readability, Style Guide (S) c. 발뺌형 -> 재현 가능성 Reproducible (R) d. 단순반복형 -> 라이브러리 Efficient Use of Libraries (L) e. 토끼굴형 -> 진화적 반복 Iterative (I) f. 불통형 -> 소통 훈련 Communication (C) g. 마피아형 -> 개방성 Open (O)
  • 84. Q&A