책소개
200개 비법 레시피로 실무 머신러닝 문제를 쉽고 빠르게 해결하기
200여 개의 비법 레시피를 제공하는 이 책은 실무에서 접하는 다양한 머신러닝 문제를 해결하도록 도와준다. 판다스나 사이킷런 같은 파이썬 라이브러리로 데이터 적재, 텍스트나 수치형 데이터 다루기, 모델 선택, 차원 축소 등 다양한 문제를 해결할 수 있다.
레시피의 코드를 샘플 데이터셋에 적용하며 실제로 코드가 어떻게 동작하는지 확인해본다. 문제 해결에 대한 설명과 유용한 배경지식도 제공한다. 이 책은 이론과 개념 설명을 넘어서 머신러닝 애플리케이션 제작에 필요한 구체적인 도구를 제시한다. 실무에서 레시피를 그대로 적용하거나 적절히 수정하여 쉽고 빠르게 문제를 해결하기 바란다.
머신러닝 시스템 실무 개발자를 위한 본격적인 문제 해결 가이드북
이 책은 일상적인 머신러닝 작업에서 발생하는 문제를 해결하는 데 필요한 각종 세부사항을 다룹니다. 데이터 과학자와 머신러닝 엔지니어가 모델을 만들면서 가장 많이 사용하는 작업에 필요한 거의 200여 개에 달하는 독립적인 해결책을 담았습니다. 역자의 말을 빌리자면 `머신러닝 지식을 모아놓은 두꺼운 책이 아니라, 전문가를 위한 스위스 만능칼 같은` 책입니다. 이 책의 목표는 실제 머신러닝 시스템을 만드는 사람들을 위한 참고 도서가 되는 것입니다.
또한 이 책에는 한국어판만의 특별 팁을 레시피별로 추가 수록했습니다. 원서 자체가 쿡북 스타일이다 보니 하나의 레시피가 특정 메서드나 클래스의 사용 방법을 다루긴 하지만, 레시피가 비교적 짧아 다양한 옵션이나 유사 함수들을 충분히 설명하지는 못합니다. 원서의 이런 미진한 부분을 보완하고자 역자는 대부분의 레시피에 `덧붙임`이라는 항목을 새롭게 만들고 내용을 추가했습니다. 역자가 이처럼 세심하게 추가 보완한 내용을 통해 독자 여러분이 현업에서의 시스템 개발에 필요한 더욱 풍부하고 실용적인 정보를 얻기를 바랍니다.
주요 내용
● 벡터, 행렬, 배열
● 수치형과 범주형 데이터, 텍스트, 이미지, 날짜, 시간 다루기
● 특성 추출과 특성 선택을 사용한 차원 축소
● 모델 평가와 선택
● 선형 회귀, 로지스틱 회귀, 트리, 랜덤 포레스트, k-최근접 이웃
● 서포트 벡터 머신(SVM), 나이브 베이즈, 군집, 신경망
● 훈련된 모델의 저장과 복원
저자소개
선거 모니터링에서부터 재난 구조에 이르기까지 십여 년간 통계학습과 인공지능, 소프트웨
어 공학을 정치, 사회, 인도주의 활동에 적용해온 데이터 과학자이자 정치학자입니다. 현재 크
리스는 프런티어 마켓(frontier market)의 인터넷 사용자를 위해 와이파이 네트워크를 구축하는 케냐의 스타트업인 BRCK의 최고데이터과학자(CDS)입니다.
목차
CHAPTER 1 벡터, 행렬, 배열
__1.0 소개
__1.1 벡터 만들기
__1.2 행렬 만들기
__1.3 희소행렬 만들기
__1.4 원소 선택하기
__1.5 행렬 정보 확인하기
__1.6 벡터화 연산 적용하기
__1.7 최댓값, 최솟값 찾기
__1.8 평균, 분산, 표준편차 계산하기
__1.9 배열 크기 바꾸기
__1.10 벡터나 행렬 전치하기
__1.11 행렬 펼치기
__1.12 행렬의 랭크 구하기
__1.13 행렬식 계산하기
__1.14 행렬의 대각원소 추출하기
__1.15 행렬의 대각합 계산하기
__1.16 고윳값과 고유벡터 찾기
__1.17 점곱 계산하기
__1.18 행렬 덧셈과 뺄셈
__1.19 행렬 곱셈
__1.20 역행렬
__1.21 난수 생성하기
CHAPTER 2 데이터 적재
__2.0 소개
__2.1 샘플 데이터셋 적재하기
__2.2 모의 데이터셋 만들기
__2.3 CSV 파일 적재하기
__2.4 엑셀 파일 적재하기
__2.5 JSON 파일 적재하기
__2.6 SQL 데이터베이스로부터 적재하기
CHAPTER 3 데이터 랭글링
__3.0 소개
__3.1 데이터프레임 만들기
__3.2 데이터 설명하기
__3.3 데이터프레임 탐색하기
__3.4 조건에 따라 행 선택하기
__3.5 값 치환하기
__3.6 열 이름 바꾸기
__3.7 최솟값, 최댓값, 합, 평균 계산 및 개수 세기
__3.8 고유한 값 찾기
__3.9 누락된 값 다루기
__3.10 열 삭제하기
__3.11 행 삭제하기
__3.12 중복된 행 삭제하기
__3.13 값에 따라 행을 그룹핑하기
__3.14 시간에 따라 행을 그룹핑하기
__3.15 열 원소 순회하기
__3.16 모든 열 원소에 함수 적용하기
__3.17 그룹에 함수 적용하기
__3.18 데이터프레임 연결하기
__3.19 데이터프레임 병합하기
CHAPTER 4 수치형 데이터 다루기
__4.0 소개
__4.1 특성 스케일 바꾸기
__4.2 특성을 표준화하기
__4.3 정규화하기
__4.4 다항 특성과 교차항 특성 생성하기
__4.5 특성 변환하기
__4.6 이상치 감지하기
__4.7 이상치 다루기
__4.8 특성 이산화하기
__4.9 군집으로 샘플을 그룹으로 묶기
__4.10 누락된 값을 가진 샘플을 삭제하기
__4.11 누락된 값 채우기
CHAPTER 5 범주형 데이터 다루기
__5.0 소개
__5.1 순서가 없는 범주형 특성 인코딩하기
__5.2 순서가 있는 범주형 특성 인코딩하기
__5.3 특성 딕셔너리를 인코딩하기
__5.4 누락된 클래스 값 대체하기
__5.5 불균형한 클래스 다루기
CHAPTER 6 텍스트 다루기
__6.0 소개
__6.1 텍스트 정제하기
__6.2 HTML 파싱과 정제하기
__6.3 구두점 삭제하기
__6.4 텍스트 토큰화하기
__6.5 불용어 삭제하기
__6.6 어간 추출하기
__6.7 품사 태깅하기
__6.8 텍스트를 BoW로 인코딩하기
__6.9 단어 중요도에 가중치 부여하기
CHAPTER 7 날짜와 시간 다루기
__7.0 소개
__7.1 문자열을 날짜로 변환하기
__7.2 시간대 다루기
__7.3 날짜와 시간 선택하기
__7.4 날짜 데이터를 여러 특성으로 나누기
__7.5 날짜 간의 차이를 계산하기
__7.6 요일을 인코딩하기
__7.7 시차 특성 만들기
__7.8 이동 시간 윈도 사용하기
__7.9 시계열 데이터에서 누락된 값 다루기
CHAPTER 8 이미지 다루기
__8.0 소개
__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 컬러 히스토그램을 특성으로 인코딩하기
CHAPTER 9 특성 추출을 사용한 차원 축소
__9.0 소개
__9.1 주성분을 사용해 특성 줄이기
__9.2 선형적으로 구분되지 않은 데이터의 차원 축소하기
__9.3 클래스 분리를 최대화하여 특성 줄이기
__9.4 행렬 분해를 사용하여 특성 줄이기
__9.5 희소한 데이터의 특성 줄이기
CHAPTER 10 특성 선택을 사용한 차원 축소
__10.0 소개
__10.1 분산을 기준으로 수치 특성 선택하기
__10.2 분산을 기준으로 이진 특성 선택하기
__10.3 상관관계가 큰 특성 다루기
__10.4 분류 작업에 관련 없는 특성 삭제하기
__10.5 재귀적 특성 제거하기
CHAPTER 11 모델 평가
__11.0 소개
__11.1 교차검증 모델 만들기
__11.2 기본 회귀 모델 만들기
__11.3 기본 분류 모델 만들기
__11.4 이진 분류기의 예측 평가하기
__11.5 이진 분류기 임곗값 평가하기
__11.6 다중클래스 분류기 예측 평가하기
__11.7 분류기 성능 시각화하기
__11.8 회귀 모델 평가하기
__11.9 군집 모델 평가하기
__11.10 사용자 정의 평가 지표 만들기
__11.11 훈련 세트 크기에 따른 영향을 시각화하기
__11.12 평가 지표 리포트 만들기
__11.13 하이퍼파라미터 값의 영향을 시각화하기
CHAPTER 12 모델 선택
__12.0 소개
__12.1 완전 탐색을 사용해 최선의 모델 선택하기
__12.2 랜덤 서치를 사용해 최선의 모델 선택하기
__12.3 여러 학습 알고리즘에서 최선의 모델 선택하기
__12.4 전처리와 함께 최선의 모델 선택하기
__12.5 병렬화로 모델 선택 속도 높이기
__12.6 알고리즘에 특화된 기법을 사용하여 모델 선택 수행 속도 높이기
__12.7 모델 선택 후 성능 평가하기
CHAPTER 13 선형회귀
__13.0 소개
__13.1 직선 학습하기
__13.2 교차 특성 다루기
__13.3 비선형 관계 학습하기
__13.4 규제로 분산 줄이기
__13.5 라소 회귀로 특성 줄이기
CHAPTER 14 트리와 랜덤 포레스트
__14.0 소개
__14.1 결정 트리 분류기 훈련하기
__14.2 결정 트리 회귀 훈련하기
__14.3 결정 트리 모델 시각화하기
__14.4 랜덤 포레스트 분류기 훈련하기
__14.5 랜덤 포레스트 회귀 훈련하기
__14.6 랜덤 포레스트에서 중요한 특성 구분하기
__14.7 랜덤 포레스트에서 중요한 특성 선택하기
__14.8 불균형한 클래스 다루기
__14.9 트리 크기 제어하기
__14.10 부스팅을 사용하여 성능 향상하기
__14.11 OOB 데이터로 랜덤 포레스트 평가하기
CHAPTER 15 k-최근접 이웃
__15.0 소개
__15.1 샘플의 최근접 이웃 찾기
__15.2 k-최근접 이웃 분류기 만들기
__15.3 최선의 이웃 개수 결정하기
__15.4 반지름 기반의 최근접 이웃 분류기 만들기
CHAPTER 16 로지스틱 회귀
__16.0 소개
__16.1 이진 분류기 훈련하기
__16.2 다중 클래스 분류기 훈련하기
__16.3 규제로 분산 줄이기
__16.4 대용량 데이터에서 분류기 훈련하기
__16.5 불균형한 클래스 다루기
CHAPTER 17 서포트 벡터 머신
__17.0 소개
__17.1 선형 분류기 훈련하기
__17.2 커널을 사용해 선형적으로 구분되지 않는 클래스 다루기
__17.3 예측 확률 계산하기
__17.4 서포트 벡터 식별하기
__17.5 불균형한 클래스 다루기
CHAPTER 18 나이브 베이즈
__18.0 소개
__18.1 연속적인 특성으로 분류기 훈련하기
__18.2 이산적인 카운트 특성으로 분류기 훈련하기
__18.3 이진 특성으로 나이브 베이즈 분류기 훈련하기
__18.4 예측 확률 보정하기
CHAPTER 19 군집
__19.0 소개
__19.1 k-평균을 사용한 군집
__19.2 k-평균 군집 속도 향상하기
__19.3 평균이동을 사용한 군집
__19.4 DBSCAN을 사용한 군집
__19.5 계층적 병합을 사용한 군집
CHAPTER 20 신경망
__20.0 소개
__20.1 신경망을 위한 데이터 전처리하기
__20.2 신경망 구성하기
__20.3 이진 분류기 훈련하기
__20.4 다중 분류기 훈련하기
__20.5 회귀 모델 훈련하기
__20.6 예측하기
__20.7 훈련 기록 시각화하기
__20.8 가중치 규제로 과대적합 줄이기
__20.9 조기종료로 과대적합 줄이기
__20.10 드롭아웃으로 과대적합 줄이기
__20.11 모델 훈련 진행 과정을 저장하기
__20.12 신경망을 k-폴드 교차검증하기
__20.13 신경망 튜닝하기
__20.14 신경망 시각화하기
__20.15 이미지 분류하기
__20.16 이미지 증식으로 성능 향상하기
__20.17 텍스트 분류하기
CHAPTER 21 훈련된 모델 저장과 복원
__21.0 소개
__21.1 사이킷런 모델을 저장하고 복원하기
__21.2 케라스 모델을 저장하고 복원하기