00 머신러닝을 위한 데이터 처리 0-1. 크롤링, 스크레이핑, 머신러닝 = 2 인터넷의 빅데이터 = 2 스크레이핑, 크롤링, 데이터 가공 = 4 머신러닝에 사용할 수 있는 데이터의 구조 = 5 01 크롤링과 스크레이핑 1-1. 데이터 다운로드하기 = 8 웹상의 정보를 추출하는 방법 = 8 urllib.request를 이용한 다운로드 = 8 웹에서 데이터 추출하기 = 11 BeautifulSoup로 스크레이핑하기 = 18 1-2. BeautifulSoup로 스크레이핑하기 = 18 네이버 금융에서 환율 정보 추출하기 = 26 웹 브라우저로 HTML 구조 확인하기 = 29 1-3. CSS 선택자 = 29 위키 문헌에 공개돼 있는 윤동주 작가의 작품 목록 가져오기 = 32 CSS 선택자 자세히 알아보기 = 35 CSS 선택자로 추출 연습하기 = 37 정규 표현식과 함께 조합하기 = 41 1-4. 링크에 있는 것을 한꺼번에 내려받기 = 43 한꺼번에 다운받는 데 필요한 처리 내용 = 43 상대 경로를 전개하는 방법 = 43 재귀적으로 HTML 페이지를 처리하는 방법 = 45 02 고급 스크레이핑 2-1. 로그인이 필요한 사이트에서 다운받기 = 53 HTTP 통신 = 53 requests 사용해보기 = 56 2-2. 웹 브라우저를 이용한 스크레이핑 = 66 웹 브라우저 원격 조작에 사용하는 Selenium = 66 웹 사이트를 이미지로 캡처해보기 = 68 네이버에 로그인해서 구매한 물건 목록 가져오기 = 70 Selenium으로 스크레이핑하는 방법 = 73 자바스크립트 실행해보기 = 77 2-3. 웹 API로 데이터 추출하기 = 79 웹 API = 79 웹 API를 제공하는 이유 = 80 웹 API 사용해보기 - OpenWeatherMap의 날씨 정보 = 81 국내에서 사용할 수 있는 웹 API = 87 2-4. cron을 이용한 정기적인 크롤링 = 90 정기적인 크롤링 = 90 매일 환율 정보 저장하기 = 91 cron으로 매일 한 번 실행하기 = 92 crontab 설정 방법 = 95 2-5. Scrapy를 이용한 스크레이핑 = 98 Scrapy란? = 98 Scrapy 설치 = 99 Scrapy 시작하기 = 99 Scrapy를 셸로 실행해서 테스트해보기 = 104 2-6. Scrapy를 이용한 위키북스의 도서 표지 다운로드 = 106 위키북스의 전체 도서 목록 다운로드 = 106 이미지 파일을 다운로드하려면? = 108 2-7. Scrapy와 Selenium을 이용한 동적 웹 사이트 다운로드 = 111 03 데이터 소스의 서식과 가공 3-1. 웹의 다양한 데이터 형식 = 118 텍스트 데이터와 바이너리 데이터 = 118 XML 분석 = 121 JSON 분석 = 125 YAML 분석 = 130 CSV/TSV 분석 = 136 엑셀 파일 분석 = 141 3-2. 데이터베이스 = 148 데이터베이스 = 148 데이터 저장에는 어떤 데이터베이스를 사용해야 할까? = 149 SQLite - 가볍게 파일 하나로 사용할 수 있는 데이터베이스 = 150 MySQL 사용하기 = 154 TinyDB 사용하기 = 157 04 머신러닝 4-1. 머신러닝이란? = 161 머신러닝 개요 = 161 머신러닝의 종류 = 164 머신러닝의 흐름 = 165 머신러닝의 응용 분야 = 167 초과 학습(초과 적합) = 168 4-2. 머신러닝 첫걸음 = 169 머신러닝 프레임워크 scikit-learn = 169 XOR 연산 학습해보기 = 170 붓꽃의 품종 분류하기 = 173 4-3. 이미지 내부의 문자 인식 = 179 손글씨 숫자 인식하기 = 179 이미지 데이터 학습시키기 = 185 4-4. 외국어 문장 판별하기 = 189 외국어 판정 = 189 판정 방법 = 190 샘플 데이터 수집 = 190 언어 판별 프로그램 = 191 웹 인터페이스 추가하기 = 196 4-5. 서포트 벡터 머신(SVM) = 202 SVM이란? = 202 SVM을 실제로 사용해보기 = 204 SVM의 종류 = 208 4-6. 랜덤 포레스트 = 210 랜덤 포레스트란? = 210 랜덤 포레스트 사용하기 = 211 4-7. 데이터를 검증하는 방법 = 218 크로스 밸리데이션 = 218 그리드 서치 = 221 05 딥러닝 5-1. 딥러닝 개요 = 225 딥러닝 = 225 5-2. TensorFlow 설치하기 = 230 TensorFlow = 230 설치 방법 = 231 설치가 제대로 됐는지 확인하기 = 233 TensorFlow로 간단한 계산해보기 = 233 5-3. Jupyter Notebook = 236 Jupyter Notebook 설치하고 실행하기 = 236 새 노트 만들기 = 237 데이터 시각화 = 241 TensorFlow와 함께 사용하기 = 243 5-4. TensorFlow 기본 = 246 TensorFlow 기본 = 246 머신러닝 해보기 = 249 5-5. TensorBoard로 시각화하기 = 254 TensorBoard의 사용법 = 254 5-6. TensorBoard로 딥러닝하기 = 263 딥러닝의 구조 = 263 딥러닝 해보기 - MNIST 손글씨 데이터 = 266 5-7. Keras로 다양한 딥러닝 해보기 = 275 Keras = 275 Keras로 MNIST 테스트해보기 = 276 Keras로 비만도 판정해보기 = 280 5-8. Pandas/NumPy 다루기 = 284 Pandas/NumPy = 284 데이터 조작 = 290 Pandas/Numpy 정리 = 293 06 텍스트 분석과 챗봇 만들기 6-1. 한국어 분석(형태소 분석) = 296 형태소 분석 = 296 한국어 형태소 분석 라이브러리 = 297 출현 빈도 분석 = 298 6-2. Word2Vec으로 문장을 벡터로 변환하기 = 301 Word2Vec = 301 Gensim 설치 = 302 Gensim의 Word2Vec으로 "토지"를 읽어보기 = 304 위키피디아 한국어 버전을 사전으로 사용해보기 = 307 위키피디아 데이터로 놀아보기 = 310 6-3. 베이즈 정리로 텍스트 분류하기 = 313 텍스트 분류 = 313 베이즈 정리 = 314 나이브 베이즈 분류 = 316 베이지안 필터 사용해보기 = 317 6-4. MLP로 텍스트 분류하기 = 322 MLP로 텍스트 분류하기 = 322 6-5. 문장의 유사도를 N-gram으로 분석하기 = 331 문장의 유사도 분석 = 331 레벤슈타인 거리 = 331 파이썬으로 레벤슈타인 거리를 계산하는 프로그램 = 332 N-gram으로 유사도 구하기 = 334 6-6. 마르코프 체인과 LSTM으로 문장 생성하기 = 337 마르코프 체인과 LSTM/RNN = 337 마르코프 체인이란? = 337 마르코프 체인 구현하기 = 339 LSTM/RNN = 343 6-7. 챗봇 만들기 = 349 챗봇(회화 봇) = 349 챗봇의 구조 = 350 07 이미지와 딥러닝 7-1. 유사 이미지 검출하기 = 361 간단한 형태 인식 - Average Hash = 361 7-2. CNN으로 Caltech 101의 이미지 분류하기 = 373 CNN으로 색상 있는 이미지 분류해보기 = 373 7-3. 규동 메뉴 이미지 판정하기 = 383 규동을 판정할 수 있는 PC가 좋은 PC = 383 스크레이핑부터 시작하기 = 383 7-4. OpenCV로 얼굴 인식하기 = 407 OpenCV = 407 얼굴을 인식하는 프로그램 만들어보기 = 408 얼굴에 모자이크 걸기 = 411 7-5. 이미지 OCR - 연속된 문자 인식하기 = 416 OpenCV로 텍스트 영역 확인하기 = 416 문자 인식 데이터 만들기 = 419 다양한 숫자 폰트 학습시키기 = 424 부록 : 개발 환경 구축 부록 1. VirtualBox/Vagrant 사용법 = 432 VirtualBox 설치하기 = 432 Ubuntu 설치하기 = 433 Docker란? = 435 Docker 설치 = 435 부록 2. Docker로 개발 환경 구축하기 = 435 macOS에서 Docker for Mac 설치하기 = 436 Docker에 Ubuntu 설치하기 = 440 부록 3. 파이썬+Anaconda 환경 준비 = 443 기타 설치 = 444