딥러닝을 이용한 정형 데이터 분석 (비즈니스 가치 창출을 위한 숫자와 표 형식의 엔터프라이즈 데이터 분석과 예측)

딥러닝을 이용한 정형 데이터 분석 (비즈니스 가치 창출을 위한 숫자와 표 형식의 엔터프라이즈 데이터 분석과 예측)

$28.00
Description
기업과 공공기관 등 현실에서 맞닥뜨리는 숫자와 표 형식의 정형 데이터셋, 이제는 딥러닝으로 분석하고 풀어내보자. 실세계 정형 데이터셋을 정리하고 케라스 프레임워크로 딥러닝 모델을 훈련시켜, 웹 페이지와 페이스북 메신저용 챗봇으로 배포해본다. 테이블 데이터의 전처리와 가공부터 딥러닝 모델의 훈련, 구축, 배포까지, 케라스, 판다스, 사이킷런, 텐서플로2.0, 주피터 노트북을 활용한 엔드투엔드 프로젝트를 다룬다.
저자

마크라이언

(MarkRyan)
캐나다토론토에위치한인택트(Intact)라는보험사의데이터과학매니저다.머신러닝부트캠프를개최해참가자가실습을통해머신러닝의세계를경험하는기회를제공하는등머신러닝의유용성을공유하는일에열정적이다.정형데이터에내재된가치를찾아내는딥러닝의잠재력,그리고챗봇과자율주행자동차의가능성에관심이많다.워털루대학교에서수학학사학위를,토론토대학교에서컴퓨터과학석사학위를받았다.

목차

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.4CSV파일을판다스데이터프레임으로만들기
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.3XLS파일을판다스데이터프레임으로변환하기
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코랩과페이퍼스페이스의장단점

출판사 서평

대부분의데이터과학프로젝트가완성되기까지,데이터를정리해서모델이훈련할수있는형식으로준비하는데에절반이상의시간이투입된다는사실은모두가감추는불편한진실이다.하지만더나은방법도존재한다.정형데이터와관계형데이터베이스에최적화된딥러닝기법을사용하면,피처엔지니어링을치열하게수행하지않더라도분석과통찰을얻을수있다.데이터필터링,검증,정리작업은확줄이는한편,딥러닝성능을드높일수있는기술을이책에서배워보자.
이책에서는정형데이터와관계형데이터베이스에대한강력한데이터분석기법을알려준다.현실세계의토론토교통시스템데이터셋으로시작해보자.배포와성능모니터링등실제상용제품을만들때중요한고려사항을해결함은물론,정형데이터셋을딥러닝에맞게구성하는일이매우손쉬워질것이다.파이썬과머신러닝을이미알고있는독자라면기량을드높일좋은기회가될것이다.

