파이썬으로 배우는 데이터 과학 입문과 실습

소규모 데이터셋 처리부터 빅데이터 처리, 머신러닝, 시각화까지

《파이썬으로 배우는 데이터 과학 입문과 실습》은 데이터 과학의 주요 개념을 설명하고 데이터 과학자로서 기본적인 작업을 완수할 수 있는 법을 가르친다.

데이터 과학의 진행 과정과 데이터 시각화, 그래프 데이터베이스, NoSQL 사용법 등을 살펴보고, 파이썬 언어 및 파이썬 라이브러리를 사용해 큰 규모의 데이터를 다뤄 본다. 데이터의 규모가 너무 크거나 생성 속도가 너무 빨라서 한 대의 컴퓨터로 처리하기 힘든 경우에 파이썬을 어떻게 활용할 수 있는지도 살펴본다. 또한 유명한 파이썬 데이터 과학 라이브러리인 사이킷런(Scikit-learn)과 스태츠모델스(StatsModels)도 탐구해 본다.

이 책을 읽은 후에는 데이터 과학의 커리어를 시작하는 데 필요한 탄탄한 기본기를 갖추게 될 것이다.

★ 이 책에서 다루는 내용 ★

  • 대규모 데이터 처리
  • 머신러닝 소개
  • 파이썬으로 데이터 다루기
  • 데이터 과학 알고리즘 작성

 

도서 상세 이미지

데이비 실린(Davy Cielen)

데이비 실린은 창업가, 저자, 교수다. 각각 벨기에와 영국에 있는 데이터 과학 회사인 옵티메이틀리(Optimately)와 메이튼(Maiton)을 아르노(Arno)와 모하메드(Mohamed)와 함께 공동으로 소유하고 있으며, 소마릴란드에 있는 데이터 과학 회사도 공동으로 소유하고 있다. 이 회사들은 빅 데이터 과학의 전략을 주로 다루며, 많은 대기업에 컨설팅을 한다. 데이비는 프랑스 릴의 IESEG 경영대학원에서 빅데이터 과학 분야를 가르치고 연구하는 겸임 교수다.

아르노 메이즈맨(Arno Meysman)

아르노 메이즈맨은 기업가이자 데이터 과학자다. 아르노는 데이터 과학자로서 의료, 유통, 게임에 이르는 다양한 분야에 관심을 두고 있다. 그는 데이터로부터 얻는 통찰과 상상력을 통해 이 세계를 더 나은 곳으로 만들 수 있으리라고 희망한다.

모하메드 알리(Mohamed Ali)

모하메드 알리는 기업가이며 데이터 과학 컨설턴트다. 그는 데이터 과학과 지속 가능한 프로젝트의 두 영역에 열정을 가지고 있다. 후자는 소마릴란드에 근거한 세 번째 회사를 설립함으로써 빛을 보게 되었다.

최용

