머신러닝, 딥러닝을 시작하면서 정형데이터, 텍스트, 이미지 등 다양한 데이터 전처리를 학습하고자 하는 사람, 머신러닝 기초를 수식과 함께 간단하게 학습하고자 하는 사람에게 추천합니다. 또한 파이토치까지 다루고 있어 텐서를 다루는 부분에서 큰 도움이 될 것으로 생각합니다.
216개 레시피로 실전 머신러닝 문제를 쉽고 빠르게 해결하기
이 실용 가이드는 『파이썬을 활용한 머신러닝 쿡북』의 개정판으로, 현장에서 만날 수 있는 머신러닝 문제를 해결하는 데 도움이 될 200개 이상의 독립된 레시피를 제공합니다. 파이썬과 판다스, 사이킷런을 포함한 라이브러리에 익숙하다면 데이터 로드부터 모델 훈련, 신경망 활용에 이르기까지 특정 문제를 해결할 수 있습니다. 이번 개정판의 각 레시피에는 토이 데이터셋으로 복사, 붙여넣기, 실행한 뒤 작동하는지 확인할 수 있는 코드가 포함되어 있습니다. 이때 사용 사례나 애플리케이션에 따라 이러한 레시피를 조정할 수 있습니다. 레시피에는 솔루션을 설명하고 유의미한 맥락을 제공하는 토론이 포함되어 있습니다. 이론과 개념을 넘어 실제 작동하는 머신러닝 애플리케이션을 구축하는 데 필요한 핵심을 배워보세요.
주요 내용
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 난수 생성하기
2장 데이터 적재
_2.0 소개
_2.1 샘플 데이터셋 적재하기
_2.2 모의 데이터셋 만들기
_2.3 CSV 파일 적재하기
_2.4 엑셀 파일 적재하기
_2.5 JSON 파일 적재하기
_2.6 파케이 파일 적재하기
_2.7 아브로 파일 적재하기
_2.8 SQLite 데이터베이스로부터 적재하기
_2.9 원격 SQL 데이터베이스에 쿼리하기
_2.10 구글 시트에서 데이터 적재하기
_2.11 S3 버킷에서 데이터 적재하기
_2.12 비구조적인 데이터 적재하기
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 그룹에 함수 적용하기
_3.20 데이터프레임 연결하기
_3.21 데이터프레임 병합하기
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 누락된 값 채우기
5장 범주형 데이터 다루기
_5.0 소개
_5.1 순서가 없는 범주형 특성 인코딩하기
_5.2 순서가 있는 범주형 특성 인코딩하기
_5.3 특성 딕셔너리 인코딩하기
_5.4 누락된 클래스 값 대체하기
_5.5 불균형한 클래스 다루기
6장 텍스트 다루기
_6.0 소개
_6.1 텍스트 정제하기
_6.2 HTML 파싱과 정제하기
_6.3 구두점 삭제하기
_6.4 텍스트 토큰화하기
_6.5 불용어 삭제하기
_6.6 어간 추출하기
_6.7 품사 태깅하기
_6.8 개체명 인식 수행하기
_6.9 텍스트를 BoW로 인코딩하기
_6.10 단어 중요도에 가중치 부여하기
_6.11 텍스트 벡터를 사용해 검색 쿼리 텍스트의 유사도 계산하기
_6.12 감성 분석 분류기 사용하기
7장 날짜와 시간 다루기
_7.0 소개
_7.1 문자열을 날짜로 변환하기
_7.2 시간대 다루기
_7.3 날짜와 시간 선택하기
_7.4 날짜 데이터를 여러 특성으로 나누기
_7.5 날짜 간의 차이 계산하기
_7.6 요일 인코딩하기
_7.7 시차 특성 만들기
_7.8 이동 시간 윈도 사용하기
_7.9 시계열 데이터에서 누락된 값 다루기
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 사전 훈련된 임베딩을 특성으로 사용하기
_8.16 OpenCV로 객체 탐지하기
_8.17 파이토치로 이미지 분류하기
9장 특성 추출을 사용한 차원 축소
_9.0 소개
_9.1 주성분을 사용해 특성 줄이기
_9.2 선형적으로 구분되지 않은 데이터의 차원 축소하기
_9.3 클래스 분리를 최대화하여 특성 줄이기
_9.4 행렬 분해를 사용하여 특성 줄이기
_9.5 희소한 데이터의 특성 줄이기
10장 특성 선택을 사용한 차원 축소
_10.0 소개
_10.1 분산을 기준으로 수치 특성 선택하기
_10.2 분산을 기준으로 이진 특성 선택하기
_10.3 상관관계가 큰 특성 다루기
_10.4 분류 작업에 관련 없는 특성 삭제하기
_10.5 재귀적 특성 제거하기
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 하이퍼파라미터 값의 영향 시각화하기
12장 모델 선택
_12.0 소개
_12.1 완전 탐색을 사용해 최선의 모델 선택하기
_12.2 랜덤 탐색을 사용해 최선의 모델 선택하기
_12.3 여러 학습 알고리즘에서 최선의 모델 선택하기
_12.4 전처리와 함께 최선의 모델 선택하기
_12.5 병렬화로 모델 선택 속도 높이기
_12.6 알고리즘에 특화된 기법을 사용해 모델 선택 수행 속도 높이기
_12.7 모델 선택 후 성능 평가하기
13장 선형 회귀
_13.0 소개
_13.1 직선 학습하기
_13.2 교차 특성 다루기
_13.3 비선형 관계 학습하기
_13.4 규제로 분산 줄이기
_13.5 라소 회귀로 특성 줄이기
14장 트리와 랜덤 포레스트
_14.0 소개
_14.1 결정 트리 분류기 훈련하기
_14.2 결정 트리 회귀 훈련하기
_14.3 결정 트리 모델 시각화하기
_14.4 랜덤 포레스트 분류기 훈련하기
_14.5 랜덤 포레스트 회귀 훈련하기
_14.6 OOB 데이터로 랜덤 포레스트 평가하기
_14.7 랜덤 포레스트에서 중요한 특성 구분하기
_14.8 랜덤 포레스트에서 중요한 특성 선택하기
_14.9 불균형한 클래스 다루기
_14.10 트리 크기 제어하기
_14.11 부스팅을 사용해 성능 향상하기
_14.12 XGBoost 모델 훈련하기
_14.13 LightGBM으로 실시간 성능 향상하기
15장 k-최근접 이웃
_15.0 소개
_15.1 샘플의 최근접 이웃 찾기
_15.2 k-최근접 이웃 분류기 만들기
_15.3 최선의 이웃 개수 결정하기
_15.4 반지름 기반의 최근접 이웃 분류기 만들기
_15.5 근사 최근접 이웃 찾기
_15.6 근사 최근접 이웃 평가하기
16장 로지스틱 회귀
_16.0 소개
_16.1 이진 분류기 훈련하기
_16.2 다중 클래스 분류기 훈련하기
_16.3 규제로 분산 줄이기
_16.4 대용량 데이터에서 분류기 훈련하기
_16.5 불균형한 클래스 다루기
17장 서포트 벡터 머신
_17.0 소개
_17.1 선형 분류기 훈련하기
_17.2 커널을 사용해 선형적으로 구분되지 않는 클래스 다루기
_17.3 예측 확률 계산하기
_17.4 서포트 벡터 식별하기
_17.5 불균형한 클래스 다루기
18장 나이브 베이즈
_18.0 소개
_18.1 연속적인 특성으로 분류기 훈련하기
_18.2 이산적인 카운트 특성으로 분류기 훈련하기
_18.3 이진 특성으로 나이브 베이즈 분류기 훈련하기
_18.4 예측 확률 보정하기
19장 군집
_19.0 소개
_19.1 k-평균을 사용한 군집
_19.2 k-평균 군집 속도 향상하기
_19.3 평균이동을 사용한 군집
_19.4 DBSCAN을 사용한 군집
_19.5 계층적 병합을 사용한 군집
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 텐서 곱셈
21장 신경망
_21.0 소개
_21.1 파이토치 자동미분 사용하기
_21.2 신경망을 위해 데이터 전처리하기
_21.3 신경망 구성하기
_21.4 이진 분류기 훈련하기
_21.5 다중 분류기 훈련하기
_21.6 회귀 모델 훈련하기
_21.7 예측하기
_21.8 훈련 기록 시각화하기
_21.9 가중치 규제로 과대적합 줄이기
_21.10 조기 종료로 과대적합 줄이기
_21.11 드롭아웃으로 과대적합 줄이기
_21.12 모델 훈련 진행 과정 저장하기
_21.13 신경망 튜닝하기
_21.14 신경망 시각화하기
22장 비정형 데이터를 위한 신경망
_22.0 소개
_22.1 이미지 분류 신경망 훈련하기
_22.2 텍스트 분류 신경망 훈련하기
_22.3 이미지 분류를 위해 사전 훈련된 모델 미세 튜닝하기
_22.4 텍스트 분류를 위해 사전 훈련된 모델 미세 튜닝하기
23장 훈련 모델의 저장, 로딩, 서빙
_23.0 소개
_23.1 사이킷런 모델 저장하고 로드하기
_23.2 텐서플로 모델 저장하고 로드하기
_23.3 파이토치 모델 저장하고 로드하기
_23.4 사이킷런 모델 서빙하기
_23.5 텐서플로 모델 서빙하기
_23.6 셀던으로 파이토치 모델 서빙하기
찾아보기
전처리부터 딥러닝까지, 216개 실용 예제로 익히는 문제 해결 기법
2018년에 출간된 1판 『파이썬을 활용한 머신러닝 쿡북』은 늘어나는 머신러닝 콘텐츠 사이에서 중요한 간극을 채웠습니다. 실용적이고 잘 테스트된 파이썬 레시피를 제공하여 실무자들이 코드를 복사하여 붙여넣은 후 쉽게 자신의 문제에 맞게 조정할 수 있었습니다. 지난 5년 동안 머신러닝 분야는 딥러닝과 이와 관련된 파이썬 프레임워크의 발전과 함께 계속 크게 성장해왔습니다. 그리고 이제는 머신러닝과 딥러닝 실무자들의 요구를 충족시킬 수 있는 최신 파이썬 라이브러리를 활용한 실용적인 콘텐츠가 필요하게 되었습니다. 이 책은 1판의 저자가 해낸 기존의 훌륭한 작업을 기반으로 다음과 같은 내용을 추가했습니다.
쿡북 스타일의 이 책은 하나의 레시피가 특정 메서드나 클래스의 사용 방법을 다룹니다. 하지만 레시피가 비교적 짧다 보니, 다양한 옵션이나 유사 함수들을 충분히 설명하지는 못합니다. 원서의 이런 미진한 부분을 보완하고자 박해선 역자는 대부분의 레시피에 ‘덧붙임’이라는 항목을 새롭게 만들고 내용을 추가했습니다(모든 레시피에 다 들어가지는 않습니다). 역자가 세심하게 추가 보완한 내용을 통해 독자 여러분이 더욱 풍부하고 유용한 정보를 얻기를 바랍니다.