Python 기계 학습 도서 코드 저장소
중요 참고사항(2017년 9월 21일):
이 GitHub 저장소에는 Python Machine Learning 책 제1판 의 코드 예제가 포함되어 있습니다. 2nd Edition 의 코드 예제를 찾고 있다면 대신 이 저장소를 참조하세요.
여러분이 기대할 수 있는 것은 기계 학습을 시작하기 위해 알아야 할 모든 것에 대한 유용한 자료가 풍부한 400페이지입니다. 이론부터 직접 실행에 옮길 수 있는 실제 코드까지! 이 책은 아직 "scikit-learn이 작동하는 방식"에 불과한 또 하나의 책이 아닙니다. 나는 모든 기본 개념을 설명하고, 모범 사례와 주의 사항 측면에서 알아야 할 모든 것을 알려주는 것을 목표로 하며, 주로 NumPy, scikit-learn 및 Theano를 사용하여 이러한 개념을 실행에 옮길 것입니다.
이 책이 당신을 위한 것인지 확실하지 않습니까? 자세한 내용은 서문 및 서문에서 발췌한 내용을 확인하거나 FAQ 섹션을 살펴보세요.
1판, 2015년 9월 23일 발행
단행본: 454페이지
출판사: 팩트 출판
언어: 영어
ISBN-10: 1783555130
ISBN-13: 978-1783555130
킨들 ASIN: B00YSILNL0
독일어 ISBN-13: 978-3958454224
일본어 ISBN-13: 978-4844380603
이탈리아어 ISBN-13: 978-8850333974
중국어(번체) ISBN-13: 978-9864341405
중국어(본토) ISBN-13: 978-7111558804
한국어 ISBN-13: 979-1187497035
러시아어 ISBN-13: 978-5970604090
목차 및 코드 노트북
코드 예제를 보려면 장 헤드라인 옆에 있는 ipynb
/ nbviewer
링크를 클릭하기만 하면 됩니다(현재 내부 문서 링크는 NbViewer 버전에서만 지원됩니다). 이것은 귀하의 편의를 위해 제가 업로드한 책에 동봉된 코드 예제일 뿐입니다. 이 노트북은 공식과 설명 텍스트가 없으면 유용하지 않을 수 있습니다.
- 서문 및 서문에서 발췌
- Python 및 Jupiter Notebook 설정 지침
- 기계 학습 - 컴퓨터에 데이터로부터 학습할 수 있는 기능 제공 [dir] [ipynb] [nbviewer]
- 분류를 위한 기계 학습 알고리즘 훈련 [dir] [ipynb] [nbviewer]
- Scikit-Learn을 사용한 기계 학습 분류기 둘러보기 [dir] [ipynb] [nbviewer]
- 좋은 훈련 세트 구축 – 데이터 전처리 [dir] [ipynb] [nbviewer]
- 차원 축소를 통한 데이터 압축 [dir] [ipynb] [nbviewer]
- 모델 평가 및 초매개변수 최적화에 대한 모범 사례 학습 [dir] [ipynb] [nbviewer]
- 앙상블 학습을 위한 다양한 모델 결합 [dir] [ipynb] [nbviewer]
- 감정 분석에 기계 학습 적용 [dir] [ipynb] [nbviewer]
- 웹 애플리케이션에 기계 학습 모델 포함 [dir] [ipynb] [nbviewer]
- 회귀 분석을 통한 연속형 목표 변수 예측 [dir] [ipynb] [nbviewer]
- 레이블이 없는 데이터 작업 – 클러스터링 분석 [dir] [ipynb] [nbviewer]
- 이미지 인식을 위한 인공 신경망 훈련 [dir] [ipynb] [nbviewer]
- Theano를 통한 신경망 훈련 병렬화 [dir] [ipynb] [nbviewer]
방정식 참조
[PDF] [텍스트]
교육용 슬라이드
현재 Loyola University Chicago에서 제공되는 기계 학습 과정의 슬라이드를 공유해 주신 Dmitriy Dligach에게 큰 감사를 드립니다.
- https://github.com/dmitriydligach/PyMLSlides
추가 수학 및 NumPy 리소스
일부 독자들은 길이 제한으로 인해 포함되지 않은 Math 및 NumPy 입문서에 대해 문의했습니다. 그러나 나는 최근에 다른 책을 위해 그러한 자료를 모았지만, 이 장들이 이 책의 유용한 배경 자료로도 사용되기를 바라면서 이 장들을 온라인에서 무료로 사용할 수 있도록 만들었습니다.
이 책을 인용하면
과학 출판물 및 기타 저작물에서 이 책의 코드 조각이나 기타 내용을 재사용하는 것을 매우 환영합니다. 이 경우 원본 출처를 인용해 주시면 감사하겠습니다.
BibTeX :
@Book{raschka2015python,
author = {Raschka, Sebastian},
title = {Python Machine Learning},
publisher = {Packt Publishing},
year = {2015},
address = {Birmingham, UK},
isbn = {1783555130}
}
MLA :
라슈카, 세바스찬. 파이썬 머신러닝 . 영국 버밍엄: Packt Publishing, 2015. 인쇄.
피드백 및 리뷰
짧은 리뷰 스니펫
Sebastian Raschka의 새 책 Python Machine Learning이 방금 출시되었습니다. 나는 리뷰 사본을 읽을 기회를 얻었고 그것은 내가 기대했던 것과 똑같았습니다. 정말 훌륭했습니다! 잘 정리되어 있고 따라하기 매우 쉬우며 똑똑하고 비전문가에게 좋은 기반을 제공할 뿐만 아니라 실무자도 여기에서 몇 가지 아이디어를 얻고 새로운 요령을 배울 수 있습니다.
– Data Elixir의 Lon Riesberg
정말 훌륭해요! 지금까지는 이론과 실제, 수학과 코드의 올바른 균형을 맞춘 것 같습니다!
– 브라이언 토마스
나는 Scikit-learn을 기반으로 한 모든 기계 학습 타이틀을 (가상으로) 읽었으며 이것은 단연 최고입니다.
– 제이슨 울로소노비치
PACKT Publishing에서 나온 최고의 책입니다. 이것은 Python을 사용한 기계 학습에 대한 매우 잘 작성된 소개입니다. 다른 사람들이 지적했듯이 이론과 응용이 완벽하게 혼합되어 있습니다.
– 조쉬 D.
구하기 힘든 품질이 혼합된 책입니다. 이론을 제어하는 데 필요한 수학과 Python의 응용 코딩을 결합합니다. 또한 다른 많은 책들이 더 많은 청중의 관심을 끌기 위해 Python에 대한 입문서를 제공하는 데 종이를 낭비하지 않는다는 점도 좋습니다. DIY 괴짜뿐만 아니라 지식이 풍부한 작가가 쓴 것임을 알 수 있습니다.
– 아마존 고객
Sebastian Raschka는 이론과 실습을 결합한 놀라운 기계 학습 튜토리얼을 만들었습니다. 이 책은 이론적 관점에서 기계 학습을 설명하고 기계 학습 기술을 실제로 어떻게 사용하는지 보여주는 수많은 코딩된 예제를 제공합니다. 초보자나 고급 프로그래머가 읽을 수 있습니다.
- 윌리엄 P. 로스(William P. Ross), 꼭 읽어야 할 파이썬 책 7권
더 긴 리뷰
이 책이 자신에게 적합한지 결정하는 데 도움이 필요하다면 아래 링크된 "더 긴" 리뷰를 확인하세요. (리뷰를 작성하신 경우 알려주시면 목록에 추가해 드리겠습니다.)
- Chartered Institute for IT의 Patrick Hill이 작성한 Python 기계 학습 리뷰
- 서평: WhatPixel의 Alex Turner가 쓴 Sebastian Raschka의 Python 기계 학습
모래밭
- Amazon.com, Amazon.co.uk, Amazon.de의 전자책 및 문고판
- Packt(출판사)의 전자책 및 문고판
- 다른 서점: Google Books, O'Reilly, Safari, Barnes & Noble, Apple iBooks, ...
- 소셜 플랫폼: Goodreads
번역
- "Apogeo"를 통한 이탈리아어 번역
- "mitp Verlag"를 통한 독일어 번역
- "Impress Top Gear"를 통한 일본어 번역
- 중국어 번역(중국어 번체)
- 중국어 번역(간단한 중국어)
- "교보"를 통한 한국어 번역
- "Helion"을 통한 폴란드어 번역
문헌 참고 자료 및 추가 자료 자료
정오표
보너스 노트북(책에는 없음)
- 로지스틱 회귀 구현 [dir] [ipynb] [nbviewer]
- 기본 파이프라인 및 그리드 검색 설정 [dir] [ipynb] [nbviewer]
- 확장된 중첩 교차 검증 예제 [dir] [ipynb] [nbviewer]
- 간단한 Barebones Flask Webapp 템플릿 [디렉토리 보기][zip 파일로 다운로드]
- MNIST에서 NumPy 배열로 손으로 쓴 숫자 읽기 [GitHub ipynb] [nbviewer]
- JSON을 사용한 Scikit-learn 모델 지속성 [GitHub ipynb] [nbviewer]
- 다항 로지스틱 회귀 / 소프트맥스 회귀 [GitHub ipynb] [nbviewer]
"관련 콘텐츠"(책에는 없음)
- 기계 학습의 모델 평가, 모델 선택 및 알고리즘 선택 - 1부
- 기계 학습의 모델 평가, 모델 선택 및 알고리즘 선택 - 2부
- 기계 학습의 모델 평가, 모델 선택 및 알고리즘 선택 - 3부
사이파이 2016
우리는 오스틴에서 열린 SciPy 2016에서 정말 즐거운 시간을 보냈습니다! 내 책의 많은 독자들을 만나고 이야기를 나눌 수 있어서 정말 기뻤습니다. 좋은 말과 피드백을 보내주셔서 정말 감사드립니다! 혹시 놓친 경우를 대비해 Andreas Mueller와 저는 Scikit-learn을 사용한 기계 학습 소개를 제공했습니다. 관심이 있으시다면 이제 1부와 2부의 비디오 녹화물이 온라인에 공개되었습니다!
파이데이터 시카고 2016
저는 PyData Chicago 2016에서 단 90분 만에 scikit-learn과 머신러닝을 소개하는 다소 어려운 작업을 시도했습니다. 슬라이드와 튜토리얼 자료는 "Learning scikit-learn - An Introduction to Machine Learning in Python"에서 확인할 수 있습니다.
메모
저는 기계 학습(및 일반 "데이터 과학") 알고리즘의 추가 구현을 포함하는 별도의 라이브러리 mlxtend
설정했습니다. 또한 추가 기능과 함께 이 책의 구현(예: 결정 영역 플롯, 인공 신경망 및 순차 기능 선택 알고리즘)을 추가했습니다.
번역
친애하는 독자 여러분 ,
우선, 큰 지원을 해주신 모든 분들께 감사의 말씀을 전하고 싶습니다! 지금까지 보내주신 훌륭한 피드백에 정말 기쁘고, 이 책이 폭넓은 독자들에게 매우 유용했다는 사실이 기쁩니다.
지난 몇 달 동안 저는 수백 통의 이메일을 받았고, 가능한 시간 내에 최대한 많은 답변을 하려고 노력했습니다. 다른 독자들에게도 유용하게 사용할 수 있도록 FAQ 섹션(아래)에 많은 답변을 수집했습니다.
또한, 독자들이 책의 내용을 토론할 수 있는 플랫폼에 대해 문의해 주신 분들도 계십니다. 이 글을 통해 귀하가 다른 독자들과 지식을 토론하고 공유할 수 있는 기회가 되기를 바랍니다.
Google 그룹스 토론 게시판
(그리고 시간이 허락한다면 최선을 다해 직접 질문에 답변해 드리겠습니다! :))
좋은 조언으로 할 수 있는 유일한 일은 그것을 전달하는 것입니다. 그것은 결코 자신에게 아무 소용이 없습니다.
— 오스카 와일드
독자의 예와 적용
다시 한 번, 책에 대한 좋은 피드백에 감사드립니다. 나는 이 책의 개념과 예제를 현실 세계에 적용하고 자신의 프로젝트에 잘 활용하는 독자들로부터 많은 이메일을 받았습니다. 이 섹션에서는 훌륭한 응용 프로그램 중 일부를 수집하기 시작했으며 귀하의 프로젝트를 이 목록에 추가하게 되어 매우 기쁩니다. 저에게 빠른 메일을 보내주세요!
- Richard Lyman의 광학 문자 인식에 관한 40개 스크립트
- Jeremy Nation의 코드 실험
- Jean-Nicholas Hould가 Python에서 처음부터 분류자를 구현하면서 배운 내용
FAQ
일반적인 질문
- 머신러닝과 데이터 과학이란 무엇인가요?
- 당신과 다른 사람들이 때때로 기계 학습 알고리즘을 처음부터 구현하는 이유는 무엇입니까?
- 데이터 과학의 어떤 학습 경로/분야에 집중해야 합니까?
- 어느 시점부터 오픈 소스에 기여를 시작해야 합니까?
- 학습 과정에서 멘토를 갖는 것이 얼마나 중요하다고 생각하시나요?
- 데이터 과학/머신러닝 또는 Python을 중심으로 한 최고의 온라인 커뮤니티는 어디에 있습니까?
- 소프트웨어 엔지니어에게 머신러닝을 어떻게 설명하시겠습니까?
- 머신러닝 초보자를 위한 커리큘럼은 어떤가요?
- 데이터 과학의 정의는 무엇입니까?
- 데이터 과학자는 모델 선택을 어떻게 수행합니까? 캐글이랑 다른건가요?
머신러닝 분야에 대한 질문
- 인공지능과 머신러닝은 어떤 관련이 있나요?
- 현장에서 머신러닝을 적용한 실제 사례는 무엇입니까?
- 데이터 마이닝의 다양한 연구 분야는 무엇입니까?
- 머신러닝과 데이터 마이닝이라는 두 분야의 연구 성격에는 어떤 차이점이 있나요?
- 머신러닝을 통해 문제를 해결할 수 있는지 어떻게 알 수 있나요?
- 머신러닝의 기원은 무엇인가요?
- 학습 기계로서의 분류는 어떻게 개발되었나요?
- 어떤 기계 학습 알고리즘이 최고로 간주될 수 있습니까?
- 분류자의 광범위한 범주는 무엇입니까?
- 분류기와 모델의 차이점은 무엇입니까?
- 파라메트릭 학습 알고리즘과 비모수 학습 알고리즘의 차이점은 무엇입니까?
- 기계 학습에서 비용 함수와 손실 함수의 차이점은 무엇입니까?
ML 개념 및 통계에 관한 질문
비용 함수 및 최적화
- 폐쇄형 방정식, 경사하강법, 확률적 경사하강법, 미니 배치 학습을 통해 모델 피팅 - 차이점은 무엇인가요?
- 선형 회귀 및 Adaline에 대한 경사하강법 규칙을 어떻게 도출합니까?
회귀분석
- Pearson R과 단순 선형 회귀의 차이점은 무엇입니까?
나무 모델
- 랜덤 포레스트 모델은 어떻게 작동하나요? 앙상블 모델의 배깅 및 부스팅과 어떻게 다른가요?
- 대규모 데이터세트에 기존 의사결정 트리 알고리즘을 사용할 때의 단점은 무엇입니까?
- 의사결정 트리 알고리즘의 구현이 일반적으로 바이너리인 이유는 무엇이며, 다양한 불순물 측정항목의 장점은 무엇입니까?
- 분류 오류 대신 엔트로피를 통해 의사결정 트리를 성장시키는 이유는 무엇입니까?
- 랜덤 포레스트는 언제 뛰어난 성능을 발휘할 수 있나요?
모델 평가
- 과적합이란 무엇입니까?
- 과적합을 어떻게 방지할 수 있나요?
- 교차 검증을 수행할 때 가능한 최대 접기 수를 갖는 것이 항상 더 좋습니까?
- SVM 분류기를 훈련할 때 서포트 벡터 수가 많은 것이 좋은가요, 아니면 적은 것이 좋은가요?
- 모델을 어떻게 평가하나요?
- 다중 클래스 분류에 가장 적합한 검증 지표는 무엇입니까?
- 예측 모델 기술을 선택할 때 어떤 요소를 고려해야 합니까?
- 분류기 동작을 시각화하고 이해하는 데 도움이 되는 최고의 장난감 데이터 세트는 무엇입니까?
- SVM 커널을 어떻게 선택합니까?
- 막간: 교차 검증의 성능 측정 항목 비교 및 계산 - 불균형 클래스 문제 및 F1 점수를 계산하는 3가지 다른 방법
로지스틱 회귀
- Softmax 회귀란 무엇이며 로지스틱 회귀와 어떤 관련이 있나요?
- 로지스틱 회귀가 선형 모델로 간주되는 이유는 무엇입니까?
- 정규화된 로지스틱 회귀의 확률론적 해석은 무엇입니까?
- 로지스틱 회귀의 정규화는 항상 더 나은 적합성과 더 나은 일반화를 가져오나요?
- Naive Bayes와 로지스틱 회귀의 주요 차이점은 무엇입니까?
- 기계 학습의 맥락에서 "소프트맥스 및 다항 로지스틱 손실"은 정확히 무엇입니까?
- 로지스틱 회귀와 신경망의 관계는 무엇이며 언제 어느 것을 사용해야 합니까?
- 로지스틱 회귀: 왜 시그모이드 함수인가?
- 선형 회귀의 정규 방정식과 유사한 로지스틱 회귀에 대한 분석 솔루션이 있습니까?
신경망과 딥러닝
- 딥러닝과 일반 머신러닝의 차이점은 무엇인가요?
- 신경망의 역전파 알고리즘을 시각적으로 설명할 수 있나요?
- 딥 네트워크가 발명되는 데 왜 그렇게 오랜 시간이 걸렸나요?
- 딥러닝을 배우기에 좋은 책이나 논문은 무엇입니까?
- 딥러닝 라이브러리가 왜 이렇게 많은 걸까요?
- 왜 어떤 사람들은 신경망/딥러닝을 싫어합니까?
- 특정 문제에 대해 딥 러닝이 SVM이나 랜덤 포레스트보다 더 잘 작동하는지 어떻게 알 수 있나요?
- 신경망의 오류가 증가하면 무엇이 문제인가요?
- 인공 신경망 알고리즘을 어떻게 디버깅합니까?
- Perceptron, Adaline 및 신경망 모델의 차이점은 무엇입니까?
- 드롭아웃 기술의 기본 아이디어는 무엇입니까?
지도 학습을 위한 기타 알고리즘
- Nearest Neighbor가 게으른 알고리즘인 이유는 무엇입니까?
비지도 학습
준지도 학습
- 지도 및 비지도 학습에 비해 준지도 학습의 장점은 무엇입니까?
앙상블 방법
- 분류기와 스태킹을 결합하는 것이 가장 좋은 것을 선택하는 것보다 낫습니까?
전처리, 특징 선택 및 추출
- 테스트 데이터를 변환하기 위해 훈련 매개변수를 재사용해야 하는 이유는 무엇입니까?
- 기계 학습의 다양한 차원 축소 방법은 무엇입니까?
- 차원 축소를 위한 LDA와 PCA의 차이점은 무엇입니까?
- 데이터 정규화/표준화는 언제 적용해야 합니까?
- 평균 중심화 또는 기능 확장이 주성분 분석에 영향을 줍니까?
- 많은 기능이 포함된 머신러닝 문제를 어떻게 공격합니까?
- 누락된 데이터를 처리하기 위한 일반적인 접근 방식은 무엇입니까?
- 기능 선택을 위한 필터, 래퍼 및 임베디드 방법의 차이점은 무엇입니까?
- 데이터 준비/전처리 단계를 특성 엔지니어링의 일부로 간주해야 합니까? 왜 아니면 안되나요?
- 텍스트 분류를 위한 BW(Bag of Words) 기능 표현이 희소 행렬로 간주됩니까?
나이브 베이즈
- Naive Bayes 분류기가 왜 순진합니까?
- Naive Bayes의 결정 경계는 무엇입니까?
- 혼합 변수 유형에 Naive Bayes 분류자를 사용할 수 있습니까?
- Naive Bayes에서 바이너리 및 계속 기능과 같은 다양한 변수 유형을 혼합할 수 있습니까?
다른
- 기계 학습 측면에서 유클리드 거리란 무엇입니까?
- 평균이나 평균이 아닌 중앙값을 언제 사용해야 합니까?
데이터 과학 및 기계 학습을 위한 프로그래밍 언어 및 라이브러리
- 오늘날 데이터 과학에서 R이 광범위하게 사용됩니까?
- TensorFlow와 scikit-learn의 주요 차이점은 무엇입니까?
책에 관한 질문
- 프레젠테이션이나 블로그에서 책의 단락과 이미지를 사용할 수 있나요?
- 이 책은 다른 머신러닝 책과 어떻게 다른가요?
- 코드 예제에는 어떤 버전의 Python이 사용되었습니까?
- 어떤 기술과 라이브러리가 사용되고 있나요?
- 어떤 책 버전/형식을 추천하시겠습니까?
- 머신러닝을 위해 Python을 선택한 이유는 무엇입니까?
- 코드 예제에서 앞뒤에 밑줄을 그렇게 많이 사용하는 이유는 무엇입니까?
- 코드 예제에서
return self
관용구의 목적은 무엇입니까? - 전제 조건과 권장되는 사전 읽기가 있습니까?
- 범주형 데이터에 SVM을 어떻게 적용할 수 있나요?
연락하다
질문에 답변해 드리겠습니다. 저에게 이메일을 보내시거나 Google 그룹스 이메일 목록에 질문해 보세요.
계속해서 연락하고 싶다면 데이터 과학 및 기계 학습에 관한 매우 활발한 트위터 스트림(@rasbt)을 참조하세요. 나는 또한 내가 특히 흥미를 느끼는 모든 것들을 게시하는 블로그를 운영하고 있습니다.