메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

파이썬을 활용한 머신러닝 쿡북

전처리에서 딥러닝까지, 판다스와 사이킷런 중심의 실전 문제 해결 200선

한빛미디어

번역서

판매중

  • 저자 : 크리스 알본
  • 번역 : 박해선
  • 출간 : 2019-09-01
  • 페이지 : 508 쪽
  • ISBN : 9791162241950
  • 물류코드 :10195
  • 초급 초중급 중급 중고급 고급
4.7점 (32명)
좋아요 : 3

 

200개 비법 레시피로 실무 머신러닝 문제를 쉽고 빠르게 해결하기

 

200여 개의 비법 레시피를 제공하는 이 책은 실무에서 접하는 다양한 머신러닝 문제를 해결하도록 도와준다. 판다스나 사이킷런 같은 파이썬 라이브러리로 데이터 적재, 텍스트나 수치형 데이터 다루기, 모델 선택, 차원 축소 등 다양한 문제를 해결할 수 있다.

 

레시피의 코드를 샘플 데이터셋에 적용하며 실제로 코드가 어떻게 동작하는지 확인해본다. 문제 해결에 대한 설명과 유용한 배경지식도 제공한다. 이 책은 이론과 개념 설명을 넘어서 머신러닝 애플리케이션 제작에 필요한 구체적인 도구를 제시한다. 실무에서 레시피를 그대로 적용하거나 적절히 수정하여 쉽고 빠르게 문제를 해결하기 바란다.

 

 

출판사 리뷰

 

 

머신러닝 시스템 실무 개발자를 위한 본격적인 문제 해결 가이드북

이 책은 일상적인 머신러닝 작업에서 발생하는 문제를 해결하는 데 필요한 각종 세부사항을 다룹니다. 데이터 과학자와 머신러닝 엔지니어가 모델을 만들면서 가장 많이 사용하는 작업에 필요한 거의 200여 개에 달하는 독립적인 해결책을 담았습니다. 역자의 말을 빌리자면 ‘머신러닝 지식을 모아놓은 두꺼운 책이 아니라, 전문가를 위한 스위스 만능칼 같은’ 책입니다. 이 책의 목표는 실제 머신러닝 시스템을 만드는 사람들을 위한 참고 도서가 되는 것입니다. 

또한 이 책에는 한국어판만의 특별 팁을 레시피별로 추가 수록했습니다. 원서 자체가 쿡북 스타일이다 보니 하나의 레시피가 특정 메서드나 클래스의 사용 방법을 다루긴 하지만, 레시피가 비교적 짧아 다양한 옵션이나 유사 함수들을 충분히 설명하지는 못합니다. 원서의 이런 미진한 부분을 보완하고자 역자는 대부분의 레시피에 '덧붙임'이라는 항목을 새롭게 만들고 내용을 추가했습니다. 역자가 이처럼 세심하게 추가 보완한 내용을 통해 독자 여러분이 현업에서의 시스템 개발에 필요한 더욱 풍부하고 실용적인 정보를 얻기를 바랍니다.  

 

 

주요 내용

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

 

 

추천사

 

전문가가 참고하기에도 초보자가 읽기에도 적절한 분량의 튜토리얼을 쿡북의 특성을 살려 알기 쉽게 잘 엮어냈습니다. 이 책은 면접을 앞둔 데이터 과학자, 배운 것을 복습하고 싶은 사람, 책상에 올려놓을 간결하지만 완벽한 참고서를 찾는 사람에게 안성맞춤입니다.

- 저스틴 보조니어_ 그럽허브(Grubhub)의 수석 데이터 과학자, 『테스트 주도 머신 러닝』 저자

 

 

[상세이미지]파이썬을 활용한 머신러닝 쿡북_700.jpg

 

크리스 알본 저자

크리스 알본

선거 모니터링에서부터 재난 구조에 이르기까지 십여 년간 통계학습과 인공지능, 소프트웨어 공학을 정치, 사회, 인도주의 활동에 적용해온 데이터 과학자이자 정치학자입니다. 현재 크리스는 프런티어 마켓(frontier market)의 인터넷 사용자를 위해 와이파이 네트워크를 구축하는 케냐의 스타트업인 BRCK의 최고데이터과학자(CDS)입니다.

 

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 텐서 플로우 블로그(tensorflow.blog)를 운영하고 있고, 머신러닝과 딥러닝에 관한 책을 집필하고 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다.

『인공지능 전문가가 알려 주는 챗GPT로 대화하는 기술』(한빛미디어, 2023), 『혼자 공부하는 데이터 분석 with 파이썬』(한빛미디어, 2023), 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다.

『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 개정 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『파이토치로 배우는 자연어 처리』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗, 2021), 『딥러닝 일러스트레이티드』(시그마프레스, 2021), 『GAN 인 액션』(한빛미디어, 2020)을 포함하여 여러 권의 책을 우리말로 옮겼습니다.

 

 

CHAPTER 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 역행렬

__1.21 난수 생성하기

 

CHAPTER 2 데이터 적재

__2.0 소개

__2.1 샘플 데이터셋 적재하기

__2.2 모의 데이터셋 만들기

__2.3 CSV 파일 적재하기

__2.4 엑셀 파일 적재하기

__2.5 JSON 파일 적재하기

__2.6 SQL 데이터베이스로부터 적재하기

 

CHAPTER 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 데이터프레임 병합하기

 

CHAPTER 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 누락된 값 채우기

 

CHAPTER 5 범주형 데이터 다루기

__5.0 소개

__5.1 순서가 없는 범주형 특성 인코딩하기

__5.2 순서가 있는 범주형 특성 인코딩하기

__5.3 특성 딕셔너리를 인코딩하기

__5.4 누락된 클래스 값 대체하기

__5.5 불균형한 클래스 다루기

 

CHAPTER 6 텍스트 다루기

__6.0 소개

__6.1 텍스트 정제하기

__6.2 HTML 파싱과 정제하기

__6.3 구두점 삭제하기

__6.4 텍스트 토큰화하기

__6.5 불용어 삭제하기

__6.6 어간 추출하기

__6.7 품사 태깅하기

__6.8 텍스트를 BoW로 인코딩하기

__6.9 단어 중요도에 가중치 부여하기

 

CHAPTER 7 날짜와 시간 다루기

__7.0 소개

__7.1 문자열을 날짜로 변환하기

__7.2 시간대 다루기

__7.3 날짜와 시간 선택하기

__7.4 날짜 데이터를 여러 특성으로 나누기

__7.5 날짜 간의 차이를 계산하기

__7.6 요일을 인코딩하기

__7.7 시차 특성 만들기

__7.8 이동 시간 윈도 사용하기

__7.9 시계열 데이터에서 누락된 값 다루기

 

CHAPTER 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 컬러 히스토그램을 특성으로 인코딩하기

 

CHAPTER 9 특성 추출을 사용한 차원 축소

__9.0 소개

__9.1 주성분을 사용해 특성 줄이기

__9.2 선형적으로 구분되지 않은 데이터의 차원 축소하기

__9.3 클래스 분리를 최대화하여 특성 줄이기

__9.4 행렬 분해를 사용하여 특성 줄이기

__9.5 희소한 데이터의 특성 줄이기

 

CHAPTER 10 특성 선택을 사용한 차원 축소

__10.0 소개

__10.1 분산을 기준으로 수치 특성 선택하기

__10.2 분산을 기준으로 이진 특성 선택하기

__10.3 상관관계가 큰 특성 다루기

__10.4 분류 작업에 관련 없는 특성 삭제하기

__10.5 재귀적 특성 제거하기

 

CHAPTER 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 하이퍼파라미터 값의 영향을 시각화하기

 

CHAPTER 12 모델 선택

__12.0 소개

__12.1 완전 탐색을 사용해 최선의 모델 선택하기

__12.2 랜덤 서치를 사용해 최선의 모델 선택하기

__12.3 여러 학습 알고리즘에서 최선의 모델 선택하기

__12.4 전처리와 함께 최선의 모델 선택하기

__12.5 병렬화로 모델 선택 속도 높이기

__12.6 알고리즘에 특화된 기법을 사용하여 모델 선택 수행 속도 높이기

__12.7 모델 선택 후 성능 평가하기

 

CHAPTER 13 선형회귀

__13.0 소개

__13.1 직선 학습하기

__13.2 교차 특성 다루기

__13.3 비선형 관계 학습하기

__13.4 규제로 분산 줄이기

__13.5 라소 회귀로 특성 줄이기

 

CHAPTER 14 트리와 랜덤 포레스트

__14.0 소개

__14.1 결정 트리 분류기 훈련하기

__14.2 결정 트리 회귀 훈련하기

__14.3 결정 트리 모델 시각화하기

__14.4 랜덤 포레스트 분류기 훈련하기

__14.5 랜덤 포레스트 회귀 훈련하기

__14.6 랜덤 포레스트에서 중요한 특성 구분하기

__14.7 랜덤 포레스트에서 중요한 특성 선택하기

__14.8 불균형한 클래스 다루기

__14.9 트리 크기 제어하기

__14.10 부스팅을 사용하여 성능 향상하기

__14.11 OOB 데이터로 랜덤 포레스트 평가하기

 

CHAPTER 15 k-최근접 이웃

__15.0 소개

__15.1 샘플의 최근접 이웃 찾기

__15.2 k-최근접 이웃 분류기 만들기

__15.3 최선의 이웃 개수 결정하기

__15.4 반지름 기반의 최근접 이웃 분류기 만들기

 

CHAPTER 16 로지스틱 회귀

__16.0 소개

__16.1 이진 분류기 훈련하기

__16.2 다중 클래스 분류기 훈련하기

__16.3 규제로 분산 줄이기

__16.4 대용량 데이터에서 분류기 훈련하기

__16.5 불균형한 클래스 다루기

 

CHAPTER 17 서포트 벡터 머신

__17.0 소개

__17.1 선형 분류기 훈련하기

__17.2 커널을 사용해 선형적으로 구분되지 않는 클래스 다루기

__17.3 예측 확률 계산하기

__17.4 서포트 벡터 식별하기

__17.5 불균형한 클래스 다루기

 

CHAPTER 18 나이브 베이즈

__18.0 소개

__18.1 연속적인 특성으로 분류기 훈련하기

__18.2 이산적인 카운트 특성으로 분류기 훈련하기

__18.3 이진 특성으로 나이브 베이즈 분류기 훈련하기

__18.4 예측 확률 보정하기

 

CHAPTER 19 군집

__19.0 소개

__19.1 k-평균을 사용한 군집

__19.2 k-평균 군집 속도 향상하기

__19.3 평균이동을 사용한 군집

__19.4 DBSCAN을 사용한 군집

__19.5 계층적 병합을 사용한 군집

 

CHAPTER 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 신경망을 k-폴드 교차검증하기

__20.13 신경망 튜닝하기

__20.14 신경망 시각화하기

__20.15 이미지 분류하기

__20.16 이미지 증식으로 성능 향상하기

__20.17 텍스트 분류하기

 

CHAPTER 21 훈련된 모델 저장과 복원

__21.0 소개

__21.1 사이킷런 모델을 저장하고 복원하기

__21.2 케라스 모델을 저장하고 복원하기

 

 

20201025_230755_crop.jpg

 

 

주의할 점은

이 책은 입문자를 위한 책이 아니라

머신러닝에 대해 익숙한 개발자를 위한 책이라는 사실이다.

 

하지만, 그렇다고 해서 너무 겁먹을 필요는 없다.

 

친절하게도 numpy 기본에 대해서도

한 번 집어주는 등 나름 친절한 부분도 있으니

너무 무서워 할 필요는 없다.

 

 

Chapter 1 에서는 numpy에 대해서 알려주고 있고

 

Chapter 2 에서는 sklearn(사이킷런)을 이용한 샘플데이터 생성하기와

pandas(판다스)를 이용한 외부데이터 불러오기 등을 알려준다.

 

사실 이 정도면 거의 입문서라고 봐도 무방할 것 같다.

 

 

그리고, 더욱 더 친절하게도 옮긴이(박해선님)가

"덧붙임"이라고 추가적인 설명까지도 제공해주고 있다.

 

 

물론 그렇다고 해서 머신러닝에 대해서

한 번도 공부해보지 않은

말 그대로의 입문자에게

추천할 수는 없을 것 같다.

 

 

머신러닝에 대해서

한 번쯤 간략하게 살펴본

입문자는 아니고

초보자라고 불리울 정도의

수준에 있는 분에게 필요한 책으로 보인다.

 

 

그리고 개인적으로 마음에 드는 것은

흑백이 아니라 살짝 컬러가 들어가 있다 !!!

 

이 책은 표지에 써 있는 것처럼

사이킷런 중심으로 작성되어 있다.

 

뒷 부분에는 케라스로 작성된 내용도 있긴하다.

 

참고하면 될 것 같다.

 

 

이 책에 대한 정오표는 아래에서 확인할 수 있다.

 

https://tensorflow.blog/ml-cookbook/

 

 

그리고, 원서에서는 제공하지 않는 코드를 옮긴이가 별도로 제공해준다!!!

 

https://github.com/rickiepark/machine-learning-with-python-cookbook

최근 '빅데이터'를 주제로 고등학생들에게 강연을 할 기회가 주어졌다. 빅데이터에 대한 이야기다보니 자연스럽게 내용이 머신러닝, 딥러닝, AI로까지 가게 되었는데 그냥 사례와 딱딱한 내용으로만 설명하다보니 학생들이 금방 흥미를 잃었고 뒤에 있던 학생들은 대놓고 자버렸다. 자는 학생 70%, 집중하는 학생 25%, 자다 듣다가 하는 학생 5%로 정도. 동시에 다른 교실에서는 애완견 클래스가 있었는데 그런 곳이라면 또랑또랑 재미있게 들었을 것이다. 그때 이 책의 예제들을 갖고 강연을 준비했으면 어땠을까라는 생각이 들었다. 일단 코딩하는 과정이 재미있고 무엇보다 결과를 바로바로 볼 수 있을테니 말이다. 세부적인 코드의 의미 등은 나중에 대학교에 진학해서 알아가도 되지 않겠는가..?

