데이터 과학자가 알아야 하는 거의 모든 것
프로그래밍 경험은 많지만 통계나 데이터 분석을 잘 모르거나, 반대로 이론은 잘 알지만 실제로 데이터를 다루는 프로그래밍 경험이 없다면 데이터 과학을 어떻게 공부해야 할지 막막하기 마련입니다.
이 책은 데이터 과학자의 실무에 필요한 컴퓨터 공학 및 프로그래밍을 자세히 소개합니다. 또 널리 사용하는 머신러닝 알고리즘에 대한 직관적 설명, 수학적 배경, 실제 사례를 다룹니다. 데이터 과학에서 필수인 시각화 방법과 도구, 데이터를 해석하는 데 필요한 확률과 통계도 다룹니다. 마지막으로 데이터 과학 업무 결과를 정리하고 소통하는 노하우를 소개합니다.
이 책은 데이터 과학자가 알아야 하는 내용을 빠르고 체계적으로 전달하는 최고의 안내서입니다.
★ 이 책에서 다루는 내용
데이터 과학 분야에서 필요한 다양한 능력과 기술을 책 한 권에 모두 담았습니다. 당장 해결해야 하는 문제가 있어서 빠르게 필요한 지식을 습득해야 하는 경우나, 체계적으로 데이터 과학을 배워 데이터 과학자가 되길 희망하는 경우에 이 책이 도움이 될 겁니다.
이 책은 다음과 같은 내용을 다룹니다.
- 파이썬과 각종 파이썬 라이브러리 예제 코드 수록
- 빅데이터의 장단점 및 사용 방법 소개
- 각종 알고리즘의 직관적인 해설
- 현업에서 볼 수 있는 다양한 사례 연구
- 데이터셋 분석, 시간 관리, 업무 계획, 필요한 지식에 대한 실용적인 조언
이 책은 총 3부로 이루어져 있으며, 부별 내용은 다음과 같습니다.
[1부_ 데이터 과학 필수 요소]
현업에서 분야를 막론하고 거의 모든 경우에 사용하는 데이터 과학의 가장 핵심적인 내용을 다룹니다. 여기서 다루는 내용은 꼭 데이터 과학자가 아니더라도 간단한 데이터 과학 지식이 필요한 사람들이라면 아주 유용하게 쓸 수 있는 기법입니다.
[2부_ 데이터 과학 확장팩]
1부와 마찬가지로 데이터 과학의 핵심 내용을 다루지만 더 심도 있는 기법을 소개합니다. 예를 들어 군집화 알고리즘은 현업에서 자주 사용되기 때문에 1부에서 다뤄도 될 법한 주제지만 여기서 다룹니다. 반면 자연어 처리같이 특정 분야에서만 주로 사용하는 주제도 같이 소개합니다. 데이터 과학자라면 2부까지는 확실하게 알아두어야 합니다.
[3부_ 데이터 과학 특수 분야]
꼭 알아야 하는 내용은 아니지만 알아두면 좋은 기법을 소개합니다. 여기서는 1, 2부에서 설명한 내용 중 일부를 골라 이론적 배경 등을 더 깊게 살펴봅니다. 그 외에도 자주 사용하지는 않지만 어쩌다 맞닥뜨릴 수 있는 내용도 다룹니다.
★ 이 책을 읽는 방법
이 책은 다음 세 가지 유형의 독자를 가정하고 썼습니다. 자신에게 맞는 방법으로 읽으시면 됩니다.
[데이터 과학의 기본기를 튼튼하게 다지고 싶은 독자]
이 책을 처음부터 끝까지 순서대로 읽기 바랍니다. 그러고 나면 곧바로 현업에서 데이터 과학을 활용할 수 있을 겁니다. 컴퓨터공학이나 수학의 기초를 갖추고 있는 독자라면 이미 알고 있는 내용도 조금 나옵니다.
[특정 주제를 알고자 하는 독자]
이 책은 각 장을 따로따로 읽어도 되도록 썼습니다. 급하게 찾아볼 내용이 있다면 필요한 장을 찾아서 읽으면 됩니다.
[프로젝트를 시작하는 독자]
데이터 과학 알고리즘을 구현하다 막히는 경우에는 이 책의 풍부한 예제 코드를 참고하기 바랍니다.
앨런 인공지능 연구소(Allen institute for artificial intelligence)에서 데이터 과학자로 종사 중입니다. 미국 스탠퍼드 대학교에서 수학과 물리학을 전공하고 워싱턴 대학교에서 응용수학 석사 학위를 받았습니다. 이후 카네기 멜런 대학교에서 컴퓨터공학으로 박사 과정을 밟다가 중퇴했습니다. 싱크빅 애널리틱스(Think Big Analytics)와 본인이 세운 홀리 애널리틱스(LLCHolly Analytics LLC)에서 다양한 분야에 빅데이터 컨설팅을 했습니다.
CHAPTER 1 데이터 과학 유니콘이 되자!
1.1 데이터 과학자는 단지 연봉이 높은 통계학자일 뿐이다?
1.2 왜 파이썬을 쓰나요?
1.3 한마디 더
[Part 1 데이터 과학 필수 요소]
CHAPTER 2 큰 그림으로 보는 데이터 과학
2.1 문제 파악
2.2 데이터 분석 및 이해 - 기초
2.3 데이터 분석 및 이해 - 전처리
2.4 데이터 분석 및 이해 - 데이터 탐험
2.5 특징값 추출
2.6 모델 수집 및 분석
2.7 결과 정리 및 발표
2.8 코드 배포
2.9 반복 작업
2.10 주요 용어
CHAPTER 3 프로그래밍 언어
3.1 왜 프로그래밍 언어를 사용해야 하나요? 다른 대안은 없나요?
3.2 데이터 과학에서 사용하는 프로그래밍 언어
3.3 파이썬 속성 코스
3.4 문자열 데이터
3.5 함수 정의하기
3.6 파이썬의 공학용 라이브러리
3.7 개발 환경 및 라이브러리 소개
3.8 파이썬 관련 문서 및 참고 자료
3.9 더 알아보기
3.10 주요 용어
CHAPTER 4 데이터 먼징 : 문자열 다루기, 정규표현식, 데이터 정리하기
4.1 생애 최악의 데이터셋
4.2 실수를 예방하는 방법
4.3 데이터 자체의 문제
4.4 데이터 형식 문제
4.5 데이터 형식 정리 예제
4.6 정규표현식
4.7 실제 현장 이야기
4.8 더 알아보기
4.9 주요 용어
CHAPTER 5 시각화와 대푯값
5.1 파이썬의 시각화 도구
5.2 아이리스 데이터셋
5.3 원형 차트
5.4 막대그래프
5.5 히스토그램
5.6 평균, 표준편차, 중간값, 백분위
5.7 상자그림
5.8 산포도
5.9 산포도와 로그 축
5.10 산포 행렬
5.11 히트맵
5.12 상관관계
5.13 안스콤 쿼텟 데이터셋과 대푯값의 한계
5.14 시계열 데이터
5.15 더 알아보기
5.16 주요 용어
CHAPTER 6 머신러닝 개론
6.1 역사적 맥락
6.2 지도학습과 비지도학습
6.3 학습 데이터, 시험 데이터, 과적합
6.4 더 알아보기
6.5 주요 용어
CHAPTER 7 특징값 추출
7.1 일반 특징값
7.2 데이터 표본 여러 개의 대푯값
7.3 복잡한 특징값
7.4 어떤 특징값을 예측할지 결정하기
CHAPTER 8 머신러닝과 분류
8.1 분류기란?
8.2 현실적인 고려사항
8.3 이진 분류와 다범주 분류
8.4 예제 코드
8.5 다양한 분류기의 특징
8.6 분류기 평가하기
8.7 분류 기준값 정하기
8.8 더 알아보기
8.9 주요 용어
CHAPTER 9 의사소통과 문서화
9.1 일반적인 원칙
9.2 슬라이드 작성
9.3 보고서 작성
9.4 발표하기
9.5 코드 문서 작성하기
9.6 더 알아보기
9.7 주요 용어
[Part 2 데이터 과학 확장팩]
CHAPTER 10 비지도학습 : 군집화와 차원 축소
10.1 고차원의 저주
10.2 아이겐페이스와 차원 축소 예제
10.3 주성분 분석
10.4 스크리 도표와 차원 이해하기
10.5 요인 분석
10.6 주성분 분석의 한계
10.7 군집화
10.8 더 알아보기
10.9 주요 용어
CHAPTER 11 회귀
11.1 당뇨 진행 상황 예측 예제
11.2 최소제곱법
11.3 비선형 커브피팅
11.4 커브피팅 평가 : R2과 상관관계
11.5 오차의 상관관계
11.6 선형 회귀
11.7 라소쏘 회귀와 특징값 선정
11.8 더 알아보기
11.9 주요 용어
CHAPTER 12 데이터 인코딩과 파일 형식
12.1 일반적인 데이터 형식
12.2 CSV 파일
12.3 JSON 파일
12.4 XML 파일
12.5 HTML 파일
12.6 Ta r 묶음 파일
12.7 Gzip 파일
12.8 Zip 파일
12.9 이미지 파일 형식
12.10 바이트 데이터
12.11 정수형
12.12 실수형
12.13 텍스트 데이터
12.14 더 알아보기
12.15 주요 용어
CHAPTER 13 빅데이터
13.1 빅데이터가 정확히 뭔가요?
13.2 하둡과 하둡 파일시스템
13.3 HDFS 사용하기
13.4 파이스파크 예제 코드
13.5 스파크 둘러보기
13.6 스파크 연산
13.7 파이스파크를 실행하는 두 가지 방법
13.8 스파크 설정하기
13.9 파이스파크 : 더 깊이 살펴보기
13.10 스파크 : 팁과 주의사항
13.11 맵리듀스 패러다임
13.12 성능 개선을 위한 고려사항
13.13 더 알아보기
13.14 주요 용어
CHAPTER 14 데이터베이스
14.1 관계형 데이터베이스와 MySQL
14.2 키-값 저장소
14.3 와이드 컬럼 저장소
14.4 문서 저장소
14.5 더 알아보기
14.6 주요 용어
CHAPTER 15 좋은 프로그래밍 습관 기르기
15.1 코딩 스타일
15.2 버전 관리와 깃
15.3 테스트 코드
15.4 테스트 주도 개발 방법론
15.5 애자일 방법론
15.6 더 알아보기
15.7 주요 용어
CHAPTER 16 자연어 처리
16.1 자연어 처리가 필요한 상황
16.2 언어와 통계
16.3 주식 관련 신문 기사의 감정 분석 예제
16.4 자연어 처리 소프트웨어 및 데이터셋
16.5 토큰화
16.6 BoW 특징값
16.7 단어 빈도와 문서 빈도 역수
16.8 n-그램
16.9 불용어
16.10 표제어 추출과 공통부분 추출
16.11 동의어 처리
16.12 품사 태깅
16.13 그 외 문제들
16.14 자연어 처리 심화과정
16.15 더 알아보기
16.16 주요 용어
CHAPTER 17 시계열 데이터 분석
17.1 위키피디아 조회수 예측 예제
17.2 시계열 데이터 분석 순서
17.3 시계열 데이터와 타임스탬프 데이터 비교
17.4 내삽법과 외삽법
17.5 신호 스무딩
17.6 간단한 데이터 전처리
17.7 추세와 주기성
17.8 윈도우 적용
17.9 시계열 데이터의 특징값 추출
17.10 특징값 추출 심화 과정
17.11 푸리에 분석
17.12 시계열 데이터와 특징값
17.13 더 알아보기
17.14 주요 용어
CHAPTER 18 확률
18.1 동전 던지기와 베르누이 확률변수
18.2 다트 던지기와 균등확률변수
18.3 균등분포와 유사난수
18.4 비이산 불연속 확률변수
18.5 표기법, 기댓값, 표준편차
18.6 종속성, 주변확률, 조건부확률
18.7 확률분포의 꼬리
18.8 이항분포
18.9 푸아송 분포
18.10 정규분포
18.11 다차원 정규분포
18.12 지수분포
18.13 로그 정규분포
18.14 엔트로피
18.15 더 알아보기
18.16 주요 용어
CHAPTER 19 통계
19.1 데이터 과학과 통계학
19.2 베이지언과 빈도론자의 비교
19.3 가설검정
19.4 다중 가설검정
19.5 매개변수 추정
19.6 t 검정
19.7 신뢰구간
19.8 베이지안 통계학
19.9 나이브 베이즈
19.10 베이지안 네트워크
19.11 선험적 확률 추정
19.12 더 알아보기
19.13 주요 용어
CHAPTER 20 프로그래밍 언어의 주요 개념
20.1 프로그래밍 방법론
20.2 컴파일과 인터프리팅
20.3 자료형 체계
20.4 더 알아보기
20.5 주요 용어
CHAPTER 21 알고리즘의 성능과 메모리 관리
21.1 예제 코드
21.2 알고리즘의 성능과 빅오표기법
21.3 정렬 알고리즘과 이진검색
21.4 평균복잡도와 분할상환분석
21.5 오버헤드 줄이기, 메모리 관리
21.6 팁 : 수치연산 라이브러리를 이용하자
21.7 팁 : 사용하지 않는 대용량 객체를 삭제한다
21.8 팁 : 가능하면 내장 함수를 사용한다
21.9 팁 : 불필요한 함수 호출을 자제한다
21.10 팁 : 덩치가 큰 객체는 가급적 새로 만들지 않는다
21.11 더 알아보기
21.12 주요 용어
[Part 3 데이터 과학 특수 분야]
CHAPTER 22 컴퓨터 메모리와 자료구조
22.1 가상 메모리
22.2 C 언어 예제
22.3 자료형과 배열
22.4 구조체
22.5 포인터, 스택, 힙
22.6 주요 자료구조
22.7 더 알아보기
22.8 주요 용어
CHAPTER 23 최대 우도 추정과 최적화
23.1 최대 우도 추정
23.2 커브피팅 예제
23.3 로지스틱 회귀 예제
23.4 최적화
23.5 경사 하강법과 볼록 최적화
23.6 볼록 최적화
23.7 확률 경사 하강법
23.8 더 알아보기
23.9 주요 용어
CHAPTER 24 고급 분류기
24.1 라이브러리 선정
24.2 딥러닝 기초
24.3 합성곱신경망
24.4 텐서
24.5 MNIST 숫자 필기 인식
24.6 순환신경망
24.7 베이지안 네트워크
24.8 학습 및 예측
24.9 마르코프 연쇄 몬테카를로 방법
24.10 파이엠시 예제
24.11 더 알아보기
24.12 주요 용어
CHAPTER 25 확률 과정
25.1 마르코프 연쇄
25.2 마르코프 연쇄의 종류
25.3 마르코프 연쇄 몬테카를로
25.4 은닉 마르코프 모델
25.5 비터비 알고리즘
25.6 랜덤워크
25.7 브라운 운동
25.8 ARMA 모델
25.9 연속 마르코프 과정
25.10 푸아송 과정
25.11 더 알아보기
25.12 주요 용어