서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
애자일 데이터 과학 2.0 (변화에 기민하게 반응하는 견고한 데이터 분석 애플리케이션 구축)
저자 : 러셀 저니
출판사 : 위키북스
출판년 : 2018
정가 : 28000, ISBN : 9791158390945
책소개
연구 활동을 유용한 분석 애플리케이션으로 전환하고자 하는 데이터 과학 팀이 성공하려면 올바른 도구뿐 아니라 올바른 접근 방식이 필요하다. 개정판 《애자일 데이터 과학 2.0》에서는 애자일 데이터 과학 개발 방법론을 활용해 파이썬(Python), 아파치 스파크(Apache Spark), 카프카(Kafka) 등의 도구로 데이터 애플리케이션을 구축하는 방법을 배우게 될 것이다.
이 책에서는 아파치 카프카와 아파치 스파크, 몽고DB, 엘라스틱서치(Elasticsearch), d3.js, scikit-learn, 아파치 에어플로우(Apache Airflow)를 이용해 분석 애플리케이션을 구축, 배포, 개선하는 데이터 플랫폼을 구성하는 방법을 보여준다. 데이터가 알려주는 것이 무엇인지에 따라 현재 진행 중인 분석 작업을 빠르게 변경하고, 데이터 과학 작업을 웹 애플리케이션으로 게시하며, 조직에 의미 있는 변화를 이끌어내는 반복적인 접근법을 배울 수 있을 것이다.
이 책에서 다루는 내용
* 데이터-가치 피라미드를 사용해 일련의 애자일 스프린트(agile sprint)를 거치며 데이터에서 가치를 창출
* 여러 데이터셋으로부터 통계 모델을 위한 특징을 추출
* 데이터를 차트로 시각화하고 대화형 리포트를 통해 다양한 측면 드러내기
* 기존 데이터를 사용해 분류와 회귀 방식으로 미래를 예측
* 예측을 행동으로 전환하기
* 프로젝트가 제대로 진행될 수 있도록 각 스프린트 후에 사용자로부터 피드백 받기
목차
[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 설치