'파이썬을 활용한 머신러닝 쿡북'이라는 책은 머신러닝 위주로 질 좋은 외국서를 번역하고 계신 박해선 님께서 작업을 해주셨다. 무엇보다도 옮긴이께서 해당 분야의 전문가이시다보니 단순히 번역에서만 그친 것이 아니라 일명 레시피마다 '덧붙임'이라는 항목으로 부족할 수 있는 부분을 본인이 채워주셨다. 번역만 어려운 것이 아닐텐데 이런 디테일적인 면도 신경을 써주시는구나라고 생각했다.

이 책은 하나의 레시피가 특정 메서드나 클래스의 사용 방법을 다룬다고 한다. 그런데 확실히 머신러닝 입문서는 아니라고 저자가 밝히고 있다. 그러므로 머신러닝 입문자에게 적합한 책은 아니다. 대신 옮긴이가 타 출판사일지라도 이미 번역되어 있는 좋은 책을 추천해놓았다. 그래서 머신러닝 입문자는 이 책을 읽기 전에 해당 책을 보고 나면 이 책의 내용도 쉽게 이해할 수 있을 것이다.

총 21챕터라는 꽤 방대한 양의 내용이 수록되어 있다. 정말 좋았던 것은 대학 시절에 배웠던 통계와 텍스트, 이미지를 다루는 등의 머신러닝과 가까운 내용을 파이썬 라이브러리를 이용한 코드로 경험해볼 수 있었다는 것이다. 그때 그때마다 바로 컬러풀하게 테이블 식의 결과나 산점도 같은 결과를 볼 수 있었다. 그렇기 때문에 강연에서 학생들에게 보여주면 좋았겠다라는 생각이 든 것이다.

이 책이 입문서용은 아니라고 했지만 또 그렇게 난이도가 엄청 높은 책은 아니다. 만약 통계나 기본적인 머신러닝과 가까운 내용의 지식이 있고 파이썬, 파이썬 라이브러리 사용에 익숙하다면 한번 도전해볼만한 책일 것이란 판단이다.

표지에 판다스와 사이킷런 중심의 실전 문제 해결 200선이라고 되어있는데 실제로 머신러닝을 다루는 현장에서 매우 유용하게 사용될 것 같다. 어떠한 부분에 막혀있을 때 마치 사용설명서를 다시 펼쳐보듯이 곁에 두고 계속해서 볼 수 있는 그런 책이다.

가장 도움이 되었던 것은 텍스트다루기 중에 한글 태깅 부분이었다. 이 부분은 엮은이의 섬세한 배려였다고 해주고 싶다.

대략적인 머신러닝에 대해 알고 있지만 세부 튜닝에 대한 팁을 알고 싶다면 한번 읽어봐도 좋겠다.

파이썬 문법에 대해서 'Python Cookbook'을 유용하게 읽은 적이 있기 때문에 이 책도 그런 책에 대한 경험이 있다면 도움이 될 것이다.

저자도 머신러닝 작업에 필요한 작업 기반 접근 방식을 알려주는 데 집중했다고 밝힌다.

행렬 펼치기나 대각원소 추출하기, 대각합 계산 등 쓸모있는 기능을 정리한다는 생각으로 접근하고 코드를 짤 때 참고하면 되겠다.

파이썬을 활용한 머신러닝 쿡북

책을 선택할 때 기준이 여러가지가 있을 수 있지만 저자가 그 중 하나라는 점은 당연하다. 개발서적의 경우는 어떨까? 우리나라 개발서적 시장이 그리 넓진 않기 때문에 아직 저자만을 기준으로 잡기에는 절대적인 수가 부족하지만, 역자로 범위를 넓히면 좀 더 많아진다. 역자 박해선을 검색에 입력해보면 “박해선 github”가 바로 이름 다음에 뜬다.

역자의 github repo로 바로 연결이 되는데, 물론 흔한 이름이 아니긴 하지만 그만큼 이분에 대한 개발자들의 신뢰가 높다고 볼 수 있다(물론 1차적으로 중요한 건 저자이고 역자도 자신의 블로그에서 간단하게 저자에 대한 신뢰를 드러낸다).

책의 목차를 살펴보면 조금이라도 이쪽 업무에 관심이 있거나 경험이 있는 사람들이 알아차릴 수 있는, 다른 ML 책들과 차별화되는 점이 있는데, 8장까지는 데이터 전처리만을 다룬다는 점이다. 흔히 이쪽 분야에 대한 기본적인 소개글을 읽으면 전처리의 중요성을 강조하지만 대부분의 책들은 데이터를 라이브러리가 제공하는 데이터(e.g. MNIST, iris 등)만 사용하기 때문에 실무를 해보지 않으면 전처리의 중요성이나 어려움을 실제로 이해하기는 쉽지 않다. 반면에 이 책은 데이터의 형식(text, json, DB, …)이나 데이터 타입(수치, 텍스트, 날짜, 시간, 이미지, …)등에 따라 데이터를 로드하고 여러가지 필터링을 적용하는 방법을 설명하는 데만 거의 40%의 분량을 할애하고 있다.

전처리의 중요성은 실무를 해본 사람들은 누구나 공감하는 일이지만, 일단 데이터를 수집하는 거 자체가 큰 일이므로, 크롤링을 예로 들면 큰 회사에서는 전담 부서가 따로 있고, 데이터 크롤링과 사내 다른 부서들이 사용할 수 있게 API등을 제공하는 작업만으로도 항상 일이 넘친다. 두 번째로 이 책에서도 자세히 보여주지만 데이터를 원하는 형태로 가공하는 작업도 쉽지 않다. 개인적으로 지금은 다른 일을 하고 있지만 예전에 NLP 부서에서 데이터를 가져와 동료들에게 넘겨주는 작업을 했는데, 프로젝트에 따라 다르지만, 필요할 때는 계약직으로 데이터를 교정하는 분들만 2~3명을 고용해 1차로 처리를 하고 다시 프로그램에서 자동으로 처리를 하기도 했다. 이렇게 하는 이유는 실제 사용하는 데이터는 MNIST나 iris같이 사용하기 편하게 분류가 되어 있지도 않고, 예외 처리를 해줘야 하는 경우가 질과 양 모두 많기 때문이다. 대부분의 책은 여기까지 설명만 하고 어떤 작업이 실제로 필요한 지는 많이 보여주지 않는데, 이 책은 이런 부분을 굉장히 자세하게 보여주기 때문에 굉장히 큰 장점을 갖는다. 물론 실무를 한다면 책의 내용을 그대로 적용할 수는 없겠지만(만약 실무를 하는데 어떤 책의 내용을 그대로 사용해서 처리가 가능하다면 최소한 난이도가 높거나 중요성이 높은 업무는 아닐 가능성이 높다), 적어도 어디서 어떻게 시작해야 할지 막막하지는 않을 것이다.

이 분야에 관심을 갖거나 실무를 하는 사람이라면 누구에게나 자신있게 권할 수 있는 매우 좋은 책이다. 마지막으로 사소한 부분이지만 전부 컬러로 되어 있다는 점도 매우 좋다. terminal에서도 colorscheme이 있어야 읽기 편하듯이 가독성이 훨씬 높다.

Ref

역자의 세심한 배려를 느낄수 있는데, github의 ipynb file은 주소의 github.com 부분을 colab.research.google.com/github으로 바꾸면 colab에서 실행시킬 수 있다. 그런데 역자가 아예 이 link까지 만들어놔서 그냥 click만으로 바로 colab에서 코드를 볼 수 있다. e.g. https://colab.research.google.com/github/rickiepark/machine-learning-with-python-cookbook/blob/master/01.ipynb

교차검증, 경시 하강법, 랜덤 포레스트 같은 머신러닝의 개념에 익숙하지 않다면 이 책을 읽지 말고 우선 머신러닝 개념서를 먼저 읽기를 권한다. 머신러닝 기술자를 위한 책이므로 책을 읽고 실제 적용해야할 때가 되었을때 찾아보는 용도로 딱이다.가령 이런식이다. 넘파이로 벡터 만들기, 행렬 만들기, 행렬 펼치기 등 과제가 있고 이를 해결하는 방법 식으로 되어있다. 아직 머신러닝에 대한 이해가 부족하다보니 좀 더디게 읽고 있는데, 언젠가는 써먹겠지... ㅜ.ㅜ각각의 과제들이 명확해서 머신러닝을 파이썬으로 하고자 할 경우에 좋은 레시피는 된다.

 

book.jpg

 

파이썬을 활용한 머신러닝 쿡북은 머신러닝의 입문서가 아니다. 머신러닝의 개념에 익숙하지 않거나 머신러닝을 배운적이 없다면 이 책을 사지말라고 대놓고 이야기 한다. 만약 머신러닝의 기본 개념을 공부하고자 한다면 한빛미디어의 [핸즈온 머신러닝(2판)]을 구매하여 공부하는 것이 좋을 듯 하다.

쿡북이라면 원래는 요리책을 의미하지만 컴퓨터 분야에서는 프로그램을 작성하는 방법과 그것을 사용하는 방법을 순서에 따라 구체적으로 설명한 해설서를 의미한다. 그렇기에 간단한 기본 개념과 다양한 사용구문이 잘 정리되어 있어 복잡하지 않고 깔끔한 맛이 나는 책이라 생각된다. 벡터와 행렬의 연산에서 부터 데이터의 적재와 정재, 변환을 통한 데이터 다루기, 다양한 텍스트와 이미지를 다루는 내용을 간단한 사용법과 그 결과들을 확인 할 수 있다.

