티스토리 뷰

Hobby/Book

[Book][ML] 파이썬을 활용한 머신러닝 쿡북

생각많은 소심남 2019. 11. 16. 20:43

 (해당 포스트에서 언급되는 "파이썬을 활용한 머신러닝 쿡북" 책은 한빛미디어로부터 제공받았고, 이에 대한 서평을 쓴 것 임을 알려드립니다.)

 현업이나 학교 과제 중에서 머신러닝 관련 일을 하게 되면, 제일 번거로운게 API의 사용이나 내가 원하는대로 고치는 것이다. 물론 Tensorflow나 Scikit-learn과 같이 유명한 프레임워크는 API documentation도 제공하고, 많은 사람들이 실제로 접해보면서 나름 쉽게 풀어쓴 예제들이 많이 제공되지만, 꼭 찾다보면 내가 필요한 것을 설명한 게 없는 경우가 많다. 나같은 경우에는 얼마 전에 언급한 Exploratory Data Analysis (EDA)에 필요한 문제를 해결하다가 딱 맞게 설명된 예제도 없어서 나름 응용해본 케이스를 소개했었는데, 이처럼 내가 원하는 기능만 딱 설명해주는 (덧붙여서 좀 응용할 수 있는 예제도 제공한다면) 그런 책이 있다면 좋을 것 같았다.

그림 1. 파이썬을 활용한 머신러닝 쿡북

 이번에 읽게된 "파이썬을 활용한 머신러닝 쿡북"(원제 : Machine Learning with Python Cookbook) 은 사실 ML이 무엇인지 원론적으로 접근한 내용을 다루는 게 아니라, 제목에도 나와있다시피 Python으로 ML을 어떻게 하면 활용할 수 있을까 그런 예시들을 약 200여개 정도 모아둔 내용으로 담고 있다. 그래서 보통 ML 입문서적을 보면 처음에 Linear Regression부터 다루면서 심화된 내용을 다루는 반면, 이 책은 서두부터 과제를 던진다. 첫 과제는 "벡터는 만들어야 합니다" 이다. 역자의 서문에도 보면 머신러닝의 개념을 잘 모르는 사람한테는 이책을 추천하지 않는다고 명시되어 있다. 어떻게 보면 내가 겪었던 것처럼 본인이 Python으로 ML관련 문제를 풀어야 할 때, 이 책은 어쩌면 제목그대로 쿡북의 역할을 할 수 있다. (사실 앞에서 소개했던 케이스도 여기에도 언급되어 있었다.) 

 이 책은 전반적으로 ML에서 다루는 알고리즘을 직접 Scikit-Learn이나 Keras로 구현해보는 예제를 담고 있으며, 초반부에는 이런 ML 알고리즘을 다루기 앞서 필요한 EDA를 하기 위해 몇가지 필요한 테크닉(vector, matrix, pandas dataframe 처리)들을 소개한다. 개인적으로 마음에 들었던 것은 딱 ML 알고리즘 예제에만 내용이 편중되어 있는 것이 아니라, 이를 활용한 자연어처리나 비전쪽 예제들도 포함되어 있어, 응용해볼 수 있는 여지를 이 책 한권으로 제공한다는 것이었다. 보통은 EDA에 필요한 책 따로, ML 알고리즘에 관한 책 따로, 비전 책 따로, 이런식으로 주제마다 책이 필요했겠지만, 이 책은 모든 내용이 하나에 담겨 있어, 현업에서 직접 응용하기 좋다는 장점이 있을 것 같다. 물론 예제 위주의 책인 만큼, 일반 책처럼 원론적인 내용에 대한 설명이 부족하게 느껴질 수는 있으나, 그렇다고 그 내용도 빠질 것 없이 핵심적인 내용만 담고 있어 누가 봐도알차지 않을까 생각한다. (물론 부족함을 느낀다면 스스로 공부를 해보는게 필요한 것은 당연하다.) 참고로 책에서 다루고 있는 세부 내용은 다음과 같다.

  • 벡터, 행렬, 배열
  • 수치형과 범주형 데이터, 텍스트, 이미지, 날짜, 시간 다루기
  • 특성 추출(Feature Extraction)과 특성 선택(Feature Selection)을 사용한 차원 축소
  • 모델 평가와 선택
  • 선형 회귀, 로지스틱 회귀, 트리 랜덤 포레스트, k-최근접 이웃
  • 서포트 벡터 머신(SVM), 나이브 베이즈, 군집, 신경망
  • 훈련된 모델의 저장과 복원

그림 2. 한국어판에 추가된 덧붙임

 추가로 한국어판에서는 원본에서는 없는 "덧붙임"이란 내용이 추가되어 있다. 이 부분에서는 실제 해당 Function을 수행할 필요가 생길 때, 고려해야 할 상황이나 버전별 유의할 사항에 대해서 설명이 되어 있다. 

 일단 나같은 경우는 직접 코드를 실행해보면서 몸으로 배우는 스타일이라서 그런지 이런 접근방식의 책이 학습에 조금더 도움이 되었다. 그러면서 책의 활용 방법에 대해서도 혼자 생각해보았는데, 아무래도 어떤 문제에 대한 궁금즘이 딱 생겼을때, 먼저 목차를 열어봐서 내가 궁금한 내용을 찾고 이에 대한 예제를 찾아서 직접 해보면 조금 더 이 책의 의도나 담은 내용을 잘 습득할 수 있는 방법이 아닐까 싶다. 그리고 동 출판사에서 관련 분야에 대한 전문 서적들이 출판되어 있으니, 이 책과 같이 곁들여서 본다면 조금이나 도움이 될거 같다.

그림 3. 동 출판사에서 출판된 ML 관련 서적들

 해당 책에 대한 github도 제공되고 있으니, 글의 내용이나 글에서 사용된 예제에 대한 궁금한 사람이라면 먼저 접해보는 것도 좋을 것 같다.

 원서 github (원저자가 아닌 외부 사람이 만들었다.) :
 https://github.com/DustinAlandzes/machine-learning-with-python-cookbook-notes
 역서 github (구글 GDE이자 역자이신 박해선님이 만드신 repo이다.) :
 https://github.com/rickiepark/machine-learning-with-python-cookbook

ML 관련 서적
 
핸즈온 머신러닝
오렐리앙 제롱 저/박해선 역
 
파이썬 라이브러리를 활용한 머신러닝
안드레아스 뮐러,세라 가이도 공저/박해선 역
 
파이썬을 활용한 머신러닝 쿡북
크리스 알본 저/박해선 역
 
예스24 | 애드온2
댓글