머신 러닝을 다루는 기술 with 파이썬, 사이킷런
도서명:머신 러닝을 다루는 기술 with 파이썬, 사이킷런
저자/출판사:마크,페너/길벗
쪽수:624쪽
출판일:2020-06-30
ISBN:9791165212018
목차
1부 첫 번째 단계
1장 학습이란?
1.1 컴퓨터는 학습할 수 있을까?
1.2 범위, 용어, 예측, 데이터
__1.2.1 특성
__1.2.2 타깃 값과 예측치
1.3 머신 러닝에 기계 모델 집어넣기
1.4 학습 시스템 사례
__1.4.1 카테고리 예측: 분류 모델 사례
__1.4.2 값 예측: 회귀 모델 사례
1.5 학습 시스템 평가
__1.5.1 정확도
__1.5.2 자원 소모
1.6 학습 시스템 구축 프로세스
1.7 학습의 현실과 가정
1.8 마무리
1.8.1 앞으로
1.8.2 참고 사항
2장 기술적 배경
2.1 환경 설정
2.2 수학적 언어의 필요성
2.3 머신 러닝을 위한 소프트웨어
2.4 확률
__2.4.1 단순 사건
__2.4.2 독립
__2.4.3 조건부 확률
__2.4.4 분포
2.5 선형 결합, 가중 합, 점곱
__2.5.1 가중 평균
__2.5.2 제곱합
__2.5.3 오차 제곱합
2.6 기하학적 관점: 공간상 포인트
__2.6.1 직선
__2.6.2 직선을 넘어서
2.7 수식 표현과 +1 트릭
2.8 정해진 틀을 깨는 비선형성
2.9 NumPy vs. 수학의 모든 것
2.9.1 1차원 vs. 2차원
2.10 부동소수점 문제
2.11 마무리
2.11.1 요약
2.11.2 참고 사항
3장 범주 예측: 분류 문제 시작
3.1 분류 문제
3.2 간단한 분류 데이터셋
3.3 학습과 테스트: 시험만을 위해 강의하지 말자
3.4 평가: 시험지 채점
3.5 간단한 분류 모델 #1: 최근접 이웃, 먼 거리 관계, 가정
__3.5.1 유사도 정의
__3.5.2 k-최근접 이웃에서의 k
__3.5.3 답 조합
__3.5.4 k-NN, 파라미터와 논파라메트릭 방법들
__3.5.5 k-nn 분류 모델 생성
3.6 간단한 분류 모델 #2: 나이브 베이즈, 확률, 깨진****속들
3.7 분류 모델의 간단한 평가
__3.7.1 학습 성능
__3.7.2 분류 문제에서의 자원 활용
__3.7.3 독립적인 자원 평가
3.8 마무리
__3.8.1 주의 사항: 한계점과 아직 해결되지 않은 이슈들
__3.8.2 요약
__3.8.3 참고 사항
__3.8.4 연습 문제
4장 수치형 값 예측: 회귀 모델
4.1 간단한 회귀 데이터셋
4.2 최근접 이웃 회귀와 요약 통계량
__4.2.1 중앙 측정: 중앙값과 평균
__4.2.2 k-NN 회귀 모델 생성
4.3 선형 회귀와 오차
__4.3.1 지구는 평평하지 않다: 경사가 필요한 이유
__4.3.2 기울여 보기
__4.3.3 선형 회귀
4.4 최적화: 최적의 답 선택
__4.4.1 무작위 추측
__4.4.2 무작위 스텝
__4.4.3 똑똑한 스텝
__4.4.4 계산된 지름길
__4.4.5 선형 회귀 적용 사례
4.5 회귀 모델의 간단한 평가와 비교
__4.5.1 평균 제곱근 오차
__4.5.2 학습 성능
__4.5.3 회귀 모델의 자원 활용
4.6 마무리
__4.6.1 한계점과 아직 해결되지 않은 이슈들
__4.6.2 요약
__4.6.3 참고 사항
__4.6.4 연습 문제
2부 평가
5장 학습 모델 평가 및 비교
5.1 평가와 과유불급
5.2 학습 단계 관련 용어
__5.2.1 공장 기계
__5.2.2 기술적으로 이야기하자면
5.3 뭔가 잘못되었다: 과대적합과 과소적합
__5.3.1 합성 데이터와 선형 회귀
__5.3.2 모델 복잡도를 수동으로 조작
__5.3.3 골디락스: 과대적합, 과소적합 그리고 ‘딱 적당한 상태’ 시각화
__5.3.4 단순함
__5.3.5 과대적합에 대해 꼭 기억할 점
5.4 오차부터 비용까지
__5.4.1 손실
__5.4.2 비용
__5.4.3 점수
5.5 (리)샘플링: 소에서 대 생성
__5.5.1 교차 검증
__5.5.2 층화
__5.5.3 반복적 훈련-테스트 분리
__5.5.4 더 나은 길과 뒤섞기
__5.5.5 LOOCV 교차 검증
5.6 쪼개어 보기: 편향과 분산
__5.6.1 데이터의 분산
__5.6.2 모델의 분산
__5.6.3 모델의 편향
__5.6.4 모두 다 함께
__5.6.5 편향-분산 상충 관계의 예시
5.7 시각적 평가와 비교
__5.7.1 학습 곡선: 데이터는 얼마나 많이 필요할까?
__5.7.2 복잡도 곡선
5.8 교차 검증으로 학습 모델 비교
5.9 마무리
__5.9.1 요약
__5.9.2 참고 사항
__5.9.3 연습 문제
6장 분류 모델 평가
6.1 베이스라인 분류 모델
6.2 정확도를 넘어: 분류 모델을 위한 척도
__6.2.1 혼동 행렬에서 혼돈 없애기
__6.2.2 틀릴 수 있는 경우
__6.2.3 혼동 행렬에 기반한 척도
__6.2.4 혼동 행렬 코딩
__6.2.5 다중 클래스 다루기: 다중 클래스 평균
__6.2.6 F1
6.3 ROC 곡선
__6.3.1 ROC의 패턴
__6.3.2 이진 ROC
__6.3.3 AUC 곡선
__6.3.4 다중 클래스 모델, 일대다 그리고 ROC
6.4 또 다른 방법: 일대일
__6.4.1 다중 클래스 AUC 파트 2: 단일 값을 위한 퀘스트
6.5 정밀도-재현율 커브
__6.5.1 정밀도-재현율 상충 관계에 대한 노트
__6.5.2 정밀도-재현율 커브 생성
6.6 누적 반응과 리프트 곡선
6.7 조금 더 복잡한 분류 모델 평가 방법
__6.7.1 이진 분류
__6.7.2 새로운 다중 클래스 문제
6.8 마무리
__6.8.1 요약
__6.8.2 참고 사항
__6.8.3 연습 문제
7장 회귀 모델 평가
7.1 베이스라인 회귀 모델
7.2 회귀 모델의 추가 척도
__7.2.1 커스텀 평가 척도 만들기
__7.2.2 기타 기본 회귀 모델 척도
__7.2.3 R2
7.3 잔차 플롯
__7.3.1 오차 플롯
__7.3.2 잔차 플롯
7.4 정규화 살펴보기
7.5 고도화된 회귀 모델 평가
__7.5.1 여러 척도에 대한 교차 검증 결과
__7.5.2 교차 검증 결과 요약
__7.5.3 잔차
7.6 마무리
__7.6.1 요약
__7.6.2 참고 사항
__7.6.3 연습 문제
3부 더 많은 학습 방법과 개념
8장 더 많은 분류 방법
8.1 분류 문제 다시 보기
8.2 결정 트리
__8.2.1 트리 알고리즘
__8.2.2 돌려 보자: 결정 트리
__8.2.3 결정 트리의 편향과 분산
8.3 서포트 벡터 분류 모델
__8.3.1 SVC 실행
__8.3.2 SVC의 편향과 분산
8.4 로지스틱 회귀
__8.4.1 도박 승산
__8.4.2 확률과 승산, 로그- 승산
__8.4.3 무작정 해 보기: 로지스틱 회귀
__8.4.4 로지스틱 회귀: 괴상한 특성
8.5 판별 분석
__8.5.1 공분산
__8.5.2 방법론
__8.5.3 DA 실행
8.6 가정, 편향 그리고 분류 모델
8.7 분류 모델 비교
__8.7.1 Digits
8.8 마무리
__8.8.1 요약
__8.8.2 참고 사항
__8.8.3 연습 문제
9장 더 많은 회귀 방법
9.1 선형 회귀: 정규화
__9.1.1 정규화 회귀 실행
9.2 서포트 벡터 회귀
__9.2.1 힌지 손실
__9.2.2 선형 회귀에서 정규화 회귀, 그리고 서포트 벡터 회귀까지
__9.2.3 그냥 해 보기 - SVR 스타일
9.3 조각별 상수 회귀
__9.3.1 조각별 상수 회귀 구현
__9.3.2 모델 구현에 대한 일반적인 조언
9.4 회귀 트리
__9.4.1 트리로 회귀 실행
9.5 세 가지 회귀 모델 비교
9.6 마무리
__9.6.1 요약
__9.6.2 참고 사항
__9.6.3 연습 문제
10장 수동 특성 엔지니어링: 데이터 조작
10.1 특성 엔지니어링 용어와 배경
__10.1.1 왜 해야 하나?
__10.1.2 특성 엔지니어링은 언제 해야 하나?
__10.1.3 특성 엔지니어링은 어떻게 발생하나?
10.2 특성 선별과 데이터 축소: 쓰레기 골라 내기
10.3 특성 스케일링
10.4 이산화
10.5 범주형 코딩
__10.5.1 다른 방식의 코딩과 사라진 인터셉트의 흥미로운 사건
10.6 관계와 상호 작용
__10.6.1 수동 특성 생성
__10.6.2 인터랙션
__10.6.3 트랜스포머로 특성 추가
10.7 타깃 조작
__10.7.1 입력 공간 조작
__10.7.2 타깃 조작
10.8 마무리
__10.8.1 요약
__10.8.2 참고 사항
__10.8.3 연습 문제
11장 하이퍼파라미터 튜닝과 파이프라인
11.1 모델, 파라미터, 하이퍼파라미터
11.2 하이퍼파라미터 튜닝
__11.2.1 컴퓨터 과학과 학습 용어에 대한 참고 사항
__11.2.2 완전 검색 사례
__11.2.3 무작위성으로 건초더미에서 바늘 찾기
11.3 재귀적인 토끼 굴로 내려가기: 중첩된 교차 검증
__11.3.1 기본 교차 검증
__11.3.2 그리드서치 모델
__11.3.3 교차 검증 안에 교차 검증
__11.3.4 중첩 교차 검증에 대한 코멘트
11.4 파이프라인
__11.4.1 간단한 파이프라인
__11.4.2 조금 더 복잡한 파이프라인
11.5 파이프라인과 튜닝을 함께
11.6 마무리
__11.6.1 요약
__11.6.2 참고 사항
__11.6.3 연습 문제
4부 복잡도 더하기
12장 학습 모델 조합
12.1 앙상블
12.2 투표 앙상블
12.3 배깅과 랜덤 포레스트
__12.3.1 부트스트래핑
__12.3.2 부트스트래핑에서 배깅으로
__12.3.3 랜덤 포레스트
12.4 부스팅
__12.4.1 부스팅 디테일
12.5 트리 앙상블 방법 비교
12.6 마무리
__12.6.1 요약
__12.6.2 참고 사항
__12.6.3 연습 문제
13장 특성 엔지니어링을 대신하는 모델들
13.1 특성 선별
__13.1.1 지표 기반으로 특성을 선택하는 단순 필터링
__13.1.2 모델 기반 특성 선별
__13.1.3 특성 선별을 학습 파이프라인에 통합
13.2 커널을 이용한 특성 구축
__13.2.1 커널의 등장 배경
__13.2.2 수동 커널 방법들
__13.2.3 커널 방법과 커널 옵션
__13.2.4 커널 SVC: SVM
__13.2.5 SVM에 관한 노트와 예제
13.3 주성분 분석: 비지도 기법
__13.3.1 준비: 중심 이동
__13.3.2 다른 최적의 직선 찾기
__13.3.3 첫 PCA
__13.3.4 PCA 계산
__13.3.5 피날레: 일반적인 PCA에 관한 노트
__13.3.6 커널 PCA와 매니폴드 방법들
13.4 마무리
__13.4.1 요약
__13.4.2 참고 사항
__13.4.3 연습 문제
14장 도메인별 특성 엔지니어링: 도메인에 최적화된 학습
14.1 텍스트 처리
__14.1.1 텍스트 인코딩
__14.1.2 텍스트 학습 사례
14.2 클러스터링
__14.2.1 k-평균 클러스터링
14.3 이미지 처리
__14.3.1 백-오브-비주얼-워즈
__14.3.2 이미지 데이터
__14.3.3 엔드-투-엔드 시스템
__14.3.4 BoVW 트랜스포머 코드
14.4 마무리
__14.4.1 요약
__14.4.2 참고 사항
__14.4.3 연습 문제
15장 연결, 확장 그리고 앞으로의 방향
15.1 최적화
15.2 선형 회귀 구현
__15.2.1 선형 회귀의 시각적 이해
15.3 로지스틱 회귀 구현
__15.3.1 로지스틱 회귀와 제로-원 코딩
__15.3.2 로지스틱 회귀와 플러스원 마이너스원 코딩
__15.3.3 로직스틱 회귀의 시각적 이해
15.4 SVM 구현
15.5 인공신경망
__15.5.1 인공신경망 관점에서 보는 선형 회귀
__15.5.2 인공신경망 관점에서 보는 로지스틱 회귀
__15.5.3 기본 인공신경망을 넘어서
15.6 확률적 그래픽 모델
__15.6.1 샘플링
__15.6.2 PGM 관점에서 보는 선형 회귀
__15.6.3 PGM 관점에서 보는 로지스틱 회귀
15.7 마무리
__15.7.1 요약
__15.7.2 참고 사항
__15.7.3 연습 문제
부록 A nlwpy.py 살펴보기
부록 B 환경 설정