컬러로 인쇄되어 중요부분 설명과 참고, 과제를 쉽게 구분하여 볼 수 있으며, 덧붙임을 통하여 한국어판만의 추가 팁을 제공하고 있다. 이부분은 역자인 박해선님의 노력의 산물이며 이를 통하여 보다 유용한 정보를 많이 습득할 수 있었다. 또한 저자가 제공하지 않는 레시피 코드를 깃허브(http://bit.ly/ml-cookbook-code)에 제공하고 있으며 새로운 버전에 맞추어 업데이트되고 있다.

파이썬 문법을 통하여 머신러닝을 활용하고 있는 많은 개발자분들에게 전처리에서 딥러닝까지, 판다스와 사이킷런 중심의 실전 문제 해결을 위해 적합한 솔루션을 제공하는 책이라 생각되었다. 개념정립을 넘어서 활용을 위한 실전연습에 딱 맞는 책이라 생각된다.

이론부터 차근차근 밟아가는 걸 좋아하는 사람이 있는가 하면, 나처럼 빠른 실전을 더 선호하는 사람도 있을 것으로 보인다. 개인적으로는 전자는 파이썬으로 배우는 머신러닝 교과서를, 후자는 이 책이 더 좋을 것으로 보인다. 

흔히 동물그림 IT책으로 유명한 O'REILLY의 책은 정말 활용서의 범위도 다양하고 그 내용의 깊이도 어느정도 있어서 구할때마다 평균 이상을 하는 만족스런 브랜드라 이젠 동물그림 + 빨간 사각형에 흰 글자 자체가 하나의 브랜드가 되었다. 그래서 이번에 이 책을 받을때에도 그 명성에 뒤지지 않을거라 생각했었는데, 개인적으론 기대 이상이었다.

 

책의 제목을 보면 파이썬을 활용한 머신러닝 쿡북이라고 소개되어 있다. 말 그대로 머신러닝을 잘 요리할줄 아는 방법을 가르친다는 의미인데, 책 제목처럼 안에는 정말 다양하고 깊게 머신러닝에 대한 내용이 담겨 있었다.

 

보통 머신러닝 책들을 보면 이해하기 쉽게 정형학습,비정형학습,강화학습으로 묶어 각각에 속한 알고리즘을 맛보기 형식으로 보여주고 있지만, 이 책에선 각각의 학습안에 속하는 알고리즘들을 좀 더 세부적으로 분류해 선형회귀, 포레스트, K-최근접 이웃, 나이브 베이즈, 군집 등 다양한 이론들을 쉽고 잘 풀어놓은 설명과 함께 보여주는 게 무척 눈에 띄었다. 그 덕에 나도 어렴풋이 알고 있던 이론들을 이번기회에 더 새로이 배우게도 되었고.

 

또한 어떻게 데이터를 전처리 하는지를 데이터의 유형에 따라 세부적으로 나뉘었으며, 이를 바탕으로 어떤 모델을선택할지, 어떤식으로 분석할지 일련의 과정을 하나하나 세세히 설명하고 있어, 정말 이 책 한권이면 추후에 어느 모델로 어떤 데이터를 분석하더라도 금방금방 찾아서 확인할수 있을 좋은 내용의 책이란게 느껴졌다. O'REILLY에서 낸 건 늘 믿을만 했는데, 이번 책에서도 그 점이 잘 느껴졌다.

 

솔직히 다소 부담스런 가격이긴 하지만 그래도 이 책 한권이면 머신러닝의 모든것과 실습할수 있는 요소들은 모두 갖출 수 있을거란 생각이 든다. 현재까지 나온 책중 가장 머신러닝의 이론과 실습을 잘 어우러진 종합 백과사전이라 생각이 들며, 파이썬을 주로 사용하며 다양한 머신러닝을 직접 실습하고 싶은 사람에겐 적극적으로 추천하고 싶다.

KakaoTalk_20191212_100630676_02.jpg

머신러닝에 대해서는 오래전부터 꾸준히 관심을 가져왔지만, 

본격적으로 공부해봐야겠다는 생각은 못하고있다가 머신러닝 학습예제들이 파이썬을 중심으로 꾸준히 늘고 있어 

이번에 이책으로 한번 접근을 시도해보았다.

 

번역서이고, 그러다보니 아래 내용 이미지와같이 내용별로 색상 구분을 일괄적으로 잘 편집하여, 보기에는 좋았다.

(번역서들이 보통 이런 편집이 많았던듯~)

KakaoTalk_20191212_100630676_01.jpg

 

이 책의 사용처로 적합한 영역부터 먼저 생각해보았습니다.

학교에서의 교수용 책으로 사용되면 좋을듯 하고, 이미 머신러닝에서 많은 공부를 하고 있는경우에도  부가 레퍼런스북으로 사용이 나빠보이지 않습니다.

 

야심차게 읽어나가는데, 예상은 했지만 머신러닝이 만만한것이 아님을 깨달아야했다.

 

더욱이 이책은 예제중심이 아닌 머신러닝계의 자료구조론 책이랄수있을 정도로, 머신러닝을 구현 하기위한 기본 자료 처리 기법들위주의 내용들로 구성되어있어, 

자칫 따분하거나 어렵다 느껴질수있는 내용들이었다.

 

당연히 어렵습니다.

꽤 오랫동안 정독해야 할듯 싶습니다.

 

그럼에도 이 책은 많은 기법들을 알려주고 있고, 진정으로 머신러닝을 공부하고자 한다면 필수 서적일것 입니다.

 

예를들어 머신러닝을 위해 기본중에 하나랄수있는 파이썬에서 행렬처리의 기법이나, 머신러닝을 위한 여러 기법들을 나름 쉽게 약간의 예제들을 꾸준히 첨부하여 풀어나가고있습니다.

간단한 영상처리 기법등도 같이 첨부하여 머신러닝의 가장 이슈화되고있는 기법들에대해서는 놓치지않고 있습니다.

또한 그외에도 통계등 다양한 기법의 구현과 이해에 대해 다구고 있습니다.

 

그러나,

솔직히 나는 개인적인 스터디의 메인용 책으로는 권장하지않습니다.

오히려 레퍼런스 책으로 아주 적절하다고 생각합니다.

 

좀더 실전 기법 위주의 책을 메인으로 잡고, 그를 이해하기위한 레퍼런스북이라면 최고의 참고서가 되지않을까 합니다.

 

그래서, 대학교재, 강사, 개발자, 컨설턴트등에 이를 권장합니다.

개인적으로 머신러닝에 대하여 더욱 깊이있는 학습을 원한다면 두말할것 없이 최고입니다.

 

0. 누구를 위한 책인가?

 

 

1번사진.PNG

 

 

"이 책은 머신러닝 입문서가 아닙니다. 머신러닝 기본 개념에 익숙하지 않거나 머신러닝을 배운 적이 없다면 이책을 사지 마세요"

이 책의 이책에 대해서에 적혀있는 글입니다. 네, 이책은 머신러닝 입문서가 아닙니다. 저자는 머신러닝 이론과 개념에 익숙한 머신러닝 기술자들이 보고 참고용으로 사용하여야 한다고, 명시하고 있습니다. 예를 들어 교차검증, 랜덤포래스트, 경사하강법과 같은 이론지식을 전달하는 것을 과감없이 절재하면서, 반대로, 이를 코드로 구현 및 활용하는 방법에 집중합니다.

스타일?

이 책은 요리의 레시피를 소개하듯 머신러닝 코드를 작성하는데 메서드나 클래스의 사용방법을 설명합니다. 다만 원서에서는 이런점을 충분히 설명하지 못해, 역자가 미진한 부분을 보완 '덧붙임'이라는 항목을 통해, 보완설명을 제공해 줍니다.

1. 레서피 설명방식

이책은 200가지의 독립적인 해결책을 제시합니다. 각 해결책은 [과제], [해결], [설명], [참고]로 구성됩니다. 또한 이 과정에서 부족한 부분은 [덧붙임]을 통해 역자가 추가로 설명하여, 독자가 좀 더 깊게 공부하고 싶을 때 길잡이 정도의 정보만을 제공합니다.

 

 

2번사진.PNG

 

 

 

즉, 이 책은 냉정말하면 제시된 코드를 설명하는데 집중합니다. 즉 우리가 개발할 때 코드에 주석을 다는 것과 같은 형식으로 설명합니다. 물론, 주석보다는 더 자세히, 설명합니다. 그러나 그 설명은 코드를 설명하는데 할애합니다.

아 ~ 그래서 입문자들에게 이책을 저자가 권하지 않는건가?

2. 다시 누구를 위한 책인가?

여기서 전 저자와는 다른 견해로 누구를 위한 책인지에 대해서 설명해보겠습니다. 다시말해 입문자에게 이 책을 권하고 싶습니다. 또 실전에서 머신러닝을 활용해야 하는 개발자들에게 추천하고 싶네요. 사실 어플리케이션을 만들어서 활용해야하는 실전에선 머신러닝의 수식이나, 이론은 크게 중요하지 않습니다. 다시 말해 저의 견해의 입문자는 이론에 구애받지 않고 신속하게 코드를 만들어 머신러닝을 활용하고 싶은 개발자들을, 즉 머신러닝의 이론지식이 없지만, 간단한 머신러닝 코드를 활용해, 과제를 해결하고 싶은 분들이 머신러닝에서는 입문자라 것이죠.

물론 프로그램을 전혀하실 수 없는 분들, 프로그래밍에 전혀 익숙하지 않는 분들은, 이 책을 보시면 않될 것 같습니다. 그렇다고, 머신러닝 책을 보시면 해결될까요? 전 파이썬부터 배워야 한다고 생각합니다. 파이썬이 조금 익숙하고, 데이터 마이닝에 관심을 가지고 계시다면, 바로 이책부터 보시면서, 비슷한 문제의 과제를 찾고, 하나씩 해결해 나간다면, 분명히 단시간에 머신러닝을 구현할 수 있다고 판단됩니다.

그리고 그 후에 실제 보다 더 섬세한 파라미터 튜닝이 필요하다면, 그 때 이론적 배경을 공부하고, 라이브러리를 고쳐서 개인화가 필요할 때, 다른 책들을 보면 어떨까 하는 생각이 들었습니다.

3. 이책의 강점 ?

이책은 특성추출을 사용한 차원 축소, 특성 선택을 사용한 차원축소, 모델평가, 모델선택 등 머신러닝에서 실제 필요한 기본적인 코드 활용법을 적시하고 있다는 점이 가장 큰 강점입니다.

무슨이야기지?

즉 여러분들이 머신러닝 프로그램 코드를 한번 쯤 개발해 봤으면, 알만한 내용입니다. 웹에서, 머신러닝 코드를 얻었고, 살짝 부족한 부분이 있어 개선하면 좋겠다 싶어, 다시 웹에서 검색할 때, 이 부분이 생각보다 많은 시간을 잡아먹습니다. 그 이유는 검증된 사용법을 소개하는 웹이 거의 없고,대부분 나 해봤고, 이런결과가 나왔다는 정도의 해설정도로 정작 코드의 본질적인 활용방법에 집중하지 않기 때문입니다.

당연히 그럴 것이, 코드를 공유하는 것 만으로도, 크게 기여하는 것인데, 거기다, 활용하는 코드를 하나하나씩 그것도 왜 이렇게 코드를 작성했는지 까지 설명한다? 여러분들이라면 그렇게 할까요?

문제는 기존의 프로그래밍의 경우 그렇게 해도 충분히 유용했고, 활용가치가 높았습니다. 그런데, 머신러닝을 그렇지 않습니다. 머신러닝이기 때문에, 기존과 다른 절차적인, 단계적인 설명과, 특성에 대한 분석이 반드시 공유되어야, 비로서 활용성이 높은 머신러닝 관련 포스트가 될 것입니다.

즉 이 부분이 이책의 가장 큰 매력이라는 점입니다.

저자가 검증으로 통해, 우리가 머신러닝 코드를 작성하면서, 거쳐야할 절차적인 그리고, 특성분석에 필요한, 검증된 코드를 중심으로 상세하게 설명해, 나만의 머신러닝 코드를 만들수 있도록 지원한다는 점입니다. 만약 여러분들이 이 책을 다 익히고, 익숙해 진다면, 여러분들은 머신러닝의 절차적인 설계과정을 능히 해낼 수 있다고 말하고 싶네요.

즉 머신러닝은 코드를 Copy & Paste 해서 똑같은 성능과 결과를 가져오지 못하기 때문에, 이책에서 중후반부에서는 웹에서 검색해서 잘 구해지지 않는 아주 좋은 검증된 기본 코드들이 있다는 점 꼭! 꼭! 강조하고 싶네요.

 

3번사진.PNG

 

 

 

파이썬을 활용한 머신러닝 쿡북을 살펴 보고


개인적으로 유행하는 기술은 별로 관심을 가지지 않고자 하는데 이번에는 대세를 거를 수 없을 듯하여 인공지능/머신 러닝/딥 러닝에 대한 분야에 대한 관심을 가지고 한빛에서 진행하는 '나는 리뷰어다' 이벤트에 신청을 할 때 머신 러닝에 대한 책을 한 권 포함했었는데 운좋게도 그 책을 받게 되었습니다.

 

도착한 책을 보니  책의 모서리가 약간 찌그러져서 도착했습니다. 책을 읽기에는  전혀 문제가 없지만 뽁뽁이가 내장된 비닐로된 간단한 포장은 험난한 택배의 여정에서 책을 무사히 지켜내긴 힘들었나 봅니다. 여태까지 제가 받은 책들 중 이런 포장이 많았지만 이렇게 찌그러진 것은 처음이긴 하네요.    

 

DSC_0048.JPG

 

최근 바쁜일들이 겹치고 겹쳐서 힘든 상황이긴 하지만 이 책을 선택한 것을 아는 지 내년 봄까지 AI/Machine Learning, Deep Learning 등에 대한 알아야 할 일이 생겨 즐거운(?) 마음으로 책을 펼쳐 들었습니다.

 

 

하지만 책의 서론에서 부터 느껴지는 것은 

 

난 네가 파이썬을 아는지… 선형대수, 수치해석, 각종 회귀 분석 방법에 대해 아는지 궁금하지 않다, 단지 나는 파이썬을 가지고 machine learning 을 구현하기 위한 방법들을 알려 주마.  Machine learning 의 이론에 대해서 넌 알고 있어야 한다. 나는 알려주지 않는다.” 

 

라는 느낌을 주는 책입니다(과장이 조금 있긴 합니다. ^^.;;;). 이 책의 전체에서 이런 방식을 고수하고 있습니다. 


 

1장은 numpy 의 간단한 사용법입니다.  이 1장을 이해하기 위해서는 기본 행렬의 연산과 행렬에 대한 용어를 알아 두어야 합니다. 공학 수학 중 선형 방정식과 관련된 부분을 알고 있다면,  그리고 최소한 최소 자승(least square) 등에 대한 이론적 배경을 제대로 이해하고 있다면 이 뒤로 장들에 나오는 식들을 쉽게 볼 것 입니다. 예를 들어 11.8의 MSE, R^2  과 같은 정의를 보고 수식이 말하고자 하는 것을 이해할 때 도움이 될 겁니다.

 

2~3장은 데이터를 불러오고 조작, 검색하는 방법들을 소개하고 있으며, 4장 부터는 본격적인 데이터 변환을 다루고 있습니다. 

 

.. .


 

책의 구성은 잘 되어 있습니다만.. 책의 제목 ‘cookbook’ 이 의미하는 것 처럼 요리 방법을 적어 놓았지 어떤 요리가 만들어지는지, 그 요리는 어떤 맛과 향을 가지며 먹을 때 어떻게 먹어야 하는지는 설명이 없네요.  이 요리책을 처음 접하는 요리사는 이 요리책에 나온 조리 방법을 만들어진 요리를 상상해야 할 것 같습니다. 

 

 

책의 표지를 보고 조금 이상하다는 생각이 들었습니다. O’reilly 책들의 표지는 흑백 펜으로 그린 그림!  이라는 기존의 책들과는 다른 컬러를 입힌 나리나 트로곤의 일러스트가 표지를 장식하고 있어서 O’reilly 에서 정책을 바꿨나? 라는 생각이 들더군요.  아마존에서 검색을 해 도 흑백이더군요.

 

 

DSC_0105.JPG

 

 

책의 본문은 편집은 원서를 바탕으로 조금 더 독자를 위한 부분이 보입니다. 예를 들어 1장에서 원서와는 다르게 (Amazon에서 받은 sample e-book과 비교해서)  파이썬/넘파이를 실행한 결과에 회색으로 음영 처리를 해 놓아서 파이썬에 입력할 내용과 결과를 구분해 놓았습니다. 

 

DSC_0106.JPG

 

 

그리고 파이썬에 대한 책들을 쓰시고  파이썬을 이용한 머신 러닝 관련 책들을 번역하신 역자분의 역량을 보여 주는 듯 책을 읽으면서 편한 느낌이 듭니다. 거기다가 역자분의 경험이 이 분야를 공부하고자 이 책을 읽는 독자에게 도움이 되고 있습니다. 예를 들어 책의  8.0절 소개에서 역자분이 덧붙인 OpenCV 의 최신 버전에 대한 주석은 이 8장에서 다루는 OpenCV 를 설치하고 사용할 때  파이썬과 OpenCV의 버전 문제로 발생할 수 있는 문제를 겪지 않게 해줍니다. 

 

 

하지만 한 가지 아쉬운 점은 책을 번역하시면서 앞서 언급한 이 책의 성격을 반영한 것인지 이런 저런 용어들의 원어를 처음 몇 장에서 빠트린(빼버린 ?) 것입니다.  예를 들어 넘파이(NumPy), 적재(loading) 처럼 말입니다.  



어쨌거나 이 책은 앞서 이야기 한 것 처럼 처음 주방에서 뭔가를 만들어 보려는 초보 요리사를 위한 책이라기보다는 어느 정도 주방에서 요리를 해본 경험을 가진 초보에서 중급 정도의 실력을 가진 요리사가 여러가지 음식의 조리방법을 잊지 않기 위해 그 방법을 잘 정리해 둔 것과 같은 책입니다. 마치 한 번 만들어 본 요리이지만 순서를 잊어 버리지 않기 위해서 잘 정리해둔?


다르게 적자면  파이썬과 넘파이 그리고 머신 러닝에 대해 한 학기 기본 강의를 수강한 사람을 위한  요약 정리본 이라고 볼 수 있습니다. 한 번 공부해본 분야이지만 잊어 버리지 않기 위해서 키워드를 이용해서 잘정리해 둔?


이 책을 잘 활용하기 위해서는 파이썬을 수강하고 넘파이를 이용하는 기본 대수연산 및 수치해석, 그리고 머신러닝에 대한 기초를 수강하고 난 후 3과목에 대한 요약을 했다면 이런 책이 나올 것 같습니다.  이 과목들을 수강하지 않고서 이 책(요약)만을 보고 본격적인 머신 러닝을 공부하는 것은 힘들 것 같습니다. 


 

그리고 사족이지만 처음으로 보게된 머신 러닝에 대한 이 책을 보면서  이전의 다른 책에서 본 ‘로지스틱 회귀’, ‘k- 최근접 이웃’ ,  ‘유클리드 거리’ ..에 대한 개념들은 이책을 조금 더 가깝게 느끼게 해 주네요. 그래서 저의 규칙 중 하나인 "한가지 분야에 대해서 책을 최소 2권 이상은 봐야 한다" 라는 규칙이 이렇게도 도움이 되는 구나... 라고 다시 한번 확인 할 수 있었습니다.  

 

 

그리고 머신 러닝에 대해서 좀 더 알기 위해선  11월 초에 제게 도착한 책들을 좀 더 살펴 봐야 할 것 같습니다. 

 

 

DSC_0073.JPG

 

이만 부족한 리뷰를 마칩니다.

 

 

본 리뷰는 한빛미디어 리뷰어 이벤트를 통해 받은 책을 보고 작성한 것임을 밝혀둡니다.

 

20191117_231706.jpg

 

이 책은 머신러닝 입문서가 아닙니다. 머신러닝 기본 개념에 익숙하지 않거나 머신러닝을 배운 적이 없다면 이책을 사지 마세요. 이 책은 머신러닝 이론과 개념에 익숙한 머신허닝 기술자를 위한 책입니다. 이들에게는 매일 머신러닝 작업에서 마주치는 도전 과제를 해결하는 코드를 담은 참고 도서가 도움이 될 것입니다.

- 이책에 대하여 내용 중 -

책의 제일 앞에 있는 내용이 책의 난이도에 대하여 잘 설명하는 좋은 문구라고 생각합니다.

머신 러닝을 하면서 파이썬을 사용하여 데이터를 정제하고 계산할 때 사용할 수 있는 방법들에 대한 설명과 특정 작업들에 유용한 라이브러리의 사용방법들에 대하여 어여쁜 코드와 함께 설명을 잘해주고 있는 책입니다.

책 제목의 '쿡북'에 잘어울리는 내용을 포함하고 있습니다.

요리책을 처음부터 끝까지 늘 정독하지는 않죠. 필요한 요리가 있을 때 열어보 듯이 쭉 읽어 나가기 보다, 필요할 때 필요한 부분을 펼쳐보기에 좋은 책이라고 생각합니다.

 

예제에 대한 설명 및 코드에 대한 가독성을 높이기 위해 컬러판을 제공하는 것이 정말 인상적이며, 꽤 유용하다고 생각하는 점 중 하나입니다.

 

 

 

코드도 컬러로 보는 것이 가독성과 이해에 많은 도움을 준다는 것은 반론의 여지가 없지 않을까 싶습니다.

아래와 같이 예약어와 다른 데이터들의 구분을 컬러로 바로바로 할 수 있으니까요,

 

필요할 때 마다 한번씩 들쳐 보아야 겠어요~!

KakaoTalk_20191117_011136071.jpg

 

 

머신러닝 전문가를 꿈꾸는 사람에게 추천합니다. 

이론으로 배웠던 것들을 선별된 200제 예제를 풀면서 다시 한 번 이해할 수 있던 좋은 기회였습니다.

책은 컬러로 구성되어 있고 코드마다 주석으로 꼼꼼히 설명이 되어 있어서 좋았습니다.

물론 전문가를 위해 구성된 책이라 입문자가 보았을 때 이론설명이 부족하다 느낄 수도 있습니다.

머신러닝 시스템을 만드는 사람들에게 훌륭한 서적이라 생각합니다.


IMG_4080.JPG저의 경우, 기계 학습이나 딥러닝을 프로그래밍 할 때 항상 고민이 데이터 전처리에 관한 것이었습니다.

그런 고민을 하던 중에 이 책을 만났습니다. 

 

물론, 이 책은 전처리에 대한 내용만 있는 것은 아닙니다.

"전처리에서 딥러닝까지, 판다스와 사이킷 런 중심의 실전 문제 해결 200선" 이라는 소제목 처럼 

프로그래밍 할 때 우리가 만날 수 있는 여러가지 문제를 질문하고 그것에 대한 해결책을 알려주고 있습니다.

 

구성은 크게 21개의 챕터로 구성되어 있습니다.

 

가장 기본이 되는 "백터, 행렬, 배열" 연산에 대한 레시피 부터 마지막에 "훈련된 모델 저장과 복원"에 대한 내용으로 마무리 하고 있습니다.

 

 

IMG_4085.JPG

 

실제 코드는 라인 by 라인으로 친절하게 설명이 되어 있어, 프로그래밍에 약한 분들이라도 쉽게 이해할 수 있도록 구성되어 있습니다. 

또한 적절한 색상 사용으로 가독성이 높은 것도 이 책의 장점입니다. 매끄럽게 번역이 되어  자연스럽게 읽게 됩니다.

 

IMG_4086.JPG

사실, 책을 사고 예제 코드를 봤을 때 오래된 버전으로 예제가 프로그래밍 되어 있어 실행이 되지 않으면 난감할 때가 있습니다.  이 책의 저자는 깃 허브에서 사이킷런과 케라스의 새버전에 맞춰 꾸준히 업데이트하겠다고 하네요.

 

이 책은 입문서는 아닙니다. 어느 정도 기계학습과 신경망에 대해 알고 있어야 합니다.

그러나 아직 프로그래밍에 익숙하지 않는 분들이 궁금한 부분을 찾아보며 익힐 수 있도록 되어 있어 많은 도움이 될 것 같습니다.

 

 현업이나 학교 과제 중에서 머신러닝 관련 일을 하게 되면, 제일 번거로운게 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



출처: https://talkingaboutme.tistory.com/entry/Book-ML-Machine-Learning-with-Python-Cookbook [자신에 대한 고찰]

 

머신러닝쿡북.jpeg

 

 

머신러닝을 공부하는 분들을 주변에서 많이 볼 수 있습니다.

 

머신러닝은 파이썬 언어를 사용합니다.

 

다른 프로그래밍언어로는 쉽게 못 짤 코드도 쉽고 빠르게 짤 수 있습니다.

 

파이썬을 활용한 머신러닝 쿡북은 입문자를 위한 책은 아닙니다.

 

아쉽게도 입문자분들은 기초부터 공부하신 후에 읽으실 것을 추천합니다.

 

머신러닝 원리와 작동방식을 알려주는 책으로 기초는 알려주진 않습니다.

 

입문자분들도 머신러닝 기본 개념을 먼저 숙지하신 후에는 읽으시면 도움이 되는 책입니다.

 

파이선을 할 줄 아는 사람들이 보게 하려고 만든 책입니다.

 

데이터마이닝.png

 

◆ 데이터 전처리

머신러닝 예측 정확도를 높이기 위해서는 데이터 전처리가 중요합니다.

 

데이터 전처리를 잘하기 위해서는 의미 있는 특징 데이터가 많은 게 좋습니다.

 

의미 있는 데이터로 새로운 해석도 할 수 있고 정확도를 올릴 수 있습니다.

 

데이터 전처리는 정확도가 높게 나오도록 하는 게 목적인데요.

정확한 예측을 하려면 특성추출과 모델평가를 잘해야 합니다.

 

특성추출은 데이터 중에서 의미 있는 데이터를 추출하는 게 가장 중요합니다.

 

머신러닝을 하면 데이터 전처리에 가장 많은 시간을 투자합니다.

 

모든 데이터가 있으면 좋겠지만 비슷한 값들로 빈값들을 채워줘야 하기 때문입니다.

 

이 책은 머신러닝 실무자들에게 머신러닝 문제해결 능력을 키우는 데 도움이 되는 설명서 역할을 해줍니다.

 

머신러닝.png

 

◆ 머신러닝 모델

머신러닝 모델을 만들 때 자주 사용하는 판다스와 ? 중심의 예제로 구성됐습니다.

 

전처리에서 딥러닝을 하기 위해서는 넘파이와 판다스를 잘 다룰 줄 알아야 합니다.

 

머신러닝 패키지인 scikit-Learn은 판다스와 함께 머신러닝에 필요한 패키지입니다.

 

입문자들이 가장 많이 시작하는 머신러닝으로 타이타닉 데이터셋으로 생존율을 파악합니다.

 

타이타닉의 생존율을 머신러닝을 돌려 예측하는 건데요.

기계가 예측 가능한 형태로 만들기 위해 원핫인코딩을 사용합니다.

 

머신러닝 초급자들 코스이지만 캐글을 하게 되면 다양한 머신러닝으로 예측하는 모델을 만들게 됩니다.

 

그때 수치형 데이터와 범주형 데이터도 만들어보며 머신러닝에 대한 감을 잡을 수 있습니다.

 

끝으로 파이썬은 개발자와 비 개발자 구분 없이 주목받고 있습니다.

 

데이터 분석과 자동화 시스템을 만들기 위해 파이선을 찾기도 합니다.

 

초등학교, 중학교 학생들도 코딩을 배울 정도로 코딩에 대한 중요성이 높아졌습니다.

 

의무교육도 될 것이란 말도 들립니다. 코딩을 많은 사람이 하게 될 것 같습니다.

 

<파이썬을 활용한 머신러닝 쿡북>은 책 제목을 그대로 따른다. 파이썬을 도구로 머신러닝을 맛있게 요리하는 방법을 알려주는 훌륭한 레시피다. 우리가 파스타 레시피를 정독하고 책장에 다시 꽂아두지 않는 것처럼 이 책도 한번 읽고 다시 책장에 꽂아두는 책이 아니다. 저자가 원하는 ' 자신만의 표시가 가득한 지저분한(?) 책' 이 될 수 있는 완벽한 준비가 되어있다.   머신 러닝에 대한 기초 준비가 되어있다면 주말에 이책과 맥북을 들고 카페로 가서 충분한 시간을 들여 저자가 준비한 맛있는 레시피 들을 훔쳐보자. 내가 머신 러닝 실무를 맡고 있다면 더할 나위 없고, 그렇지 않다고해도 실제 코드를 기반으로 머신 러닝 전반을 다시 정리하기에도 좋은 책이다.

 

인공지능의 한 분야인 머신 러닝은 사람이 학습하듯이 컴퓨터에도 데이터들을 입력하여 학습하게 한 이후 이를 기반으로 의미있는 데이터를 예측하는 기술이다. 머신 러닝이 점점 대중화되면서 공부하고, 연구하는 사람도 많아지고 있다. 그런데 이 책은 머신러닝이라는 개념을 파이썬으로 예제 코드로 작성하여 동작시켜 볼 수 있도록 해주는 책이다.

 

이 책은 머신러닝 입문서가 아니라, 머신러닝 기본 개념에 익숙하지 않거나 머신러닝을 배운적이 없다면 이 책을 사지 말아달라고 하는 대담합도 보인다. 파이썬의 기본 문법을 알고 있으면서 머신러닝 이론과 개념에 익숙한 머신러닝 기술자를 위한 책이다. 파이썬 설치 방법, 패키지 설치 방법이 기재되지 않기 때문에 파이썬에 대한 공부는 미리 하고 보는게 좋을 듯 하다.

 

책의 초반부에는 머신러닝의 기초라고 할 수 있는 벡처, 행렬, 배열을 다루기 위해, NumPy 라이브러리를 다루는 방법에 대해 소개한다. 그 다음으로는 데이터를 적재하기 위해 pandas 라이브러리와 scikit-learn이라는 라이브러리를 사용하는 방법에 대해서 다룬다. pandas 라이브러리는 csv 파일이나 엑셀, 데이터 베이스 같은 다양한 소스로부터 데이터를 적재하기 위한 라이브러리이고, scikit-learn 라이브러리는 모의 데이터를 생성하는데 사용하는 라이브러리다.

 

그리고 텍스트 형으로 이루어진 데이터에서 필요한 부분만을 추출하기 위한 파싱 방법을 다루고 있다. 이미지에 대한 데이터를 다루기 위해 OpenCV 라이브러리를 사용하는 방법도 다룬다.

 

이제까지가 머신러닝에 대한 내용을 다루기위한 전단계라고 볼수 있고, 9장부터 21장까지 본격적인 머신러닝 개념을 다루고 있다. 9장에서부터는 머신러닝에 대한 기본적인 내용을 알고 있어야 수월하게 공부할 수 있을 듯 하다. 뒤 페이지로 갈수록 어려운 수식들과 어려운 용어도 많이 등장하게 된다.

 

어려운 내용이 많지만, 책에 있는 예제 코드를 실행하면 바로 결과물을 얻을 수 있기 때문에 실습해 보기에 좋은 책이다. 예제 코드에 대한 주석이 정리되어 있어 이해하는데 많은 도움을 준다. 아쉬운 점은특정 메서드나 클래스의 사용법에 대하여 다양한 옵션이나 유사 함수들을 충분히 설명하지는 않는다.

파이썬으로 머신러닝을 할때 마주칠 다양한 주제를 가볍게 훑어보는 쿡북이다.
번역의 품질이 아주 좋다. 원체 유명해지셔서 역자만 보고 선택하는 사람도 있을것 같다.

1.jpg

거기에 역자분께서 추가로 ‘덧붙임’ 이라는 추가 팁을 달아주셨다.

이것 때문에 더욱 가치있는 책이 되었다고 생각한다.
그리고 풀컬러로 인쇄되어 가독성이 아주 좋다.
원서의 내용도 훌륭하여 책 전체를 순서대로 한번만 읽어보아도 도움이 되리라 생각된다.
 
저자가 제시한 대상 독자이다.


2.jpg

 

 
하지만, 개인적으로는 오히려 머신러닝을 배워보려는 초보자에게 적합한 책이 아닐까 한다.
다양한 주제와 라이브러리를 소개하고 있어서 이를 바탕으로 본인이 원하는 분야에 필요한 기술에 대해 알수있는 길잡이가 될것이다.
당연히 다른 책으로 딥~ 러닝을 해야한다…
 
쿡북 시리즈가 그러하듯 문제를 제시하고 이를 해결하는 방법을 알려주는 형태로 진행된다.
그런데 파이썬 머신러닝이라는 주제는 너무 넓고 다양한 세부 주제가 있다보니 이 책만으로는 다소 부족하다.
 
대상이 이론과 개념에 익숙한 기술자라고 하는데 그런 사람들에게는 너무 얇은 내용이 아닌가 싶다.
가령, “딥러닝 쿡북”이라던가 “사이킷런 쿡북”이 되어야 그런 전문가에게 도움이 되지 않았을까?

 

 

파이썬을 활용한 머신러닝 쿡북

 

파이썬을 활용한 머신러닝 쿡북

파이썬을 활용한 머신러닝 쿡북

크리스 알본 저/박해선 역

200개 비법 레시피로 실무 머신러닝 문제를 쉽고 빠르게 해결하기 200여 개의 비법 레시피를 제공하는 이 책은 실무에서 접하는 다양한 머신러닝 문제를 해결하도록 도와준다. 판다스나 사이킷런 같은 파이썬 라이브러리로 데이터 적재, 텍스트나 수치형 데이터 다루기, 모델 선택, 차원 축소 등 다양한 문제를 해결할 수...

 


 

그동안 많은 파이썬 머신러닝 관련 도서를 봤다. 하지만 역시 박해선 역자님의 '파이썬을 활용한 머신러닝 쿡북'은 그 중에서도 가장 좋은 도서이다. 파이썬 데이터 분석부터 머신러닝, 신경망까지 다룰 수 있는 도서로서 다양한 실전 문제 해결 200선이 담겨있다. 

 

Numpy를 활용한 벡터, 행렬등의 연산부터 시작한다. 행렬식 계산에는 numy만큼 좋은 라이브러리가 없다. 다음으로 데이터 적재는 sklearn의 datasets 라이브러리를 이용한다. 이를 이용해 샘플 데이터를 적재하고 모의 데이터셋을 만들어본다. 그 후 이를 CSV, 엑셀, JSON과 같은 형태로 적재해본다. 

 

3장의 데이터 랭글링은 다소 생소할 수 있다. 한마디로 데이터프레임을 다룬다. Pandas 라이브러리를 이용하게 된다. 데이터프레임은 우리가 흔히 볼 수 있는 열과 행으로 이뤄진 데이터로 일반사람들이 가장 익숙한 데이터 자료형이라고 할 수 있다. 값을 치환하고, 열 이름을 바꾸고, 최솟값 ,최댓값등을 찾아본다. 누락된 값을 다루고 그룹핑하는 등 일반적인 데이터 분석을 전반적으로 배워본다. 전반적으로 코드가 간단하고 가독성이 좋아 파이썬에 대한 어느정도 기본기가 있다면 쉽게 이해할 수 있다.

 

6장에서는 텍스트를 다뤄본다. BeautifulSoup와 Regular Expression등의 라이브러리를 이용해, 텍스트 및 HTML을 다뤄본다. 나아가 nltk 라이브러리를 활용해 다양한 품사를 태깅하고 어간을 추출하고 단어 중요도에 가중치를 부여하는 등 간단한 텍스트 처리를 해본다. 7장에서는 시계열 데이터이다. 날짜와 시간을 이용해서 시계열 데이터를 다뤄본다. 8장은 이미지 다루기이다. OpenCV 영상인식 라이브러리를 사용해 이미지를 로드하고 크기를 변경하는 등 이미지를 다뤄본다. 

 

어떻게 보면 9장부터가 진정한 머신러닝이라고 할 수 있다. sklearn 라이브러리를 이용해 주성분 분석을 해본다. 특성을 줄이고, 차원을 줄이는 등 나아가 선형회귀까지 다뤄본다. 14장의 결정 트리와 랜덤 포레스트는 대표적인 머신러닝 기법 중 하나이다. 결정 트리는 전체 모델을 그래프로 나타낼 수 있어 직관적으로 시각화가 가능하다. 17장의 서포터 벡터 머신도 대표적인 기법이다. 마찬가지로 sklearn 라이브러리를 이용해서 샘플의 경계를 나타내는 초평면을 matplotlib를 이용해 그려본다. 

 

19장에서는 k- 평균을 사용한 군집 분석을 해보며, 20장에서는 신경망에 대해 다루는데, 신경망을 구성해 이진, 다중 분류기 훈련등을 해본다. 그 후 예측과 시각화 오버피팅을 줄여보는 작업을 한다. 

 

이 책은 아마존 베스트셀러인 Machine Learning with Python Cookbook를 번역한 도서로 머신러닝 작업에 필요한 핵심 조리법을 알차게 담고 있다. 특히나 책이 모두 컬러판으로 출판사의 신경이 많이 쓰였다. 역자의 '덧붙임'을 통해 레시피에서 다루지 못한 내용을 추가적으로 설명해주고 있다. 박해선 역자님의 블로그에는 책에 관련된 이야기 및 코드도 있으니 참고하면 좋다.

 

전반적인 책의 구성이 간단하고 알차게 이뤄져있다. 머신러닝의 개괄적인 내용부터 데이터 분석 기본까지 다루고 싶다면 이 책을 꼭 추천한다.

 

 



<나는 리뷰어다> 10월 이벤트 당첨으로 작성한 리뷰 입니다.


[한줄평]

머신러닝 개념서를 다 읽고 실무에서 많이 쓰이는 문제를 경험 하고 싶은 분들에게 추천


[목차구성]

CHAPTER 1 벡터, 행렬, 배열

CHAPTER 2 데이터 적재

CHAPTER 3 데이터 랭글링

CHAPTER 4 수치형 데이터 다루기

CHAPTER 5 범주형 데이터 다루기

CHAPTER 6 텍스트 다루기

CHAPTER 7 날짜와 시간 다루기

CHAPTER 8 이미지 다루기

CHAPTER 9 특성 추출을 사용한 차원 축소

CHAPTER 10 특성 선택을 사용한 차원 축소

CHAPTER 11 모델 평가

CHAPTER 12 모델 선택

CHAPTER 13 선형회귀

CHAPTER 14 트리와 랜덤 포레스트

CHAPTER 15 k-최근접 이웃

CHAPTER 16 로지스틱 회귀

CHAPTER 17 서포트 벡터 머신

CHAPTER 18 나이브 베이즈

CHAPTER 19 군집

CHAPTER 20 신경망

CHAPTER 21 훈련된 모델 저장과 복원


[대상 독자]

머신러닝 이론과 개념에 익숙한 머신러닝 기술자

파이썬 프로그래밍과 패키지관리에 능숙한 개발자

교차검증, 랜덤 포레스트, 경사 하강법 같은 개념에 익숙한 분


[주요 내용]

● 벡터, 행렬, 배열

● 수치형과 범주형 데이터, 텍스트, 이미지, 날짜, 시간 다루기

● 특성 추출과 특성 선택을 사용한 차원 축소

● 모델 평가와 선택

● 선형 회귀, 로지스틱 회귀, 트리, 랜덤 포레스트, k-최근접 이웃

● 서포트 벡터 머신(SVM), 나이브 베이즈, 군집, 신경망

● 훈련된 모델의 저장과 복원


[서평]


‘파이썬을 활용한 머신러닝 쿡북’은 머신러닝 개념서를 숙지한후 실무에서 많이 만날수 있는 문제점과 해결 방법에 대해서 200가지의 케이스를 담고 있습니다. 그래서 현장에서 머신러닝 시스템을 만드는 사람들에게 필요한 책이라고 생각합니다. 데이터 과학자와 머신러닝 엔지니어가 모델을 만들 때 자주 사용하는 작업에 대해 상세히 알려주고 있습니다. 예를 들어 1,000개의 범주와 누락된 데이터가 있는 수치 특성, 불균형한 클래스로 이루어진 범주형 타깃 벡터가 담긴, JSON 파일을 가지고 있다고 가정해보면, 이 문제를 해결하는 방안으로 이책은 다음과 같은 레시피를 제공 합니다.

  1. JSON 파일을 적재하기 (2.5절)

  2. 특성을 표준화하기(4.2절)

  3. 특성 딕셔너리를 인코딩하기(5.3절)

  4. 누락된 클래스 값을 대체하기(5.4절)

  5. 주성분을 사용해 특성을 줄이기(9.1절)

  6. 랜덤 탐색을 사용하여 최선의 모델 선택하기(12.2절)

  7. 랜덤 포레스트 분류기 훈련하기(14.4절)

  8. 랜덤 포레스트에서 중요한 특성 선택하기(14,7절)

 

이책으로 머신러닝 초급에서 중급으로 올라가는데 많은 도움이 될것이라 생각합니다.

파이썬을 활용한 머신러닝 쿡북 표지

1. 제목

파이썬을 활용한 머신러닝 쿡북(Machine Learning with Python Cookbook)

2. 지은이

  • 지음 : 크리스 알본
  • 옮김 : 박해선

3. 링크 

http://www.hanbit.co.kr/store/books/look.php?p_code=B1652696754

 

 

파이썬을 활용한 머신러닝 쿡북

200여 개의 비법 레시피를 제공하는 이 책은 실무에서 접하는 다양한 머신러닝 문제를 해결하도록 도와준다. 판다스나 사이킷런 같은 파이썬 라이브러리로 데이터 적재, 텍스트나 수치형 데이터 다루기, 모델 선택, 차원 축소 등 다양한 문제를 해결할 수 있다.

www.hanbit.co.kr

4. 출판사

한빛미디어

5. 카테고리

머신러닝, 딥러닝, 판다스, 사이킷런, 데이터분석

6. 대상 독자

  • 머신러닝 기본 개념에 익숙한 사람(입문서가 아니라고 합니다.)
  • 데이터 분석을 하고 싶은 사람
  • 실제 데이터 분석 예제를 돌려보고 싶은 사람
  • 데이터 사이언티스트, 데이터 엔지니어, 머신러닝 엔지니어

7. 전체 페이지 수

508p

8. 출판사 책 소개

200개 비법 레시피로 실무 머신러닝 문제를 쉽고 빠르게 해결하기

 

200여 개의 비법 레시피를 제공하는 이 책은 실무에서 접하는 다양한 머신러닝 문제를 해결하도록 도와준다. 판다스나 사이킷런 같은 파이썬 라이브러리로 데이터 적재, 텍스트나 수치형 데이터 다루기, 모델 선택, 차원 축소 등 다양한 문제를 해결할 수 있다.

 

레시피의 코드를 샘플 데이터셋에 적용하며 실제로 코드가 어떻게 동작하는지 확인해본다. 문제 해결에 대한 설명과 유용한 배경지식도 제공한다. 이 책은 이론과 개념 설명을 넘어서 머신러닝 애플리케이션 제작에 필요한 구체적인 도구를 제시한다. 실무에서 레시피를 그대로 적용하거나 적절히 수정하여 쉽고 빠르게 문제를 해결하기 바란다.

 

9. 목차

CHAPTER 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 역행렬

__1.21 난수 생성하기


CHAPTER 2 데이터 적재

__2.0 소개

__2.1 샘플 데이터셋 적재하기

__2.2 모의 데이터셋 만들기

__2.3 CSV 파일 적재하기

__2.4 엑셀 파일 적재하기

__2.5 JSON 파일 적재하기

__2.6 SQL 데이터베이스로부터 적재하기


CHAPTER 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 데이터프레임 병합하기


CHAPTER 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 누락된 값 채우기


CHAPTER 5 범주형 데이터 다루기

__5.0 소개

__5.1 순서가 없는 범주형 특성 인코딩하기

__5.2 순서가 있는 범주형 특성 인코딩하기

__5.3 특성 딕셔너리를 인코딩하기

__5.4 누락된 클래스 값 대체하기

__5.5 불균형한 클래스 다루기


CHAPTER 6 텍스트 다루기

__6.0 소개

__6.1 텍스트 정제하기

__6.2 HTML 파싱과 정제하기

__6.3 구두점 삭제하기

__6.4 텍스트 토큰화하기

__6.5 불용어 삭제하기

__6.6 어간 추출하기

__6.7 품사 태깅하기

__6.8 텍스트를 BoW로 인코딩하기

__6.9 단어 중요도에 가중치 부여하기


CHAPTER 7 날짜와 시간 다루기

__7.0 소개

__7.1 문자열을 날짜로 변환하기

__7.2 시간대 다루기

__7.3 날짜와 시간 선택하기

__7.4 날짜 데이터를 여러 특성으로 나누기

__7.5 날짜 간의 차이를 계산하기

__7.6 요일을 인코딩하기

__7.7 시차 특성 만들기

__7.8 이동 시간 윈도 사용하기

__7.9 시계열 데이터에서 누락된 값 다루기


CHAPTER 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 컬러 히스토그램을 특성으로 인코딩하기


CHAPTER 9 특성 추출을 사용한 차원 축소

__9.0 소개

__9.1 주성분을 사용해 특성 줄이기

__9.2 선형적으로 구분되지 않은 데이터의 차원 축소하기

__9.3 클래스 분리를 최대화하여 특성 줄이기

__9.4 행렬 분해를 사용하여 특성 줄이기

__9.5 희소한 데이터의 특성 줄이기


CHAPTER 10 특성 선택을 사용한 차원 축소

__10.0 소개

__10.1 분산을 기준으로 수치 특성 선택하기

__10.2 분산을 기준으로 이진 특성 선택하기

__10.3 상관관계가 큰 특성 다루기

__10.4 분류 작업에 관련 없는 특성 삭제하기

__10.5 재귀적 특성 제거하기


CHAPTER 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 하이퍼파라미터 값의 영향을 시각화하기


CHAPTER 12 모델 선택

__12.0 소개

__12.1 완전 탐색을 사용해 최선의 모델 선택하기

__12.2 랜덤 서치를 사용해 최선의 모델 선택하기

__12.3 여러 학습 알고리즘에서 최선의 모델 선택하기

__12.4 전처리와 함께 최선의 모델 선택하기

__12.5 병렬화로 모델 선택 속도 높이기

__12.6 알고리즘에 특화된 기법을 사용하여 모델 선택 수행 속도 높이기

__12.7 모델 선택 후 성능 평가하기


CHAPTER 13 선형회귀

__13.0 소개

__13.1 직선 학습하기

__13.2 교차 특성 다루기

__13.3 비선형 관계 학습하기

__13.4 규제로 분산 줄이기

__13.5 라소 회귀로 특성 줄이기


CHAPTER 14 트리와 랜덤 포레스트

__14.0 소개

__14.1 결정 트리 분류기 훈련하기

__14.2 결정 트리 회귀 훈련하기

__14.3 결정 트리 모델 시각화하기

__14.4 랜덤 포레스트 분류기 훈련하기

__14.5 랜덤 포레스트 회귀 훈련하기

__14.6 랜덤 포레스트에서 중요한 특성 구분하기

__14.7 랜덤 포레스트에서 중요한 특성 선택하기

__14.8 불균형한 클래스 다루기

__14.9 트리 크기 제어하기

__14.10 부스팅을 사용하여 성능 향상하기

__14.11 OOB 데이터로 랜덤 포레스트 평가하기


CHAPTER 15 k-최근접 이웃

__15.0 소개

__15.1 샘플의 최근접 이웃 찾기

__15.2 k-최근접 이웃 분류기 만들기

__15.3 최선의 이웃 개수 결정하기

__15.4 반지름 기반의 최근접 이웃 분류기 만들기


CHAPTER 16 로지스틱 회귀

__16.0 소개

__16.1 이진 분류기 훈련하기

__16.2 다중 클래스 분류기 훈련하기

__16.3 규제로 분산 줄이기

__16.4 대용량 데이터에서 분류기 훈련하기

__16.5 불균형한 클래스 다루기


CHAPTER 17 서포트 벡터 머신

__17.0 소개

__17.1 선형 분류기 훈련하기

__17.2 커널을 사용해 선형적으로 구분되지 않는 클래스 다루기

__17.3 예측 확률 계산하기

__17.4 서포트 벡터 식별하기

__17.5 불균형한 클래스 다루기


CHAPTER 18 나이브 베이즈

__18.0 소개

__18.1 연속적인 특성으로 분류기 훈련하기

__18.2 이산적인 카운트 특성으로 분류기 훈련하기

__18.3 이진 특성으로 나이브 베이즈 분류기 훈련하기

__18.4 예측 확률 보정하기


CHAPTER 19 군집

__19.0 소개

__19.1 k-평균을 사용한 군집

__19.2 k-평균 군집 속도 향상하기

__19.3 평균이동을 사용한 군집

__19.4 DBSCAN을 사용한 군집

__19.5 계층적 병합을 사용한 군집


CHAPTER 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 신경망을 k-폴드 교차검증하기

__20.13 신경망 튜닝하기

__20.14 신경망 시각화하기

__20.15 이미지 분류하기

__20.16 이미지 증식으로 성능 향상하기

__20.17 텍스트 분류하기


CHAPTER 21 훈련된 모델 저장과 복원

__21.0 소개

__21.1 사이킷런 모델을 저장하고 복원하기

__21.2 케라스 모델을 저장하고 복원하기

10. 후기

10.1. 장점 및 특징

이 책의 가장 큰 장점은 실습을 통하여 배울 수 있다는 점인 것 같습니다. 이론 위주의 책이 있는 반면에, 실제 구현을 통한 실습 위주의 책이 있는데 이 책은 후자입니다. 위의 사진을 보면 쉽게 확인 할 수 있습니다. 하나의 예제 문제에 따라서 그에 따른 해결책을 제시해줍니다. 

 

  • '행렬을 만들어야 합니다.' => '넘파이를 이용하여 행렬을 만드는 방법 제시'
  • '두 벡터의 점곱을 계산해야 합니다.' => '넘파이 dot 함수를 사용합니다'
  • '특성 행렬에서 일부 특성의 상관관계가 크다고 의심됩니다.' => '상관관계 행렬을 사용하여 상관관계가 큰 특성을 확인하고 이들 중 하나를 삭제합니다.' 

위와 같은 식입니다. 각 단원의 번호마다 한 예제씩 주어지기 때문에, 목차에서 원하는 것을 찾아서 쉽게 실습할 수 있습니다. 각각 코드의 줄에 모두 주석이 달려있고 상세한 설명이 있어서 코드 이해에 도움을 줍니다. 또, 색이 다양해서 좋네요.

 

개인적으로 좋은 점은 트리, 랜덤 포레스트, 로지스틱 회귀, 서포트 벡터 머신 등등 다양한 통계 이론들을 직접 실습해볼수 있는 점이었습니다. 통계관련 학과가 아니다 보니 이런 지식에 약한데 이런 지식을 직접 익힐 수 있다는 점이 좋았습니다. 또, 신경망을 keras를 통하여 체험할 수 있다는 점도 역시 좋았습니다.

 

다양한 지식을 다루기 때문에 전반적으로 모르는 내용을 다 훑고나서 나중에 잊어버렸거나 모르는 내용이 있으면 찾아서 해결하면 될 것 같습니다. '모르는 것이 뭔지 알 수 있게 해주는 책' 이라고 생각합니다. 쉽게 설명하고 예제도 쉬운 편이기 때문에 이해가 잘 되는 것도 좋습니다. 쉬운 책을 선호해서 꽤 만족스럽네요. 

10.2. 주의사항 및 단점

초반부에는 쉬운 예제부터 나와서 얼핏 보면 개념 설명도 모두 해주는 것 같지만, 이 책에서는 이미 '개념적인 부분'은 안다는 전제가 깔려 있습니다. 가령 '선형회귀', '결정트리' 와 같은 개념을 설명해주지는 않고, 안다는 전제 하에서 예제를 진행하기 때문에 먼저 관련된 지식을 얻고 나서 보는 것을 추천드립니다. 

 

또, 한 개념에 대하여 강력하게 여러 예제를 실습하기 보다는 모든 내용에 대하여 두루 읽을 수 있는 책이기 때문에, '하나를 깊게 파고 싶다' 라거나 '고수를 위한 책'을 찾는 분께는 맞지 않는 것 같습니다. 또, 전반적으로 훑기 때문에 이런 책을 좋아하지 않는 분들에게도 맞지 않을 것 같습니다.

 

난이도 자체가 '중수'나 '이제 기초는 배운 것 같은데 다음은?' 정도에 맞춰진 책으로 보여집니다. 따라서, 직접 읽어봐야 자신에게 맞는 책인지 알 수 있다고 생각이 들기 때문에 직접 읽어보시거나 미리보기를 꼭 보시기를 권해드립니다. 

SAM_8444.JPG

 

이번에 리뷰할 책은 머신러닝 쿡북입니다. 박해선님이 옮긴 책이죠. 박해선님이 내신 책들은 믿고 본다는 분들도 계시죠. 왼쪽이 오늘 리뷰할 머신러닝 쿡북이고, 오른쪽이 예전에 내신 머신러닝 책이에요. 오늘 리뷰할 책은 오른쪽 머신러닝 책과 연관해서 생각해볼 필요가 있어요.

 

SAM_8445.JPG

 

왼쪽 쿡북은 하나의 소제목이 독립된 이야기를 담고 있어요. 필요할 때 찾아볼 수 있도록 되어 있고, 카테고리별로 묶여서 있죠. 오른쪽 머신러닝 책은 하나의 좀 더 긴 머신러닝 문제를 해결하는 과정에서 왼쪽 쿡북의 이야기들을 부분부분 이야기하고 있어요. 그래서 전체적인 흐름 속에서 각 함수의 활용을 보고 싶으면 오른쪽 책이 좋고, 그때 그때 찾아서 확인할 일이 있으면 왼쪽 쿡북이 좋아요.

 

SAM_8446.JPG

 

왼쪽 쿡북의 대상을 중급으로 잡고 있는데, 너무 수준 높은 중급이 아니라, 머신러닝 입문서를 읽어본 정도라면 왼쪽 쿡북을 이해할 수 있는 정도입니다. 책도 보시면, 편집이 널찍널찍하게 되어 있어요. 내용도 그렇게 많지는 않아요. 반면 오른쪽 머신러닝 책은 내용이 꽤 많죠. 문제는 여기에서 발생해요. 오른쪽 머신러닝 책이 내용은 더 많은 반면, 자세히 설명되어 있어서 처음 읽는 분도 쉽게 이해할 수 있어요. 그럼 왼쪽은 쿡북의 특성은 내용이 작아서, 자칫 처음이신 분들은 오히려 그 내용을 이해하기 어려울 수도 있어요. 왼쪽 쿡북은 처음 공부하는 책이라기 보다는, 전에 공부한 내용이 기억 안 날때 한번씩 찾아서 빠르게 활용하기에 더 좋은 책이에요.

 

SAM_8448.JPG

 

머신러닝 쿡북의 장점 중 하나가 작가의 주관적인 평가가 들어간다는 점입니다. 파이썬의 많은 라이브러리와 함수들 중에서 어느 것이 더 효과적인지, 어느 것이 더 속도가 빠른지 등 작가의 경험이 녹여 있다는 점입니다. 군데 군데 나와요~~

 

SAM_8449.JPG

 

여기 예시도 동일하죠. 저는 translate 함수를 사용한 적이 없는데, 이 책을 기회로 한번 알아보고 적극적으로 활용해봐야겠어요. 이 책을 읽다보면 이런 마음이 드는 곳이 여러번 나와요. 아마 이런 것이 이 책값을 충분히 하는 것으로 보입니다.

 

SAM_8450.JPG

 

쿡북이지만, 카테고리별로 나누어져 있습니다. 그리고 항상 소주제에서 파이썬 라이브러리를 불러오는 것으로 시작해서, 메소드나 클래스 활용법을 보여주는 방식이죠. 그래서 어디서 부터 읽어도 별 문제가 없답니다. 앞서 설명한 머신러닝 책은 중간에서 보면, 이해하기 어려운 부분들이 있죠. 각 단원 처음부터 읽어야 하는데, 쿡북은 그런 점에서 좀 더 자유롭습니다. 반면, 앞 부분이 너무 반복되는 느낌은 들기도 하죠.

 

SAM_8451.JPG

 

책을 읽다가 보면, 머신러닝 쿡북과 머신러닝 책이 비슷한 내용을 담고 있다는 사실을 알게됩니다.

 

SAM_8452.JPG

 

머신러닝 쿡북의 내용도 신경망 내용보다는 머신러닝 관련 내용들이 대부분입니다.

 

SAM_8453.JPG

 

파이썬 라이브러리를 활용한 머신러닝으로 충분하게 이해한 다음, 실전에서 작업하다 찾아볼 때 파이썬을 활용한 머신러닝 쿡북을 보는 것도 좋은 방법인 것 같습니다.저는 앞으로는 머신러닝 쿡북을 더 많이 볼 거 같아요. 어느정도 머신러닝은 이해하고 있으니까요. 그리고 쿡북에는 다양한 해결법과 코멘트가 더 많으니까요.

이 책은 머신러닝 모델을 개발하기 위한  전처리 과정, 모델 학습및 성능 평가에 있어서 필요한 주제및 전반적인 처리 과정을 다룬다. 


KakaoTalk_20191013_222920764.jpg

 

 

 특히 순서있는 범주형 데이터 특성 인코딩하기 , 이상치 감지및 다루기 , 특성 추출과 특성 선택을 사용한 차원 축소, 불균형한 클래스 다루기는 흥미로운 주제이다. 


KakaoTalk_20191013_223247472.jpg

 

 

 수치형, 범주형데이터 ,텍스트,이미지, 날짜와 시간데이터  다루기에서부터 다양한 머신러닝 모델을 학습하고 평가하는법을 배울 수 있다.

 - 선형 회귀, 로지스틱 회귀, 트리, 랜덤 포레스트, k-최근접 이웃

 - 서포트 벡터 머신(SVM), 나이브 베이즈, 군집, 신경망

 - 훈련된 모델의 저장과 복원 

 머신러닝 모델 개발시 궁금하거나  필요한 사항이 있다면 이 책을 통해 관련 주제를 찾고 실제 업무에 적용하는데 있어  많은 도움이 될 것이다.

 

KakaoTalk_20191013_223047367.jpg

 

KakaoTalk_20191013_223107002.jpg

 

Screen Shot 2019-10-13 at 9.22.14 PM.png

 

 

머신러닝 관련 여러 강의들과 서적으로 공부해왔습니다.

 

간단한 프로젝트도 제작해보기도 했고, 남들이 많이 해보지 않은 분야쪽으로도 진행해보았습니다.

 

지금까지 보았던 책들은 머신러닝 이론들을 설명하고 여러가지 머신러닝 기법을 알려주는 책이었습니다.

 

하지만, 이 책은 여러가지 작업 기반 접근  방식으로 머신러닝을 알려주고 있습니다.  

 

물론, 머신러닝을 처음 접하시는 분들에겐 이론 같은 부분이 탄탄한 입문서가 좋겠지만,

 

기본적은 밑바탕을 갖고 있으신 분들에겐 레퍼런스로 참조하기 정말 좋은 책입니다.

 

전처리면 전처리, 텍스트면 텍스트, 이미지면 이미지 까지 여러 분야의 예제 코드를 바탕으로

 

본인의 프로젝트를 제작할 수 있습니다.

 

머신러닝의 기본은 알고 자신만의 프로젝트를 제작하려는 분들에게 추천드립니다.

이 책의 대상 독자는 초보자는 아니라고 한다. 2주간 이 책을 옆에 두고 시간이 날 때마다 봤는데 파이썬에 대한 기초 소양이 있고 데이터분석과 시각화에 대한 어느정도 소양이 있다면 더 보기 좋을거 같지만 설명이 자세하게 적혀져 있어서 입문자라도 기계학습에 대한 기초지식만 있다면 읽는데 큰 무리는 없을 거 같다.

책의 표지 윗부분의 문구에서도 볼 수 있는 것처럼 이 책은 판다스와 싸이킷런을 활용한 실전 중심의 문제해결 방법을 제시하고 있다.

또, 대부분의 코드가 싸이킷런에서 제공하고 있는 기본 데이터셋을 통해 구성되어 있기 때문에 싸이킷런 공식 문서를 봐도 이해가 되지 않는 부분이 많았다면 이 책을 함께 보면 이런 부분들을 해소하는데 도움이 될 것 같다.

이 책의 역자는 [파이썬 라이브러리를 활용한 머신러닝] 외에도 다양한 기계학습과 관련된 책을 번역하고 집필한 분이다. 이 분의 책이 우리집에도 몇 권이 있고 이 분의 책을 통해 싸이킷런이나 파이썬을 통한 머신러닝의 개념을 이해하는 데 도움이 되었다.

프로그래밍 관련 서적을 볼 때 가장 먼저 보는 게 소스코드를 제공하고 있는지 여부인데, 이 책은 소스코드도 잘 공개되어 있을 뿐만 아니라 코드에 주석도 친절하게 있어서 코드만 봐도 어느정도 내용을 이해할 수 있도록 구성되어 있다.

rickiepark/machine-learning-with-python-cookbook: 파이썬을 활용한 머신러닝 쿡북 소스코드 :

또, colab 링크가 같이 있어서 링크를 클릭해서 직접 실습을 해볼 수 있는 점도 좋다.

기본적인 벡터, 행렬, 배열의 개념이 초반부에 설명되어 있다.

수치형, 범주형, 텍스트 데이터에 따라 데이터를 전처리 하는 방법이 나뉘어 설명되어 있다.

머신러닝 뿐만 아니라 신경망에 대한 기본적인 내용을 소개하고 있고 또 케라스를 통해 전반적인 내용을 실습할 수 있는 예제로 구성되어 있다. 분류, 회귀, 자연어처리 등 다양한 주제를 통해 실습을 해볼 수 있다.

책의 인쇄도 컬러로 되어 있어서 코드 가독성이 좋다.

신경망 부분에는 케라스의 기본 예제를 통해 설명하고 있는데 케라스 공식 사이트의 예제를 봤을 때 어떤 내용인지 이해가 되지 않았다면 이 책을 통해 도움을 받을 수 있지 않을까 싶다.

한빛미디어에서 박해선 님의 믿고 보는 번역서가 출간되었습니다. 바로 파이썬을 활용한 머신러닝 쿡북인데요, 쿡북이라는 이름은 보통 입문서에는 붙이지 않는 것처럼 이 책은 머신러닝 입문 서적은 아닙니다. 행렬부터 다양한 데이터를 다루는 방법과 K-최근접 이웃, 로지스틱 회귀, 서포트 벡터 머신, 나이브 베이즈, 군집 그리고 신경망까지 두루 다루고 있습니다. 책의 예제들은 판다스와 사이킷런을 중심으로 다루고 있는데 관련 라이브러리 지식이 있으면 조금 더 편하게 읽을 수 있겠습니다.

 

 

 

알고리즘에 대한 전체적인 설명보다는 데이터 정제에 초점을 맞춰서 여러 가지 상황에 대해서 문제 해결 방법을 제시하고 있기 때문에 다양한 분야의 넓은 지식을 습득하는데 상당히 괜찮은 책이라고 생각됩니다. 다만 특정 분야에 딥 다이브 하지 않기 때문에 예를 들어 컴퓨터 비전 이외에는 관심이 없거나 음성인식/합성 쪽만 관심이 있는 등 특수한 분야를 원한다면 이 책은 피하는 게 좋습니다. 하지만 머신러닝 입문을 넘어 중급으로 가는 과정에 다양한 실전 상황을 경험하고 싶다면 이 책에서 제공하는 다양한 예제를 꼭 살펴볼 것을 권하겠습니다.

 

 

 

책의 뒷면에 요약을 보면 한층 더 책의 내용을 한눈에 살펴볼 수 있습니다.

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

 

이 책을 통해 머신러닝뿐만 아니라 데이터를 다루는 데 있어서 파이썬의 강력함을 다시금 확인해보세요. :-)