|이책의구성|
1장‘정형데이터를딥러닝으로다뤄야하는이유’는고수준에서의딥러닝개념,정형데이터에딥러닝을적용하거나적용하지말아야하는이유를빠르게검토합니다.또한정형데이터가의미하는바도여기서설명합니다.
2장‘판다스데이터프레임과책전반에서사용할예제소개’는이책의예제코드를위한개발환경을설명합니다.정형데이터용파이썬라이브러리인판다스를소개하고,책의나머지부분에서다루게될경전철시스템의지연을예측하는예제의개요를살펴봅니다.즉경전철의지연을예측하는문제죠.2장의마지막에는딥러닝모델을학습시키는간단한예제를보여줌으로써,이후의장에서배우게될내용을빠르게맛보는기회를제공합니다.
3장‘데이터준비(1)데이터의탐색과정리’는경전철문제에대한데이터셋과데이터셋에내재된다양한문제를다루는방법을탐색합니다.또한딥러닝모델을훈련시키는데얼마만큼의데이터가필요한지에대해서도함께다룹니다.
4장‘데이터준비(2)데이터변형’은데이터셋에내재된추가적인문제를해결하는방법과,모든정리작업이완료된후에도잘못된값이남아있다면무엇을해야할지등의내용을다룹니다.또한비수치형데이터를딥러닝모델에사용하기위한준비과정도살펴봅니다.그리고처음부터끝까지의코드예제를요약하며마무리합니다.
5장‘모델준비와구축’은경전철지연예측문제를위한딥러닝모델을구축하는과정을다룹니다.그리고데이터누수(예측시사용할수없는데이터로모델을훈련시키는현상)문제와이문제를방지하는방법도함께살펴봅니다.또한딥러닝모델을구축하는코드를자세히살펴보고,모델의구조를분석하는다양한옵션도소개합니다.
6장‘모델훈련과실험수행’은모델을훈련시키고검증하기위한입력데이터셋의일부를고르는것부터,초기훈련을수행하고,훈련된모델의성능을개선하기위한여러가지실험을반복적으로수행하는것까지모델훈련에대한모든과정을설명합니다.
7장‘훈련된모델로추가적인실험수행’은6장에서소개된모델훈련의기법을확장하여,좀더심도있는세실험을추가적으로수행합니다.그중첫번째실험은4장의데이터정리(유효하지않은값이포함된기록삭제)가모델의성능을향상하기위한것이었음을증명합니다.그리고두번째실험은범주형열에학습된벡터(임베딩)를연관시키는것이성능향상에주는이점을보여줍니다.마지막세번째실험은딥러닝모델의성능과,딥러닝을사용하지않는유명한접근법중하나인XGBoost의성능을비교합니다.
8장‘모델배포’는훈련된딥러닝모델을외부세상에서유용하게사용될수있도록만드는방법을상세히다룹니다.우선훈련된모델을웹에배포하는간단한방식을살펴본뒤,그다음으로오픈소스챗봇프레임워크인라사(Rasa)를사용하여페이스북메신저로배포하는방식을알아봅니다.
9장‘향후개선방향’은지금까지책에서다룬내용을요약정리합니다.그런다음위치,날씨데이터를포함해모델의성능을개선하는데쓰일수있는추가적인데이터를살펴봅니다.그리고책에서제공된코드를완전히새로운정형데이터문제에적용하는방법을알아봅니다.마지막에는딥러닝과정형데이터라는주제를배울수있는추가적인책,강의,온라인자료의목록을소개합니다.
부록A‘구글코랩가이드’에서는책에서제공하는예제코드를코랩(Colab)이라는무료환경에서실행하는방법을다룹니다.

각장은바로직전장의내용을기반으로하기때문에,앞에서부터순서대로책을읽기를권장합니다.그리고이책을가장잘활용하는방법은제공되는코드를직접실행해보는것입니다.특히경전철지연예측문제에대한코드는꼭실행해보세요.마지막으로6,7장에서다루는실험과9장에서소개하는추가적인개선점을스스로연습해봄으로써,정형데이터에대한문제해결능력을길러보기바랍니다.

|이책의대상독자|
이책을최대한활용하려면주피터노트북환경에서의파이썬코딩에익숙해야만합니다.그리고로지스틱회귀,서포트벡터머신과같은딥러닝외의접근법과머신러닝에서표준적으로사용되는용어에도익숙한편이좋습니다.만약행과열로구성된표형식의데이터로작업을자주하는분이라면,이책에서소개한내용이여러분의실제업무에쉽게적용될수있다는사실을깨닫게될것입니다.