한국방송통신대학교에서 컴퓨터과학을 전공하고, 은행 전산실 운영과 배치 작업 자동화(Workload Automation)를 지원하는 기술자로 일했다.

  • ▣ 01장: 빅데이터 세상에서의 데이터 과학
    • 1.1. 데이터 과학 및 빅데이터의 이점과 활용
    • 1.2. 데이터 종류
      • 1.2.1. 구조적 데이터
      • 1.2.2. 비구조적 데이터
      • 1.2.3. 자연어
      • 1.2.4. 기계 생성 데이터
      • 1.2.5. 그래프 데이터 또는 네트워크 데이터
      • 1.2.6. 오디오, 이미지, 비디오
      • 1.2.7. 스트리밍 데이터
    • 1.3. 데이터 과학 과정
      • 1.3.1. 연구 목표 설정
      • 1.3.2. 데이터 획득
      • 1.3.3. 데이터 준비
      • 1.3.4. 데이터 탐색
      • 1.3.5. 데이터 모델링 또는 모델 구축
      • 1.3.6. 발표 및 자동화
    • 1.4. 빅데이터 생태계와 데이터 과학
      • 1.4.1. 분산 파일 시스템
      • 1.4.2. 분산 프로그래밍 프레임워크
      • 1.4.3. 데이터 통합 프레임워크
      • 1.4.4. 머신러닝 프레임워크
      • 1.4.5. NoSQL 데이터베이스
      • 1.4.6. 스케줄링 도구
      • 1.4.7. 벤치마크 도구
      • 1.4.8. 시스템 배포
      • 1.4.9. 서비스 프로그래밍
      • 1.4.10. 보안
    • 1.5. 하둡 작업의 예
    • 1.6. 요약
    •  
  • ▣ 02장: 데이터 과학 진행 과정
    • 2.1. 데이터 과학 진행 과정 개요
      • 2.1.1. 과정의 노예가 되지 마라
    • 2.2. 1단계: 연구 목표 설정 및 프로젝트 사명서 작성
      • 2.2.1. 연구의 목표와 맥락을 이해하는 데 시간을 투자하라
      • 2.2.2. 프로젝트 사명서 작성
    • 2.3. 2단계: 데이터 획득
      • 2.3.1. 회사 내에 저장된 데이터로 시작하기
      • 2.3.2. 여기저기서 데이터를 사는 일을 두려워 마라
      • 2.3.3. 문제가 일어나지 않게 데이터의 품질을 미리 확인하라
    • 2.4. 3단계: 데이터 정제, 통합, 변환
      • 2.4.1. 데이터 정제
      • 2.4.2. 오류를 최대한 일찍 수정하라
      • 2.4.3. 서로 다른 출처로부터 얻은 데이터 합치기
      • 2.4.4. 데이터 변환
    • 2.5. 4단계: 탐색적 데이터 분석
    • 2.6. 5단계: 모델 구축
      • 2.6.1. 모델과 변수 선택
      • 2.6.2. 모델링 실시
      • 2.6.3. 모델 분석과 비교
    • 2.7. 6단계: 분석 결과 표현과 애플리케이션 구축
    • 2.8. 요약
    •  
  • ▣ 03장: 머신러닝
    • 3.1. 머신러닝의 정의와 중요성
      • 3.1.1. 데이터 과학에 머신러닝을 적용
      • 3.1.2. 데이터 과학 진행 과정에서 머신러닝이 사용되는 곳
      • 3.1.3. 머신러닝에 사용하는 파이썬 도구
    • 3.2. 모델링 과정
      • 3.2.1. 특성 공학과 모델 선택
      • 3.2.2. 모델 훈련
      • 3.2.3. 모델 검증
      • 3.2.4. 새로운 관찰을 예측하기
    • 3.3. 머신러닝 종류
      • 3.3.1. 지도 학습
      • 3.3.2. 비지도 학습
      • 3.3.3. 준지도 학습
    • 3.4. 요약
    •  
  • ▣ 04장: 컴퓨터 한 대에서 대량 데이터 다루기
    • 4.1. 대량 데이터를 다룰 때의 문제
    • 4.2. 대량 데이터를 처리하는 일반적인 기법
      • 4.2.1. 적절한 알고리즘 선택
      • 4.2.2. 적절한 데이터 구조 선택
      • 4.2.3. 적절한 도구 선택
    • 4.3. 대규모 데이터셋을 다룰 때의 일반적인 프로그래밍 지침
      • 4.3.1. 바퀴를 재발명하지 말라
      • 4.3.2. 하드웨어 성능을 최대한 활용하라
      • 4.3.3. 컴퓨팅의 필요를 줄여라
    • 4.4. 사례 연구 1: 해로운 URL 여부 예측
      • 4.4.1. 1단계: 연구 목표 설정
      • 4.4.2. 2단계: URL 데이터 얻기
      • 4.4.3. 4단계: 데이터 탐색
      • 4.4.4. 5단계: 모델 구축
    • 4.5. 사례 연구 2: 데이터베이스에 추천 시스템 구축
      • 4.5.1. 필요한 도구 및 기법
      • 4.5.2. 1단계: 연구 질문
      • 4.5.3. 3단계: 데이터 준비
      • 4.5.4. 5단계: 모델 구축
      • 4.5.5. 6단계: 표현 및 자동화
    • 4.6. 요약
    •  
  • ▣ 05장: 빅데이터 첫걸음
    • 5.1. 프레임워크를 이용해 데이터 저장과 처리를 분산화하기
      • 5.1.1. 하둡: 대규모 데이터셋을 저장하고 처리하기 위한 프레임워크
      • 5.1.2. 스파크: 더 높은 성능을 내기 위해 맵리듀스를 대체
    • 5.2. 사례 연구: 금전 대출 위험 평가
      • 5.2.1. 1단계: 연구 목표 설정
      • 5.2.2. 2단계: 데이터 획득
      • 5.2.3. 3단계: 데이터 준비
      • 5.2.4. 4단계: 데이터 탐색 & 6단계: 보고서 구축
    • 5.3. 요약
    •  
  • ▣ 06장: NoSqL 운동에 동참하기
    • 6.1. NoSQL 개요
      • 6.1.1. ACID: 관계형 데이터베이스의 핵심 원리
      • 6.1.2. CAP 정리: 여러 노드에 걸쳐 존재하는 DB의 문제
      • 6.1.3. NoSQL 데이터베이스의 BASE 원칙
      • 6.1.4. NoSQL 데이터베이스의 종류
    • 6.2. 사례 연구: 질병 진단
      • 6.2.1. 1단계: 연구 목표 설정
      • 6.2.2. 2단계와 3단계: 데이터 획득 및 준비
      • 6.2.3. 4단계: 데이터 탐색
      • 6.2.4. 3단계를 반복: 질병 프로파일링을 위한 데이터 준비
      • 6.2.5. 4단계를 반복: 질병 프로파일링을 위한 데이터 탐색
      • 6.2.6. 6단계: 표현 및 자동화
    • 6.3. 요약
    •  
  • ▣ 07장: 그래프 데이터베이스의 부상
    • 7.1. 연결 데이터와 그래프 데이터베이스
      • 7.1.1. 그래프 데이터는 무엇이며 언제 사용해야 하는가?
    • 7.2. 네오포제이(Neo4j): 그래프 데이터베이스
      • 7.2.1. 사이퍼(Cypher): 그래프 질의 언어
    • 7.3. 연결 데이터 예제: 요리법 추천 엔진
      • 7.3.1. 1단계: 연구 목표 설정
      • 7.3.2. 2단계: 데이터 획득
      • 7.3.3. 3단계: 데이터 준비
      • 7.3.4. 4단계: 데이터 탐색
      • 7.3.5. 5단계: 데이터 모델링
      • 7.3.6. 6단계: 표현
    • 7.4. 요약
    •  
  • ▣ 08장: 텍스트 마이닝과 텍스트 분석
    • 8.1. 실제 세계에서의 텍스트 마이닝
    • 8.2. 텍스트 마이닝 기법
      • 8.2.1. 단어 주머니
      • 8.2.2. 형태소 처리와 표제어 추출
      • 8.2.3. 의사결정 트리 분류기
    • 8.3. 사례 연구: 레딧 게시물 분류
      • 8.3.1. 자연어 도구 사용하기
      • 8.3.2. 데이터 과학 과정 개요 및 1단계: 연구 목표
      • 8.3.3. 2단계: 데이터 획득
      • 8.3.4. 3단계: 데이터 준비
      • 8.3.5. 4단계: 데이터 탐색
      • 8.3.6. 3단계를 반복: 데이터 준비 적응
      • 8.3.7. 5단계: 데이터 분석
      • 8.3.8. 6단계: 발표 및 자동화
    • 8.4. 요약
    •  
  • ▣ 09장: 최종 사용자를 위한 데이터 시각화
    • 9.1. 데이터 시각화의 선택사항
    • 9.2. Crossfilter: 자바스크립트 맵리듀스 라이브러리
      • 9.2.1. 구성
      • 9.2.2. 크로스필터를 사용해 의약품 데이터셋을 필터링
    • 9.3. dc.js로 상호작용 대시보드 만들기
    • 9.4. 대시보드 개발 도구
    • 9.5. 요약
    •  
  • ▣ 부록A: 일래스틱서치 설치
    • A.1. 리눅스에 일래스틱서치 설치하기
    • A.2. 윈도우에 일래스틱서치 설치하기
    •  
  • ▣ 부록B: NeO4j 설치
    • B.1. 리눅스에 Neo4j 설치하기
    • B.2. 윈도우에 Neo4j 설치하기
    •  
  • ▣ 부록C: MySqL 서버 설치
    • C.1. 윈도우에 MySQL 서버 설치하기
    • C.2. 리눅스에 MySQL 서버 설치하기
    •  
  • ▣ 부록D: 아나콘다 설치 및 가상 환경 구성
    • D.1. 리눅스에 아나콘다 설치하기
    • D.2. 윈도우에 아나콘다 설치하기
    • D.3. 환경 설정