[리뷰] 파이썬을 활용한 머신러닝 쿡북

 


개요

본 리뷰는 한빛미디어 출판사 "파이썬을 활용한 머신러닝 쿡북(크리스 알본 저)"를 읽고 얻은 지식을 정리한 글입니다.

데이터사이언스의 8할은 전처리


자! 이제 난 제법 보스턴 주택가격 예측도 돌려봤고, MNIST 데이터셋 손글씨 인식도 해봤고, 또 Iris 붓꽃 분류도 능히 해냈다. 근데 왜 현실로 돌아오면 난 아무것도 할 수가 없지? 이 책에 관심있는 독자분이라면 다들 비슷한 고민을 한번쯤 해보셨거나 마주하고 있는 중일 것이다. 필자 역시 마찬가지였고 지금은 나아가긴 했지만 새로운 유형의 데이터 셋을 만날 때마다 비슷한 고민에 빠진다.

머신러닝과 딥러닝을 마주하며 겪는 우리의 고민은 여러 유형이 존재하지만 당장 맞닥드리게 되는 크게 2가지 부류의 문제가 있다. 하나는 데이터 특성을 파악한 후 어떻게 해야 모델에 떠먹여 줄 수 있을지.. 즉, 전처리에 대한 고민이고, 다른 하나는 어느정도의 방법론은 찾아냈는데 언어의 벽 - Python, Julia, R, Swift - 등을 사용하면서 문법을 모르거나 또는 그 언어다운 기법을 사용할 줄 몰라 나만의 방식으로, 이상한 문법으로 빙빙 돌아가며 시간과 성능을 낭비하는 문제이다.

