기업과 공공기관 등 현실에서 맞닥뜨리는 숫자와 표 형식의 정형 데이터셋, 이제는 딥러닝으로 분석하고 풀어내보자. 실세계 정형 데이터셋을 정리하고 케라스 프레임워크로 딥러닝 모델을 훈련시켜, 웹 페이지와 페이스북 메신저용 챗봇으로 배포해본다. 테이블 데이터의 전처리와 가공부터 딥러닝 모델의 훈련, 구축, 배포까지, 케라스, 판다스, 사이킷런, 텐서플로2.0, 주피터 노트북을 활용한 엔드투엔드 프로젝트를 다룬다.
Contents
1장 정형 데이터를 딥러닝으로 다뤄야 하는 이유
__1.1 딥러닝 개요
__1.2 딥러닝의 장단점
__1.3 딥러닝 소프트웨어 스택
__1.4 정형 데이터와 비정형 데이터
__1.5 정형 데이터에 딥러닝을 사용하는 것에 대한 부정적 시각
__1.6 정형 데이터 문제로 딥러닝을 살펴보는 이유
__1.7 이 책에서 제공하는 코드 소개
__1.8 알아둘 내용
__1.9 정리
2장 판다스 데이터프레임과 책 전반에서 사용할 예제 소개
__2.1 다양한 종류의 딥러닝 개발 환경
__2.2 판다스를 살펴보기 위한 코드
__2.3 파이썬의 판다스 데이터프레임
__2.4 CSV 파일을 판다스 데이터프레임으로 만들기
__2.5 판다스를 사용한 SQL 등의 작업 수행
__2.6 주요 예제: 경전철의 지연 예측
__2.7 딥러닝을 배우는 데 현실의 데이터셋을 사용해야 하는 이유
__2.8 입력 데이터셋의 형식과 범위
__2.9 최종 목표: 엔드투엔드 솔루션
__2.10 솔루션 코드에 대한 상세한 설명
__2.11 개발 환경: 일반적인 환경과 딥러닝이 가능한 환경
__2.12 딥러닝을 배척하는 의견들
__2.13 딥러닝의 접근성이 좋아진 까닭
__2.14 딥러닝 모델 훈련 과정 맛보기
__2.15 정리
3장 데이터 준비 (1) 데이터의 탐색과 정리
__3.1 데이터 탐색 및 정리를 위한 코드
__3.2 파이썬에서 설정 파일을 사용하는 방법
__3.3 XLS 파일을 판다스 데이터프레임으로 변환하기
__3.4 판다스 데이터프레임을 피클링된 파일로 저장하여 세션 간 공유하기
__3.5 데이터 탐색
__3.6 데이터를 연속형, 범주형, 텍스트로 분류하기
__3.7 데이터셋에 내재된 문제 정돈: 누락된 데이터, 오류, 추측성 문제
__3.8 딥러닝에 필요한 데이터 규모의 산정
__3.9 정리
4장 데이터 준비 (2) 데이터 변형
4.1 데이터 준비와 변형을 위한 코드
__4.2 바르지 못한 값 다루기: Route
__4.3 유효하지 않은 값에 대해 하나의 대쳇값만 사용하는 이유
__4.4 올바르지 않은 값 다루기: Vehicle
__4.5 일관성 없는 값 다루기: Location
__4.6 공간 데이터 다루기: Location
__4.7 자료형 불일치 문제 다루기
__4.8 여전히 잘못된 데이터를 가진 행 다루기
__4.9 파생된 열 생성하기
__4.10 딥러닝 모델 훈련을 위해 비수치형 데이터를 수치형 데이터로 대체하는 방법
__4.11 엔드투엔드 솔루션 구성요소
__4.12 정리
__
5장 모델 준비와 구축
__5.1 데이터 누수 및 모델 훈련에 적절한 피처
__5.2 도메인 전문성과 데이터 누수를 방지하기 위한 최소 점수 검정
__5.3 경전철 지연 예측 문제에서 데이터 누수를 방지하는 방안
__5.4 케라스 모델 구축용 코드 살펴보기
__5.5 모델 훈련을 위한 데이터프레임의 단계별 리팩토링
__5.6 케라스 모델이 원하는 형식으로 데이터프레임 변형하기
__5.7 케라스와 텐서플로에 대한 간략한 역사
__5.8 텐서플로 1.x에서 2로 마이그레이션하기
__5.9 텐서플로와 파이토치
__5.10 케라스 딥러닝 모델의 구조
__5.11 데이터 구조가 케라스 모델을 정의하는 방식
__5.12 임베딩 계층의 능력
__5.13 데이터 구조에 따라 자동으로 케라스 모델을 구축하는 코드
__5.14 모델 탐색
__5.15 모델 파라미터
__5.16 정리
6장 모델 훈련과 실험 수행
__6.1 딥러닝 모델 훈련을 위한 코드
__6.2 딥러닝 모델의 훈련 과정 검토
__6.3 경전철 지연 예측용 모델의 최종 목표 검토
__6.4 훈련, 검증, 테스트용 데이터셋 선택
__6.5 초기 훈련 수행
__6.6 모델의 성능 측정
__6.7 케라스 콜백: 훈련 과정 중 최상의 결과를 얻는 방법
__6.8 여러 훈련 과정에서 동일한 결과를 얻는 방법
__6.9 훈련된 모델로 단일 샘플에 대해 예측하기
__6.10 훈련된 모델을 직접 저장하기
__6.11 일련의 실험을 통해 모델 성능 향상하기
__6.12 정리
7장 훈련된 모델로 추가적인 실험 수행
__7.1 더 많은 실험을 수행하기 위한 코드
__7.2 잘못된 값의 제거가 모델 성능을 개선할 수 있는지 검증
__7.3 범주형 열에 적용된 임베딩이 모델 성능을 개선할 수 있는지 검증
__7.4 딥러닝 모델과 XGBoost의 비교
__7.5 딥러닝 모델 개선을 위한 고려사항
__7.6 정리
8장 모델 배포
__8.1 모델 배포의 개요
__8.2 중요한 주제인 배포가 어려운 이유
__8.3 단일 샘플에 대한 모델의 검증 과정 되돌아보기
__8.4 웹 배포에서의 사용자 경험
__8.5 모델을 웹에 배포하기 위한 절차
__8.6 웹 배포의 이면
__8.7 페이스북 메신저 배포에서의 사용자 경험
__8.8 페이스북 메신저 배포의 이면
__8.9 라사에 대한 추가 배경지식
__8.10 모델을 라사로 페이스북 메신저에 배포하기 위한 절차
__8.11 파이프라인의 개요
__8.12 모델 훈련 단계의 파이프라인 정의
__8.13 예측 점수를 매기는 단계에 파이프라인 적용하기
__8.14 배포 후 모델을 유지/보수하는 방법
__8.15 정리
9장 향후 개선 방향
__9.1 지금까지 학습한 내용 되돌아보기
__9.2 경전철 지연 예측 프로젝트 개선을 위한 기본 아이디어
__9.3 상세한 위치 정보 추가 방안
__9.4 딥러닝 모델 훈련을 위한 날씨 데이터 추가 방안
__9.5 딥러닝 학습을 위한 계절 또는 시간대 데이터 파생 방안
__9.6 잘못된 값을 삭제하는 대신 결측값으로 대체하는 대안
__9.7 웹 배포용 모델을 외부에 공개하는 방법
__9.8 새로운 데이터셋에 대한 모델 구축 방안
__9.9 데이터셋 준비와 모델 훈련
__9.10 웹 모델 배포를 위한 코드 변경
__9.11 페이스북 메신저용 모델 배포
__9.12 다른 데이터셋에 적용하기 위한 사례 연구
__9.13 추가 학습 자료
__9.14 정리
부록 A 구글 코랩 가이드
__A.1 코랩이란
__A.2 코랩 세션에서 구글 드라이브 사용하기
__A.3 제공되는 저장소의 노트북을 코랩에서 실행하기
__A.4 코랩과 페이퍼스페이스의 장단점
Author
마크 라이언,박찬성
캐나다 토론토에 위치한 인택트(Intact)라는 보험사의 데이터 과학 매니저다. 머신러닝 부트캠프를 개최해 참가자가 실습을 통해 머신러닝의 세계를 경험하는 기회를 제공하는 등 머신러닝의 유용성을 공유하는 일에 열정적이다. 정형 데이터에 내재된 가치를 찾아내는 딥러닝의 잠재력, 그리고 챗봇과 자율 주행 자동차의 가능성에 관심이 많다. 워털루대학교에서 수학 학사학위를, 토론토대학교에서 컴퓨터 과학 석사학위를 받았다.
캐나다 토론토에 위치한 인택트(Intact)라는 보험사의 데이터 과학 매니저다. 머신러닝 부트캠프를 개최해 참가자가 실습을 통해 머신러닝의 세계를 경험하는 기회를 제공하는 등 머신러닝의 유용성을 공유하는 일에 열정적이다. 정형 데이터에 내재된 가치를 찾아내는 딥러닝의 잠재력, 그리고 챗봇과 자율 주행 자동차의 가능성에 관심이 많다. 워털루대학교에서 수학 학사학위를, 토론토대학교에서 컴퓨터 과학 석사학위를 받았다.