[1부] 환경 설정
▣ 01장: 이론
소개
정의
___트윗으로 표현한 방법론
___애자일 데이터 과학 선언
폭포수 방식의 문제점
___연구 대 애플리케이션 개발
애자일 소프트웨어의 문제점
___최종 품질: 기술적 부채에 자금 대기
___폭포수 방식으로의 견인
데이터 과학 프로세스
___기대치 설정
______데이터 과학팀의 역할
___기회와 문제 인식
___변화 적응
프로세스 관련 참고사항
___코드 리뷰와 페어 프로그래밍
___애자일 환경: 엔지니어링 생산성
___대형 인쇄로 아이디어 현실화
▣ 02장: 애자일 도구
확장성 = 단순성
애자일 데이터 과학에서의 데이터 처리
로컬 환경 설정
___시스템 요구사항
___Vagrant 설정
___데이터 다운로드
EC2 환경 설정
___데이터 다운로드
코드 가져오기 및 실행
___코드 가져오기
___코드 실행
___주피터 노트북
도구 세트 둘러보기
___애자일 스택 요구사항
___파이썬 3
___JSON Lines와 파케이로 이벤트 직렬화
___데이터 수집
___스파크를 이용한 데이터 처리
___몽고DB로 데이터 게시하기
___아파치 카프카를 이용한 분산 스트림
___파이스파크 스트리밍을 사용해 스트림 처리하기
___scikit-learn과 스파크 MLib을 사용한 머신러닝
아파치 에어플로우를 이용한 스케줄링
___워크플로우에 반영
___경량 웹 애플리케이션
___데이터 표현
결론
▣ 03장: 데이터
항공 여행 데이터
___항공편 정시 운항 데이터
___데이터베이스
날씨 데이터
애자일 데이터 과학의 데이터 처리
___구조화 데이터 대 반구조화 데이터
SQL 대 NoSQL
___SQL
___NoSQL과 데이터 흐름 프로그래밍
___스파크: SQL + NoSQL
___NoSQL의 스키마
___데이터 직렬화
___진화하는 스키마에서 특징을 추출하고 나타내기
결론
[2부] 피라미드 오르기
▣ 04장: 레코드 수집 및 표시
종합하기
운항 데이터 집계 및 직렬화
운항 레코드 처리 및 게시
___몽고DB에 운항 레코드 게시하기
브라우저에 운항 레코드 보여 주기
___플라스크와 pymongo를 사용해 운항 데이터 서비스하기
___Jinja2로 HTML5 렌더링하기
애자일 체크 포인트
운항 데이터 목록 만들기
___몽고DB로 운항 데이터 목록 만들기
___페이지 매김 데이터
운항 검색
___인덱스 만들기
___엘라스틱서치에 운항 데이터 게시하기
___웹에서 운항 검색하기
결론
▣ 05장: 차트와 표로 데이터 시각화하기
차트 품질: 반복이 핵심이다
게시/장식 모델에서 데이터베이스 확장시키기
___첫 번째 양식
___두 번째 양식
___세 번째 양식
___양식 선택하기
계절성 탐색하기
___운항 편수 쿼리하고 보여 주기
메탈(항공기[개체]) 추출하기
___꼬리 번호 추출하기
___항공기 데이터 평가
데이터 보강
___웹 양식 역공학
___꼬리 번호 수집하기
___양식 제출 자동화
___HTML에서 데이터 추출
___보강된 데이터 평가
결론
▣ 06장: 보고서로 데이터 탐색하기
항공사(개체) 추출하기
___파이스파크를 사용해 항공기 그룹으로 항공사 정의하기
___몽고DB에서 항공사 데이터 쿼리하기
___플라스크에서 항공사 페이지 구축하기
___항공사 페이지로 돌아가는 링크 걸기
___전체 항공사 홈페이지 만들기
반구조화된 데이터의 온톨로지 관리하기
항공사 페이지 개선
___항공사 코드에 이름 추가
___위키피디아 내용을 포함시키기
___보강한 항공사 데이터를 몽고DB에 게시하기
___보강된 항공사 정보를 웹에서 보여 주기
항공기(개체) 조사하기
___SQL 서브 쿼리 대 데이터 흐름 프로그래밍
___서브 쿼리 없이 데이터 흐름 프로그래밍하기
___스파크 SQL의 서브 쿼리
___항공기 홈페이지 만들기
___항공기 페이지에 검색 기능 추가하기
___제조사 막대 차트 만들기
___제조사 막대 차트 반복
___개체 식별: 차트를 한 번 더 반복하기
___차트 업데이트하기
결론
▣ 07장: 예측
예측의 역할
무엇을 예측할 것인가?
예측 분석 소개
___예측하기
운항 지연 탐색
파이스파크로 특징 추출하기
scikit-learn으로 회귀 분석하기
___데이터 적재
___데이터 표본 추출
___결괏값 벡터화
___훈련 데이터 준비
___특징 벡터화
___희박 행렬 대 조밀 행렬
___실험 준비
___모델 훈련
___모델 테스트
___결론
스파크 MLib으로 분류기 구축하기
___훈련 데이터를 특정 스키마로 적재
___널 값 처리
___항공편 번호를 운항 경로로 대체하기
___분류 작업을 위해 연속 변수를 구간화하기
___pyspark.ml.feature를 사용한 특징 벡터화
___스파크 ML로 분류하기
___모델 평가
결론
▣ 08장: 예측 시스템 배포
웹 서비스로 scikit-learn 애플리케이션 배포하기
___scikit-learn 모델을 저장하고 적재하기
___예측을 제공하기 위한 기초 작업
___운항 지연 회귀 모델 API 만들기
___API 테스트하기
___API를 제품에 가져오기
에어플로우를 사용해 배치로 스파크 ML 애플리케이션 배포하기
___운영 환경에서 훈련 데이터 수집하기
___스파크 ML 모델을 훈련, 저장, 적재하기
___몽고DB에 예측 요청 생성하기
___몽고DB에서 예측 요청 가져오기
___스파크 ML을 사용해 배치로 예측 생성하기
___예측을 몽고DB에 저장하기
___배치로 수행된 예측 결과를 웹 애플리케이션에 표시
___아파치 에어플로우(인큐베이팅)로 작업 흐름 자동화하기
___결론
스파크 스트리밍을 통한 스파크 ML 배포
___운영 환경에서 훈련 데이터 수집하기
___스파크 ML 모델 훈련, 저장, 적재하기
___카프카에 예측 요청을 전송
___스파크 스트리밍에서 예측 만들기
___전체 시스템 테스트하기
결론
▣ 09장: 예측 개선
우리 예측의 문제점 해결하기
예측을 개선해야 할 때
예측 성능 개선
___탐색적 부착 방식: 무엇이 붙는지 확인하기
___실험을 위한 엄격한 지표를 수립하기
___특징으로서 시간
항공기 데이터 포함
___항공기 특징 추출
___항공기 특징을 분류 모델에 포함시키기
운항 시간 포함시키기
결론
[부록] 수동 설치
하둡 설치
스파크 설치
몽고 DB 설치
몽고DB 자바 드라이버 설치
mongo-hadoop 설치
___mongo-hadoop 빌드
___pymongo_spark 설치
엘라스틱서치 설치
Elasticsearch for Hadoop 설치
스파크 환경 설정
카프카 설치
scikit-learn 설치