머신러닝 모델을 배워서 자신감도 생겼겠다, 내공을 튼튼히 하고자 머신러닝 관련 수학 개념도 잡았고, 코딩 더 매트릭스 같은 책으로 선형대수도 배웠고, 통계학의 기본기도 다잡으며 여기까지 왔는데 할 수 있는게 별로없다니.. 독립변수, 종속변수가 수치형인지 범주형인지 이진인지 숫자인지 등 데이터 성격에 따른 통계학적 개념도 어느정도 잡았는데 실무에서 마주친 데이터를 보고 머뭇거리게 될 수 밖에 없었던 경험. 그 무서운 경험에서 벗어나고 싶다면, 전처리에 대한 두려움을 없애고 싶다면, 필자가 아는 한 국내에선 이 책이 으뜸이라 말하고 싶다.

몸값 높은 데이터사이언티스트라면 현실에서 데이터를 마주했을 때 EDA와 시각화등을 통해 데이터의 생김새가 어떤지 감을 잡을것이다. 그리고 그간의 경험으로 축적된 내공을 통해 어떤 모델을 선택하고 어떤 평가지표를 적용할 지 견적이 나올 것이고, 모델이 최고의 성능을 발휘할 수 있도록 모델의 입맛에 맞게 전처리 작업에 돌입할 것이다. 그런 전문가가 아니라면 우리 대부분은 상당히 방대한 전처리의 범위에 압도당하고, 데이터의 특성에 따라 분석 기법도 천차만별이라는 사실에 좌절하게 된다.
전처리

