책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
2019년 세종도서 학술부문 선정도서
요약
머신 러닝을 처음 접하는 독자들이 구현 언어, 구현 패키지, 구현 편집기를 포함해 종합적으로 이해하고 바라볼 수 있도록 안내하는 책이다. 머신 러닝의 기본 개념부터 가장 범용적이고 활용도가 높은 알고리즘을 예제를 통해 설명한다. 더불어 단순한 설명으로만 멈추지 않고, 한 걸음 더 나아가 수식적인 해석도 할 수 있도록 안내한다.
이 책에서 다루는 내용
■ 머신 러닝 구현 언어인 파이썬의 기본 구조
■ 파이썬 편집기 파이참
■ 머신 러닝 기본 패키지인 넘파이, 판다스, 맷플롯립
■ 머신 러닝 패키지인 사이킷런, 케라스
■ 범용 또는 가장 활용이 많은 머신 러닝 알고리즘
■ 알고리즘의 이해를 높이기 위한 적절한 수식 도입 및 구현
■ 알고리즘마다 적절한 예와 예제
이 책의 대상 독자
■ 머신 러닝에 입문하는 데 필요한 내용을 종합적으로 이해하고자 하는 독자
■ 머신 러닝에 입문했으나 좀 더 상세한 알고리즘을 알고 한 걸음 더 나아가고자 하는 독자
■ 머신 러닝을 구현 언어의 코드와 함께 이해하고자 하는 개발자
■ 머신 러닝 알고리즘을 현장에서 바로 적용하고자 하는 데이터 과학자
이 책의 구성
이 책은 크게 두 부분으로 구성돼 있다. 머신 러닝 언어인 파이썬 언어 및 주요 패키지에 대한 설명, 그리고 각각의 알고리즘에 관한 내용이다.
파이썬 언어와 머신 러닝 기본 패키지인 사이킷런(scikit-learn), 케라스(Keras)에 대한 이해가 있다면 바로 10장부터 시작해도 무방하다.
파이썬 언어와 패키지에서 꼭 필요하다고 생각하는 언어의 기본 구조, 넘파이(NumPy), 판다스(Pandas), 맷플롯립(matplotlib), 사이킷런, 케라스를 수록했다. 또한 각 패키지의 설명은 꼭 필요한 클래스와 메소드 위주로 설명했다. 물론 이후의 머신 러닝 알고리즘의 예제에서는 해당 장에서 다루지 않는 다른 클래스와 메소드를 사용하기도 하지만 전반적인 이해를 돕도록 하는 것에 초점을 뒀다.
10장. ‘표기법’, 11장. ‘모델 평가와 선택‘과 12장. ‘선형 회귀에 의한 머신러닝 구조에 대한 이해’는 머신 러닝 이해를 위한 개요라 할 수 있어, 꼭 숙지했으면 하며 이후 다른 장은 개별적으로 필요할 때 살펴봐도 무방하다.
머신 러닝 알고리즘 중에서 가장 많이 활용되는 로지스틱회귀, 결정 나무, 나무 기반의 앙상블 모델인 랜덤 포레스트, 그래디언트 부스팅, 서포트 벡터 머신, 다층 신경망, 합성곱 신경망, 순환 신경망을 수록했으며 비지도 학습 모델인 특이값 분해, 주성분 분석, 연관 분석 및 군집 분석을 수록했다.
각 머신 러닝 알고리즘에서는 핵심이 되는 알고리즘 구조를 수식과 함께 다루며, 이를 구현한 예제도 수록했다. 알고리즘 내용에서 너무 많은 사전 지식이 필요한 경우에는 일정 부분을 하나의 사실로 인정하고 그 이후의 내용을 다룬다. 예를 들어 "특이값 분해"에서 임의의 행렬은 무조건 UDVT로 분해되는데, 분해되는 과정부터 이를 설명하기에는 수학적인 내용의 깊이도 깊고 사전 지식이 많다. 이런 이유에서 "분해가 된다는 것"을 하나의 사실로 인정하고 이후의 내용을 진행하겠다.
신경망 기법에서는 가급적 핵심이 되는 역전파(back propagation) 또는 후진 패스 과정을 간단하나마 예제와 수식으로 설명했다.
가급적 이 한 권으로 머신 러닝의 전반적인 구조와 구현을 설명하고자 했다. 이 의도가 제대로 잘 전달됐으면 한다.
상세 이미지
목차
목차
- 1장. 머신 러닝 개요
- 1.1 머신 러닝의 정의
- 1.2 머신 러닝의 응용 분야
- 1.2.1 가상 개인 비서
- 1.2.2 구글 맵
- 1.2.3 상품 추천
- 1.3 머신 러닝의 기술적 단계
- 1.4 머신 러닝 알고리즘
- 1.5 머신 러닝 알고리즘의 범위
- 1.6 머신 러닝 알고리즘의 구현
- 2장. 파이썬 설치
- 2.1 개요
- 2.2 아나콘다를 이용한 파이썬 설치
- 2.2.1 아나콘다 내려받기
- 2.2.2 아나콘다 설치
- 2.3 파이참 내려받기 및 설치
- 2.4 텐서플로 설치
- 2.5 케라스 설치
- 2.6 추가 패키지 설치 및 환경 변수 설정
- 3장. 파이참 개요
- 3.1 개요
- 3.2 프로젝트 생성
- 3.3 전체 화면 구성
- 3.4 개발 환경 맞춤
- 3.5 코드 작성 도우미 기능
- 3.6 파이썬 파일 생성
- 3.7 탐색
- 3.8 디버깅
- 3.9 버전 관리
- 3.10 재구성
- 3.11 단축키 찾기
- 4장. 파이썬 언어에 대한 이해
- 4.1 개요
- 4.2 데이터형
- 4.3 식별자의 표기
- 4.4 값의 할당
- 4.5 형변환
- 4.6 열 컨테이너 인덱싱
- 4.7 논리 연산자
- 4.8 문 구성
- 4.9 모듈 가져오기
- 4.10 조건문
- 4.11 수학 함수
- 4.12 조건 반복문
- 4.13 컨테이너형 일반 연산
- 4.14 리스트 연산
- 4.15 딕셔너리 연산
- 4.16 집합 연산
- 4.17 함수 정의
- 4.18 문자열 연산
- 4.19 포맷 구성하기
- 5장. 패키지 이해
- 5.1 개요
- 5.2 배열 생성
- 5.3 배열 연산
- 5.4 배열 요소 값 정하기
- 5.5 다차원 배열
- 5.6 배열 조각내기
- 5.7 팬시 인덱싱
- 5.8 배열 생성자
- 5.9 배열의 추가(행 또는 열)
- 5.10 배열의 축과 계산
- 5.11 배열의 방송
- 6장. 판다스 패키지 이해
- 6.1 개요
- 6.2 데이터 구조
- 6.3 부분 데이터 구성
- 6.4 데이터 요약
- 6.5 신규 열 생성
- 6.6 결측값 처리
- 6.7 데이터 결합
- 6.8 그룹화
- 6.9 모양 변경
- 7장. Matplotlib 패키지 이해
- 7.1 개요
- 7.2 데이터 준비
- 7.3 그래프 준비
- 7.4 그래프 생성
- 7.5 그래프 수정
- 7.6 그래프 저장
- 7.7 그래프 보여주기 및 초기화
- 8장. scikit-learn 패키지 이해
- 8.1 개요
- 8.2 데이터 불러오기
- 8.3 데이터 분할
- 8.4 모델 적합 및 평가
- 8.5 모수 추정값
- 8.6 비지도 학습의 예
- 9장. 케라스 패키지 이해
- 9.1 개요
- 9.2 다층 신경망 구현
- 9.3 심층 신경망 구현
- 10장. 표기법
- 11장. 모델 평가와 선택
- 11.1 개요
- 11.2 훈련 데이터
- 11.3 모델 적합도의 측정
- 11.4 편향-분산 균형
- 12장. 선형 회귀에 의한 머신러닝 구조에 대한 이해
- 12.1 개요
- 12.2 가설함수와 비용함수
- 12.3 알고리즘
- 12.4 비용함수의 원천
- 13장. 분류 문제와 로지스틱회귀분석
- 13.1 개요
- 13.2 선형회귀 대 로지스틱회귀
- 13.3 비용함수
- 13.4 로그-오즈
- 13.5 연결 함수
- 13.6 분류 문제에서의 모델 평가
- 13.7 소프트맥스 회귀
- 13.8 예제
- 14장. 모델 선택 및 정규화
- 14.1 개요
- 14.2 교차 검증
- 14.3 변수 선택
- 14.4 정규화 과정과 변수 선택
- 14.5 예제
- 15장. 분류와 회귀 나무
- 15.1 개요
- 15.2 회귀 나무
- 15.3 최적 회귀 나무의 선택
- 15.4 분류 나무
- 15.5 나무의 몇 가지 이슈
- 15.6 예제
- 16장. 랜덤 포레스트
- 16.1 개요
- 16.2 배깅
- 16.3 OOB 오차
- 16.4 변수 중요도
- 16.5 랜덤 포레스트 알고리즘
- 16.6 랜덤 포레스트에서의 변수 중요도
- 16.7 예제
- 17장. 그래디언트 부스팅
- 17.1 개요
- 17.2 부스팅
- 17.3 ADABOOST.M1
- 17.4 부스팅과 가법 모델
- 17.5 전진 순차방식 가법 모델링
- 17.6 지수 손실함수와 적응 부스팅
- 17.7 부스팅의 확장
- 17.8 부스팅의 초 모수 조정
- 17.9 부스팅의 정규화
- 17.10 예제
- 18장. 서포트 벡터 머신
- 18.1 개요
- 18.2 로지스틱회귀와 초평면
- 18.3 표기법
- 18.4 마진과 최적 마진 분류기(optimal margin classifier)
- 18.5 라그랑지 쌍대성
- 18.6 라그랑지 쌍대성을 이용한 최대 마진 분류기
- 18.7 커널
- 18.8 정규화와 비분리 경우
- 18.9 여유 변수(slack variable)와 초 모수 C
- 18.10 비용함수
- 18.11 서포트 벡터 머신의 모수 추정
- 18.12 예제: 커널 함수로 분리 가능한 경우(하드 마진)
- 18.13 예제: 커널 함수로 분리가 불가능한 경우(소프트 마진)
- 18.14 예제: 선형 이외의 커널 함수 적용
- 18.15 초 모수의 결정
- 18.16 예제: [BANK] 데이터 적용
- 19장. 다층 신경망
- 19.1 개요
- 19.2 표기법
- 19.3 전진 패스
- 19.4 활성함수
- 19.5 전진 패스의 예시
- 19.6 후진 패스
- 19.7 후진 패스의 예시
- 19.8 초깃값 주기
- 19.9 기울기 소멸 문제
- 19.10 입력변수의 표준화
- 19.11 과적합 문제
- 19.12 예제: [BANK] 데이터 적용
- 20장. 합성곱 신경망
- 20.1 개요
- 20.2 합성곱층
- 20.3 결합층
- 20.4 완전연결층
- 20.5 합성곱 신경망 아키텍처의 예시
- 20.6 모수의 추정
- 20.7 예제: [DIGITS] 데이터 적용(다층 신경망)
- 20.8 예제: [DIGITS] 데이터 적용(합성곱 신경망)
- 21장. 순환 신경망
- 21.1 개요
- 21.2 기본 순환 신경망
- 21.3 모수의 추정
- 21.4 후진 패스 예제
- 21.5 장단기 기억 신경망
- 21.6 LSTM 예시
- 22장. 특이값 분해
- 22.1 개요
- 22.2 정의
- 22.3 분해 행렬의 계산
- 22.4 특이값 분해 계산
- 22.5 특이값 분해 예제: 추천 시스템
- 23장. 주성분 분석
- 23.1 개요
- 23.2 정의
- 23.3 주성분의 계산
- 23.4 주성분을 이용한 차원 축소
- 23.5 주성분의 기학학적 의미
- 23.6 주성분의 계산 예제
- 23.7 주성분을 이용한 분석(예: MNIST 손글씨 숫자 데이터)
- 24장. 연관 분석
- 24.1 개요
- 24.2 표기법
- 24.3 지지도, 신뢰도 그리고 향상도
- 24.4 APRIORI 알고리즘
- 24.5 APRIORI 알고리즘 예시
- 24.6 APRIORI 알고리즘의 문제
- 24.7 예제
- 25장. 군집 분석
- 25.1 개요
- 25.2 표기법
- 25.3 k-평균 군집화
- 25.4 k-평균 군집화 알고리즘
- 25.5 k-평균 군집화 알고리즘 예시
- 25.6 격차 통계량을 이용한 k의 선택
- 25.7 격차 통계량 계산 예제
- 25.8 실루엣 값을 이용한 군집의 평가
- 25.9 실루엣 값 계산 예제
도서 오류 신고
정오표
정오표
[p.93 : 코드]
5,,6,7,8
->
5,6,7,8
[p.177 : 코드 5행]
logisticModel.fit(x, y)
->
logisticModel.fit(x.values.reshape(-1,1), y)