|예제코드활용과다운로드|
이책에서다루는예제코드는깃허브페이지(https://github.com/onlybooks/structured-data)에서내려받을수있습니다.3~8장에서다루는경전철지연예측문제에대한코드뿐만아니라,2장(판다스라이브러리,판다스와SQL간의관계를보임)과5장(케라스의순서형,함수형API사용법을보임)에서독립적인예제코드가제공됩니다.

-파이썬(버전3.7이상)
-판다스(Pandas)
-사이킷런(scikit-learn)
-케라스(Keras)
-텐서플로(TensorFlow2.x)

[베타리더한마디]
의료데이터중EMR등에서얻어지는정보는대부분정형데이터형태입니다.전통적으로정형데이터분석에는XGboost와같은머신러닝이주로사용되어왔는데,정형데이터에도딥러닝을적용하는방법에대해관심이많았습니다.이책은정형데이터의정제부터자세하게설명하며,독자가낯설어할만한용어와개념을친절히풀어주며데이터분석의흐름을제시해줍니다.입문단계에서접하기에좋은책이라고생각합니다.
-이수정/가톨릭대학교의료정보학교실연구원

딥러닝은보통이미지,텍스트,음성등의비정형데이터에좋은성능을내는것으로알려져있습니다.그래서기존에나온딥러닝서적은대부분비정형데이터를기반으로설명하기에정형데이터를다루는예제가좀더많았으면하는아쉬움이있었는데바로이책이그아쉬움을해결해줍니다.어려운수학공식이아니라코드단위설명을통해수학을잘모르더라도딥러닝API를통해그럴듯한딥러닝모델을구현해볼수있습니다.정형데이터를다룰때중요한핵심전처리과정에대한팁도얻을수있으며,딥러닝뿐만아니라머신러닝과비교하는설명도있어,여러모델을통해성능을개선해보는즐거움을찾을수있는책입니다.
-박조은/오늘코드데이터분석가

인공지능의시대라고하지만,중요한건인공지능자체가아니라고생각합니다.정말중요한건전반적인인프라,프로세스를탄탄히갖추고계속해서인공지능을통해가치를창출해내는것입니다.마치요리기술만갖췄다고해서좋은요릿집이될수없듯,그저성능좋은인공지능코드를만들어낼수있다고해서좋은인공지능이라고할순없을겁니다.이책은그런점에서,단순히성능에만집착하는것이아니라실제비즈니스가치를만들어내기위한고민을해볼수있는책입니다.
-송진영/빅인사이트데이터분석가

아마초급머신러닝엔지니어들이당면하는가장어려운문제중하나는데이터의전처리일것입니다.도메인지식과적절한가공기법은어느하나로손쉽게얻어지는것이아니니까요.특히우아하게정제된데이터셋만가지고머신러닝의기초를쌓았던(저를포함한적잖은)이들이실제데이터와맞닥뜨렸을때의생소함은이루표현할수없을것입니다.저자는그런독자들을위해자신의풍부한인사이트를공유합니다.이책에서다루는정형데이터셋인[경전철지연이력]은말그대로문제덩어리입니다.저자는맥가이버처럼한칼럼씩데이터를적절한형태로가공해가면서딥러닝모델을구축하고웹으로배포하는과정까지구체적으로,그리고흥미진진하게풀어냅니다.많은분들이이과정을통해비즈니스가치창출을위한딥러닝의전반적인프로세스와기본개념을깊이이해하시게되기를바랍니다.
-신명진/프리랜서

[옮긴이의말]
인공지능의가능성이급격히부상한2016년이래로,점점더인간의상상을초월하는능력을갖춘인공지능모델에대한연구가매일새롭게경신되고있습니다.이렇게사람의이목을집중시키는수많은연구와결과는이미지,영상,텍스트,오디오등비정형데이터에만기반한경우가대부분입니다.
하지만사람이매일생산하는데이터중큰부분은비정형데이터보다는정형데이터가차지하고있습니다.정형데이터자체만놓고봤을때는전통적인머신러닝기법만으로도유의미한예측능력을확보하는것이가능했습니다.물론딥러닝을적용하면조금더뛰어난결과를얻을수도있습니다.하지만앞으로정형데이터에딥러닝을고려해야만하는가장중요한이유가있습니다.비정형과정형데이터를모두결합해시너지를낼수있는기술이바로딥러닝이기때문입니다.한마디로비정형데이터와정형데이터를융합하여지금까지얻을수없던통찰을얻고,새로운방향성을만들어낼수있게됐다는것이죠.
이책은실전데이터셋을활용해그방법의기초를다질수있는기회를제공합니다.이책의가장큰장점은처음부터끝까지딥러닝모델로완전한서비스를만들어내는전과정을다룬다는점입니다.특히처음에는두서없는형태를띤데이터셋을판다스,사이킷런등의라이브러리로가공하는전처리작업,텐서플로/케라스라이브러리로손쉽게딥러닝모델을정의하고훈련시키는작업,플라스크를통한단순웹을포함해라사(Rasa)와페이스북메신저로모델을배포해실제사용자와상호작용하는방법을다룹니다.
머신러닝으로가치를창출할수있는가장좋은방법은처음부터끝까지의엔드투엔드과정을항상머릿속에새긴채각단계를완성해나가는것입니다.사실상여러과정이복잡하게얽혀있지만,불행히도그중데이터또는모델을훈련시키는부분에만집중한책이대부분입니다.이책을통해실제구현능력뿐만아니라,정형데이터에딥러닝을적용해얻을수있는통찰,실제가치를창출할수있는엔드투엔드과정을모두얻어갈수있기를바랍니다.