실무에서 쉽게 맞닥드리게 되는 다음의 질문을 생각해보자.

  • 이미지에 나타난 사물의 경계선을 표시하고 싶다. 그런데 어떻게 그리지?
  • 기껏 학습에 사용할 사진을 열심히 찍었다. 그런데 빛에 반사가 되었네? 빛의 반사는 어떻게 지우지?
  • 평가지표라고는 MSE, ROC Curve, 정확도, Score Method 등 기본 지식만 갖췄는데 나만의 지표는 어떻게 만들수 있을까?
  • 방금 만든 로지스틱 회귀 모델의 분산을 줄이고 싶은데 이거 가능한건가?
  • 성별 데이터 불균형이 심한데 이거 그대로 돌려도 과적합에 빠지진 않으려나? 성능에 문제는 없으려나?
  • 명목변수를 특성 인코딩을 거쳐 수치로 바꿨는데 왜 원하는 결과대로 안나오지? 만약 위 질문 중 단 한번이라도 비슷한 고민을 하셨다면 이 책이 솔루션이라고 말하고 싶다.

저자는 수십 페이지로 작성된 안내글이 아닌 하나의 직관적인 질문으로 이 책을 소개한다. 1000개의 범주와 누락된 데이터가 있는 수치 특성, 불균형한 클래스로 이루어진 범주형 타깃 벡터가 담긴 JSON 파일을 다루기 위해 어떤 레시피를 사용해야 할까? 이 짧은 문장에 대한 답이, 그리고 유사한 레시피가 이 책에 씌여있다.구성

필자는 저자, 역자, 출판사와 금전적으로 관련이 없지만 이 책은 돈이 전혀 아깝지 않다. 그동안 데이터 사이언티스트의 꿈을 꾸며 열심히 삽질했던, 캐글 점수 좀 올려보겠다고 책 뒤져보며 축적해 온 엄청난 공을 들여왔던 나의 내공이 전부 녹아있다니… 눈 앞에 늦게 나타난 것이 밉기도 하고, 몰랐던 기법을 배울 수 있어 이쁘기도 한 묘한 매력을 뽑낸다.

실무 혹은 캐글 등의 경진대회를 접할수록 전처리의 중요성은 알겠는데 도대체 고수들의 내공이 담긴 책이 없는 것이 늘 불만이었다. 원서나 외국 레퍼런스는 어학 실력이 부족해 종종 한계에 부딪혔고, 국내에 발간된 번역서 중 전처리라는 제목이 포함된 신간을 기쁜 마음으로 구입하기도 했는데 데이터 수집 내용만 잔뜩있는 것을 확인하고 눈물 흘리며 덮었던 경험도 있다. 다행히 이번엔 진짜가 나타났다. 다들 전처리, 전처리 말은 많지만 고작 결측치와 이상치 처리만 주구장창 다루고 실전에서 겪은 경험들은 왜 이리도 없는지.. 덕분에 갈증이 엄청나게 해소되었다.

전처리, SW 2.0, 통계 핵심개념 등 본 도서의 장점


앞 장에서 소개한 바와 같이 이 책의 화룡정점은 전처리이다. 하지만 그걸로 끝이 아니다. 전처리에 대한 필요 이상의 이론을 걷어내고 실무에 필요한 딱 그 수준으로 빨리 급한불을 끄게 솔루션을 제시한다. 그 후 깔끔하고 핵심이 담긴 언제 사용하고 왜 사용하는지 설명을 제시한다. 마지막으로 핵심과 어긋난 삽질으로 지치거나 가독성이 떨어지지 않도록 (예를 들면 Open CV가 Python 3.6에서 지원이 안되는 줄 알고 지웠다가 설치하는 등 또는 사이킷런 0.20 등 최신버전의 등장으로 deprecate되기 직전의 코드를 유지보수하지 않도록 지켜주는 등) 역자가 후방을 든든하게 지켜준다. 요약하자면 책의 구성은 아래 그림과 같이 과제 - 해결 - 설명 - 참고 - 덧붙임(역자의 주)순서로 구성되어 있다. 책의 제목에 걸맞게 쿡북답게 구성되어있다.구성틀

덕분에 데이터의 기본 적재, 랭글링 기법을 기본으로 수치, 범주, 텍스트, 시계열, 이미지에 이르기까지 종류별로 거의 완벽하게 대응할 수 있는 기법들을 핵심개념 위주로 알려주어 문제 해결에 바로 적용할 수 있음은 물론 가독성을 올려주기에 학습효과가 좋다.이미지

그렇게 탄탄해진 개념을 바탕으로 다양한 예제와 친절한 주석, 설명을 통해 스프트웨어 2.0의 구현에 도움을 주는 프로그래밍 스킬을 전수한다. 특히 R에서 탄생한 Pandas를 Pandas답게(axis 활용 등), Python을 Python답게(리스트 컴프리핸션의 등) 사용할 수 있는 기법을 전수한다.

특성추출 및 선택 파트에서는 주성분분석(PCA)에 대한 깔끔한 해결책 뿐만 아니라 데이터 종류, 분산 특성에 따라 베르누이, 카이제곱, RFECV 등 어떤 것을 사용해야 하는지 통계학 개념이 실무핵심 위주로 집대성 되어있고 어떤 상황에서 왜 써야 하는지 상세히 서술한다. 더불어 현존하는 인기 머신러닝 모델을 선형회귀부터 신경망까지 깊이있게 다루는데 하나같이 다른책에선 보기 힘든 모델 관련 실무에서 맞닥드리게되는 문제 및 해결책 중심으로 구성되어 있어 저자 내공의 깊이에 적잖이 놀랐다. 마지막으로 pkl, HDF5등의 포맷으로 학습된 모델을 저장하고 불러오는 방법의 전수를 끝으로 화룡정점을 장식한다.모델저장

누구나 좋은책을 만나면 숨겨놓고 나만보고 싶다는 생각이 든 경험이 있을 것이다. 본 도서가 그렇다. 내가 그동안 열심히 시간을 투자해가며 얻은 팁과 내공들을 왜 세상에 이렇게 쉽게 내놓는 거냐며 투덜거리면서도 몰랐던 부분을 배울땐 그렇게 고마울 수 없는 묘한 책이다. 멋진 저자와 역자의 환상적인 콜라보로 탄생한 이 명작이 국내에서 필자와 같이 고군분투중인 데이터 사이언티스트 지망생들께 큰 도움이 될 것이라 믿어 의심치 않는다.

누가 읽어야 하는가?


  • sw 2.0 프로그래머 : 자체 데이터 사이언스 솔루션 개발, Python의 고급기술 습득

  • 데이터 애널리스트 : 부족했던 프로그래밍 스킬을 채우기에 좋다.

  • 데이터 사이언티스트 : 모델링 핵심에 대한 실무 전반을 돌이켜 보고, 더 좋은 성능을 보장하는 설계에 도움이 될 것이다.

  • 기타 머신러닝, 딥러닝, Python, 전처리 등을 배우고 싶은 학생, 실무자, 경영자 등

책의 구성 및 요약


이 책은 크게 네부분으로 구성되며, 각 파트에서 다루는 내용을 아래와 같이 요약해 보았다.

  • 1. 벡터, 행렬, 배열, 데이터 적재 및 랭글링(1 ~ 3장)
    • Numpy를 활용한 벡터, 행렬, 배열, 희소행렬, 인덱싱, 벡터연산, 기초통계량, 전치, 행렬식, 고유벡터, 역행렬 등
    • 샘플 데이터셋 적재 및 생성, CSV/ Excel/ Json/ SQL로 부터의 적재방법
    • 데이터프레임, 행선택, 치환, 기초통계, 이상치, 결측치, 중복제거, 열원소순회, apply일괄적용, 병합 등
  • 2. 데이터 종류별 전처리 기법(4 ~ 8장)
    • 데이터 종류(수치, 범주, 텍스트, 시계열, 이미지)에 따른 차별화된 실무 솔루션 제공
    • 스케일변환, 군집과 KNN을 활용한 이상치 처리, 결측치 처리, 순서유무에 따른 인코딩, 불균형 해소 등
    • 구두점, 불용어, HTML파싱, 어간추출, 품사태깅, BoW, TF-IDF 처리기법 등
    • 시차특성, 이동시간 윈도우 사용법, 이미지 이진화, 배경제거, 경계선 감지 등
  • 3. 특성 추출,선택 및 모델의 평가,선택(9장 ~ 12장)
    • 주성분분석, 클래스분리, 행렬분해, 희소데이터 특성 줄이기, 분산 기준으로 수치 및 이진 처리, 상관관계 특성 다루기 등
    • 교차검증, 기본회귀, 기본분류, 이진분류, 다중클래스분류, 사용자정의 평가지표 만들기 등
    • 완전탐색, 랜덤탐색, 전처리, 병렬화, 알고리즘 특화 기법 활용등을 통한 최선의 모델 선택 기법
  • 4. 머신러닝 모델(13장 ~ 20장)
    • 선형회귀, 트리, KNN, 로지스틱회귀, SVM, 나이브베이즈, 군집, 신경망 등
    • 모델별 실전에서 마주치는 실무적 해결기법 정리
    • 훈련된 모델의 저장 및 복원

요약하며…


현존하는 국내 서적 중 데이터사이언스 전처리 실무를 다루는 끝판왕이라고 요약하고 싶다. 머신러닝 모델과 개념을 다루는 책은 많지만 실전에서 특히 전처리를 다루는 책은 정말 접하기 쉽지 않다. 실무에서 맞닥드리기 쉬운 200가지의 실전문제에 대한 레시피를 제공함으로써 능숙한 데이터사이언스들이 실무에서 발휘하는 내공을 얻을 수 있다는 점이 매력이다. 모델에 따른 전처리 능력은 현직자들의 몸값을 높이는 스킬이므로 좀처럼 공유되지도 않는데다, 전처리는 데이터 유형, 분포, 성격에 따라 다루는 기법이 천차만별이기에 집대성하기 결코 쉽지 않은 분야이다. 실무 및 캐글 등 경진대회에서 깊이있게 고민했던 거의 모든 문제에 대한 해법이 담겨있어 놀랄 수 밖에 없다.

더불어 파이썬 다운 프로그래밍 기법을 활용한 샘플 제시로 좀 더 효율적인 프로그래밍 기법을 익힐 수 있게 해주는 점 또한 백미이다. 개념적으로 접근하기에도 쉽지 않은 실무문제에 골머리를 썩으면서, 또 한편으로는 파이썬의 효율적인 기법을 몰라 Pandas가 데이터를 다루는 방식을 몰라 레퍼런스를 찾고, 구글링하고, 커뮤니티에 질문을 올려 답이 올라오기만을 바라는 상황에 처해 본 프로그래머라면 이 책에서 제시하는 데이터사이언스에 특화된 프로그래밍 기법이 실무에 적용하기 얼마나 편리하게 정리되어있는지 감탄하게 될 것이다.

아울러 때로는 실무에 필요한 요소를 바로 찾아내기 어려운 방대한 통계의 바다에서 실무 문제에 어떤 기술을 어떤 상황에서 빠르게 적용해야 하는지 바로 제시함으로써 실무에 특화된 통계적 시각을 함양하게 해준다.

컬러판으로 출간되어 코드에 대한 가독성도 훌륭하여 아쉬운 점이 거의 없다. 굳이 찾자면 제목에 임팩트가 너무없기에 다른 서적과 중복된 내용을 다루는 듯한 느낌이 든다는 것? 머신러닝 서적을 수십권 보유한 필자와 같은 독자들의 시선을 한번에 사로잡기 어렵다는 정도이다. 필자에게 네이밍 센스는 없지만 적어도 “데이터 유형별 전처리 기법 전부 + 전처리를 통한 실무 모델링” 정도의 느낌이 풍기는 제목이었다면 더 유명해지지 않을까 싶다. 다행히도 본 리뷰를 접하는 독자가 있으시다면 적어도 다른책에서 흔히 다루는 뻔한 머신러닝 모델 의 중복 설명을 다루는 책이 아님을 아실 것이다. 관련 업계 실무자라면 꼭 일독을 권한다.

<한빛미디어 출판사>

믿고보는 “한빛미디어 출판사”. IT분야에서 독보적인 양질의 도서를 출판하는 회사입니다. “나는 프로그래머다” 팟캐스트 후원, DevGround2019 행사, 리뷰어 모집, 다양한 학습 지원 등 다양한 분야에서 사회에 공헌하는 개발자와 공생하는 업체입니다. IT분야에 관심 있으시다면 한빛미디어의 책으로 후회없는 출발을 하실 수 있습니다.

한빛미디어 바로가기

이 책은 머신러닝 입문 책이 아닌, 머신러닝의 실용적인 솔루션을 배울 수 있는 책이다. 

이미 딥러닝에 대해서 어느 정도 알고 있고, 유명한 모델들을 로드하여 실행해본 사람들이 타겟이며

또한 이 책이 "작업 기반" 접근 방식으로 머신러닝을 다루고 있다고 하는데, 목차를 보면 그 뜻을 알 수 있다. 

 

예를 들면 아래와 같다.

제 2장 데이터 적재 - 2.5 JSON 파일 적재하기

제 3장 데이터 랭글링 - 3.1 데이터프레임 만들기

제 6장 텍스트 다루기 - 단어 중요도에 가중치 부여하기

...

 

등으로 구성되어 있어서 머신러닝을 하는데 있어 필요한 팁들을 싸그리 모아놓은 책이라고 할 수 있다. 

옮긴이는 이 책이 일상적인 문제를 해결할 용도로 머신러닝 기술자의 책상에 모서리가 잔뜩 접힌 채 놓여 있으면 좋겠다고 했는데, 실제로 그럴만 한 책이다. 

 

 

또한 머신러닝으로 파이썬을 활용하여 기본적인 영상 처리를 하고자 하는 분들에게 꽤 도움이 될 수 있는 책이다. 


 

 

파이썬을 활용한 머신러닝 쿡북.jpg

 

 

 

Machine Learning with Python Cookbook

 

파이썬을 활용한 머신러닝쿡북

 

전처리에서 딥러닝까지, 판다스와 사이킷런 중심의 실전 문제 해결 200

 

파이썬을 활용한 머신러닝 쿡북

 

저자,크리스 알본 / 역자, 박해선

 

 

 

저자 크리스 알본(Chris Albon)은 선거 모니터링에서부터 재난구조에 이르기까지 십여 년간 통계학습과 인공지능, 소프트웨어 공학을 정치, 사회, 인도주의 활동에 적용해온 데이터  과학자이자 정치학자이다. 현재 크리스는 프런티어 마켓(frontier market)의 인터넷사용자를 위해 와이파이 네트워크를 구축하는 케냐의 스타트업 BRCK의 최고데이터 과학자(CDS) 이다.

옮긴이 박혜선은 구글 ML GDE(Machine Learning GoogleDeveloper Expert)이다. 기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고쓰는 일을 했다. 텐서플로 블로그(tensorflow.blog)를 운영하고 텐서플로 문서 번역에 기여하면서소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있다.

번역서는 국내 독자를 위해 모든 레시피 코드를 담은 깃허브(http://bit.ly/ml-cookbook-code) 저장소를제공한다. 사이킷런과 케라스의 새 버전에 맞추어 꾸준히 업테이트 한다 함.

번역서의 정오표 내용은 블로그(http://bit.ly/ml-cookbook) 에 등록해 놓는다함.

 

이 책에 대하여

일상적인 머신러닝 작업에 필요한 세부 사항을 다루는 주제는 제외되었다.

전문가를 위한 스위스 만능칼 같은 책이다. 일상적인 문제를 해결할용도로 머신러닝 기술자의 책상에 모서리가 잔뜩 접힌 채 놓여 있으면 좋겠다. 이 책은 작업 기반 접근방식으로 머신러닝을 다룬다.

데이터 과학자와 머신러닝 엔지니어가 모델을 만들 때 자주 사용하는 작업에 유용한 거의 200개에 달하는 독립적인 해결책을 담고 있다(이 책의 코드는 복사해서붙여넣으면 실행됩니다).

실제 머신러닝 시스템을 만드는 사람들을 위한 참고 도서가 되는 것이 궁극적인 목표다.

예를 들어 1,000개의 범주와 누락된 데이터가 있는 수치 특성, 불균형한 클래스로 이루어진 범주형 타킷 벡터가 담긴 JSON 파일을가지고 있다고 가정해보자. 이 문제를 해결하는 방안으로 

 

이 책은 다음과 같은 레시피를 제공한다.

     JSON 파일을 적재하기(2.5)

     특성을 표준화하기(4.2)

     특성 딕셔너리를 인코딩하기(5.3)

     누락된 클래스 값을 대체하기(5.4)

     주성분을 사용해 특성을 줄이기(9.1)

     랜덤 탐색을 사용하여 최선의 모델 선택하기(12.2)

     랜덤 포레스트 분류기 훈련하기(14.4)

     랜덤 포레스트에서 중요한 특성 선택하기(14.7)

 

이 책은 다음과 같은 작업을 할 수 있도록 돕는다.

1.    코드를 복사해 붙여 넣을 수 있고 책에 포함된 작은 데이터 셋에서 실제로 동작한다는 확신을가진다.

2.    설명을 통해 코드를 실행시키는 기술 이면에 있는 이론을 이해하고 어떤 매개변수가 중요한지배웁니다.

3.    실전 애플리케이션을 구축하는 레시피 코드를 추가, 연결, 적용합니다.

 

누구를 위한 책인가?

이 책은 머신러닝 입문서가 아니다. 머신러닝 기본 개념에 익숙하지않거나 머신러닝을 배운적이 없다면 이 책을 사지 마세요. 이 책은 머신러닝 이론과 개념에 익숙한 머신러닝기술자를 위한 책이다. 이들에게는 매일 머신러닝 작업에서 마주치는 도전 과제를 해결하는 코드를 담은참고 도서로 도움이 될 것이다.

이 책은 독자가 파이썬 프로그래밍과 패키지 관리에 익숙하다고 가정한다.

저자가 말하듯 이 책은 입문서가 아닌 머신러닝 엔지니어가 프로젝트 실행과정에서 막힐 때 참고하여 문제를 해결하도록도움을 줄 수 있는 전처리에서 딥러닝까지, 판다스와 사이킷런 중시의 실전 문제 해결 200선이다.

데이터 과학자, 머신러닝 엔지니어에게 필요한 필독서가 될 것으로 강력추천한다.

역자 박해선의 텐서플로 블로그는 ML, DL에 궁금한 독자라면 꼭둘러보기를 권하고 싶다.

 

이번달에는 그동안 한번쯤은... 하면서 보고싶어했던 도서가 왔다.

 

한참 대세가도를 달리며 무시무시하게 성장을 하고있는 '파이썬'과

 

물만난 물고기 처럼 엄청난 양의 데이터와 결과를 뿜뿜하고있는 '머신러닝'을 합친

 

멋진 도서 '파이썬을 활용한 머신러닝 쿡북' 이다.

 

 

"요즘 뭘 공부해야 하지...?"

"비전공자가 시작하려면...?"

 

하는 생각이 있다면 한번쯤은 들어보는 그것...

 

'머신러닝'

 

그런데 컴퓨터관련 전공자로써 이 '머신러닝' 이나 '딥러닝' 혹은 '빅데이터' 분야는

그렇게 말처럼 쉽게 접근할수 있는 분야가 아니라고 말하고 싶다...

 

 

 

왜이렇게 약한 모습을 보이느냐...? 하면

바로...

책에 쓰여있기 때문이지... 후훗..

 

'입문서가 아니다' 라는 말로 이미 게임 오버다.

물론 이 책만을 지칭하고 말하는것 일수도 있지만...

위에서 말한 '머신러닝'등의 기술을 배우기 위해서는 최소 아래의 관문들은 통과해야 하지 않나 생각한다.

 

1. 수학(더하기 빼기 나누기 같은거 말고... 위 사진의 벡터, 행렬, 기하... 뭐 그런거...?)

2. 기본적인 파이썬 지식(언어가 다 거기서 거기라고는 하지만... 분명 다른점이 존재한다, 기본이라도...)

3. 끈기(아무리 공부 잘해도 재미가 없다면...?)

 

일단 나는 1번에서 탈락해버렸다.

2,3번이 어찌어찌 된다해도... 1번... 의 문제는 참 어렵다

 

수학... 참 심오한 녀석...

 

그래서 일단은 책을 쭉 훑어보자 생각했다.

 

이 책은 겉표지를 봤다면 다 알겠지만 '번역서' 이다.

우리나라에도 이 분야에 훌륭하신 분들이 많으시겠지만...

결국은 다 외국이다.

그렇다...

 

뭐 한국말로 번역하면 못알아 들을게 뭐가있냐 생각할 수도 있지만

일단은 기본적인 지식을 익혀두고가야 수므쓰하게 넘어갈 수 있을것이다.

 

그런 의미에서 용어설명, 그리고 이 책을 읽으면서 어떤일이 가능한지 등이 초반에 쓰여있다.

위의 사진처럼 코드를 따라 쓰면서 실습 해볼 수 있다!

 

그리고 쭈우욱 따라서 연습하다보면...

 

그래프나 "이제 텍스트 말고 재미난 것을 해볼수 있겠구나" 하는 생각이 들만한 것들이 나온다.

 

 

 

개인적으로 머신러닝 공부를 했을때는 그래프나 차트... 도 좋지만,

이미지를 갖고 노는게 제일 재미있었다.

 

그래서 OPENCV에도 관심을 가지게 되었는데...

(이 얘기는 나중에...)

 

이처럼 처음에는 지루할지 모르지만, 후반부로 넘어갈수록 재미있는 실습들이 많이 나온다.

 

일단 나는... 읽어본 바로써는 다른 서적을 먼저 읽거나 공부하는게 좋다고 판단이 들었다.

 

분명 말하지만 이건 '입문서'가 아니다.

1부터 100까지 프로세스가 있다면,

1부터 10까지 무엇을 설치하고 어떻게 실행해야 하며....

같은 설명은 들어있지 않다.

 

기본적인 머신러닝 지식과 기술을 익힌 사람들이

"아 이제는 좀 더 해봐야겠는데?"

라는 생각이 들 때 접해야 하는 서적이란 느낌이 든다.

 

그러니 이 책은 잠시 봉인하도록 해야겠다.

책모서리가 찌그러졌습니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬을 활용한 머신러닝 쿡북
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
파이썬을 활용한 머신러닝 쿡북
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬을 활용한 머신러닝 쿡북
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실