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

한빛출판네트워크

파이썬 라이브러리를 활용한 머신러닝(번역개정판) : 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서

한빛미디어

번역서

절판

4.7점 (14명)
좋아요 : 7

사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현 

 

현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭한 머신러닝 라이브러리가 복잡하고 난해한 작업을 직관적인 인터페이스로 감싸주는 덕분이죠. 이 책에서는 사이킷런의 핵심 개발자가 복잡한 수학을 동원하지 않고 실용적으로 머신러닝을 구축하는 모든 단계를 설명합니다. 미적분, 선형대수, 확률 이론을 공부하지 않았어도 이 책을 통해 머신러닝을 활용할 수 있게 될 것입니다.

 

※ 본 번역개정판은 scikit-learn 업데이트에 따라 전반적으로 내용을 갱신한 원서 4쇄를 기반으로 합니다. 오탈자를 바로잡고, 시각적 편의를 위해 풀컬러로 인쇄했으며, 한국어판 부록 3개 절을 추가했습니다.

 

python_ml_733.jpg

 

 

번역개정판의 특징

 

본 번역개정판은 원서 4쇄를 기반으로 하며, 초판 발행 이후 알려진 오탈자를 모두 바로잡았습니다. 또한 시각적 편의를 위해 풀컬러로 인쇄했고, scikit-learn 업데이트에 따라 전반적으로 내용을 업데이트했습니다. 나아가 국내 독자에게 더 도움이 되도록 2.3절에 배깅, 엑스트라 트리, 에이다부스트 알고리즘을 살펴보는 내용을 추가했고, 3.3절에는 QuantileTransformer와 PowerTransformer 변환기, 5.1절에는 반복 교차 검증 예제를 추가했습니다.

 

주요 내용

  • 머신러닝의 기본 개념과 응용
  • 널리 사용되는 머신러닝 알고리즘의 장점과 단점
  • 머신러닝으로 처리한 데이터를 표현하는 방법
  • 모델 평가와 매개변수 튜닝을 위한 고급 방법
  • 체인 모델과 워크플로 캡슐화를 위한 파이프라인
  • 텍스트 데이터를 다루는 기술
  • 머신러닝과 데이터 과학 기술 향상을 위한 조언
안드레아스 뮐러 저자

안드레아스 뮐러

독일 본(Bonn) 대학교에서 머신러닝으로 박사 학위를 받았습니다. 1년간 아마존의 컴퓨터 비전 응용 부서에서 머신러닝 연구자로 일한 뒤 뉴욕 대학교의 데이터 과학 센터에 합류했고, 현재는 컬럼비아 대학교에서 ‘Applied Machine Learning’ 과목을 가르치고 있습니다. 지난 4년 동안 학계와 산업계에서 널리 사용하는 머신러닝 툴킷인 사이킷런의 핵심 기여자와 관리자로 활동했습니다. 또 잘 알려진 여러 머신러닝 패키지를 직접 만들거나 개발에 참여했습니다. 뮐러의 소망은 머신러닝 애플리케이션 개발의 진입 장벽을 낮추고, 수준 높은 머신러닝 알고리즘을 손쉽게 사용할 수 있는 공개 툴을 만드는 것입니다.

 

세라 가이도 저자

세라 가이도

오랫동안 스타트업에서 일해온 데이터 과학자이자 뛰어난 콘퍼런스 발표자입니다. 파이썬, 머신러닝, 대량의 데이터와 기술 세계를 좋아합니다. 미시간 대학교의 대학원에 입학했으며, 지금은 뉴욕에 거주하고 있습니다. 

박해선 역자

박해선

기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 텐서 플로우 블로그(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.1 왜 머신러닝인가?

1.1.1 머신러닝으로 풀 수 있는 문제

1.1.2 문제와 데이터 이해하기

1.2 왜 파이썬인가?

1.3 scikit-learn

1.3.1 scikit-learn 설치

1.4 필수 라이브러리와 도구들

1.4.1 주피터 노트북

1.4.2 NumPy

1.4.3 SciPy

1.4.4 matplotlib

1.4.5 pandas

1.4.6 mglearn

1.5 파이썬 2 vs. 파이썬 3

1.6 이 책에서 사용하는 소프트웨어 버전

1.7 첫 번째 애플리케이션: 붓꽃의 품종 분류

1.7.1 데이터 적재

1.7.2 성과 측정: 훈련 데이터와 테스트 데이터

1.7.3 가장 먼저 할 일: 데이터 살펴보기

1.7.4 첫 번째 머신러닝 모델: k-최근접 이웃 알고리즘

1.7.5 예측하기

1.7.6 모델 평가하기

1.8 요약 및 정리

 

CHAPTER 2 지도 학습

2.1 분류와 회귀

2.2 일반화, 과대적합, 과소적합

2.2.1 모델 복잡도와 데이터셋 크기의 관계

2.3 지도 학습 알고리즘

2.3.1 예제에 사용할 데이터셋

2.3.2 k-최근접 이웃

2.3.3 선형 모델

2.3.4 나이브 베이즈 분류기 

2.3.5 결정 트리

2.3.6 결정 트리의 앙상블

2.3.7 (한국어판 부록) 배깅, 엑스트라 트리, 에이다부스트

2.3.8 커널 서포트 벡터 머신

2.3.9 신경망(딥러닝)

2.4 분류 예측의 불확실성 추정

2.4.1 결정 함수

2.4.2 예측 확률

2.4.3 다중 분류에서의 불확실성

2.5 요약 및 정리

 

CHAPTER 3 비지도 학습과 데이터 전처리

3.1 비지도 학습의 종류

3.2 비지도 학습의 도전 과제

3.3 데이터 전처리와 스케일 조정

3.3.1 여러 가지 전처리 방법

3.3.2 데이터 변환 적용하기

3.3.3 (한국어판 부록) QuantileTransformer와 PowerTransformer

3.3.4 훈련 데이터와 테스트 데이터의 스케일을 같은 방법으로 조정하기

3.3.5 지도 학습에서 데이터 전처리 효과 

3.4 차원 축소, 특성 추출, 매니폴드 학습

3.4.1 주성분 분석(PCA)

3.4.2 비음수 행렬 분해(NMF)

3.4.3 t-SNE를 이용한 매니폴드 학습

3.5 군집

3.5.1 k-평균 군집

3.5.2 병합 군집

3.5.3 DBSCAN

3.5.4 군집 알고리즘의 비교와 평가

3.5.5 군집 알고리즘 요약

3.6 요약 및 정리

 

CHAPTER 4 데이터 표현과 특성 공학

4.1 범주형 변수

4.1.1 원-핫-인코딩(가변수)

4.1.2 숫자로 표현된 범주형 특성

4.2 OneHotEncoder와 ColumnTransformer: scikit-learn으로 범주형 변수 다루기

4.3 make_column_transformer로 간편하게 ColumnTransformer 만들기

4.4 구간 분할, 이산화 그리고 선형 모델, 트리 모델

4.5 상호작용과 다항식

4.6 일변량 비선형 변환

4.7 특성 자동 선택

4.7.1 일변량 통계

4.7.2 모델 기반 특성 선택

4.7.3 반복적 특성 선택

4.8 전문가 지식 활용

4.9 요약 및 정리

 

CHAPTER 5 모델 평가와 성능 향상

5.1 교차 검증

5.1.1 scikit-learn의 교차 검증

5.1.2 교차 검증의 장점

5.1.3 계층별 k-겹 교차 검증과 그외 전략들

5.1.4 (한국어판 부록) 반복 교차 검증

5.2 그리드 서치

5.2.1 간단한 그리드 서치

5.2.2 매개변수 과대적합과 검증 세트

5.2.3 교차 검증을 사용한 그리드 서치

5.3 평가 지표와 측정

5.3.1 최종 목표를 기억하라

5.3.2 이진 분류의 평가 지표

5.3.3 다중 분류의 평가 지표

5.3.4 회귀의 평가 지표

5.3.5 모델 선택에서 평가 지표 사용하기

5.4 요약 및 정리

 

CHAPTER 6 알고리즘 체인과 파이프라인

6.1 데이터 전처리와 매개변수 선택

6.2 파이프라인 구축하기

6.3 그리드 서치에 파이프라인 적용하기

6.4 파이프라인 인터페이스 

6.4.1 make_pipleline을 사용한 파이프라인 생성

6.4.2 단계 속성에 접근하기

6.4.3 그리드 서치 안의 파이프라인 속성에 접근하기

6.5 전처리와 모델의 매개변수를 위한 그리드 서치

6.6 모델 선택을 위한 그리드 서치

6.6.1 중복 계산 피하기

6.7 요약 및 정리

 

CHAPTER 7 텍스트 데이터 다루기

7.1 문자열 데이터 타입

7.2 예제 애플리케이션: 영화 리뷰 감성 분석

7.3 텍스트 데이터를 BOW로 표현하기

7.3.1 샘플 데이터에 BOW 적용하기

7.3.2 영화 리뷰에 대한 BOW

7.4 불용어

7.5 tf–idf로 데이터 스케일 변경하기

7.6 모델 계수 조사

7.7 여러 단어로 만든 BOW(n-그램)

7.8 고급 토큰화, 어간 추출, 표제어 추출

7.8.1 (한국어판 부록) KoNLPy를 사용한 영화 리뷰 분석

7.9 토픽 모델링과 문서 군집화

7.9.1 LDA

7.10 요약 및 정리

 

CHAPTER 8 마무리

8.1 머신러닝 문제 접근 방법

8.1.1 의사 결정 참여

8.2 프로토타입에서 제품까지

8.3 제품 시스템 테스트

8.4 나만의 추정기 만들기

8.5 더 배울 것들

8.5.1 이론

8.5.2 다른 머신러닝 프레임워크와 패키지

8.5.3 랭킹, 추천 시스템과 그 외 다른 알고리즘

8.5.4 확률 모델링, 추론, 확률적 프로그래밍

8.5.5 신경망

8.5.6 대규모 데이터셋으로 확장

8.5.7 실력 기르기

8.6 마치며

“이 책은 사이킷런이 제공하는 핵심 알고리즘들의 사용법을 알려줍니다. 여기에 정성 가득한 역자주까지 더해져서, 머신러닝에 입문하는 파이썬 개발자에게는 더할 나위 없는 선물입니다.”

- 오동권, 니트머스 CTO

 

“이 책은 복잡한 수식은 걷어내고 사이킷런을 기반으로 각 머신러닝 알고리즘의 원리와 구현 방법을 여러 예제를 들어 설명합니다. 약간의 프로그래밍 지식만 있다면 복잡한 이론적 배경 없이도 혼자 학습하기 좋은 책입니다.”

- 이상훈, 삼성생명 DA Lab ‘한국 스파크 사용자 모임’ 운영자, 『실시간 분석의 모든 것』 역자

 

“머신러닝 시장을 선도하는 라이브러리의 핵심 개발자가 쓰고, ‘텐서플로 코리아 그룹’에서 한국 인공지능 개발자들을 위해 애써주시는 박해선 님이 우리말로 옮겼습니다. 중간중간 받아본 번역 원고에서 느껴지는 저자와 역자의 내공과 정성에 감명받았습니다.”

- 개앞맵시, 『밑바닥부터 시작하는 딥러닝』 역자

 

“파이썬을 사용하여 머신러닝을 시작하려는 사람을 위한 환상적인 안내서입니다. 제가 사이킷런을 시작했을 때 이 책이 없던 게 한스러울 따름입니다!”

- 해나 월릭, 마이크로소프트 리서치 선임 연구원

 

0. R은 뭔가 한계가 있다

R은 빠른 통계분석을 지원합니다. 특히 dataframe과 vector 연산은 간단한 스크립트 언어를 통해 다양한 모델링을 가능하게 지원합니다. 회귀분석, SVM, Random Forest 등과 같은 모델을 쉽게 처리할 수 있죠. 그러나 신경망이나, 딥러닝을 하는 과정에서는 많은 제약을 가지고 있습니다. 가장 하나가 tensorflow 문제입니다. 물론, keras를 이용해, 사용하는 방법도 있지만, 여전히 python에 비해서는 많은 한계가 있습니다. 특히 R은 Single Core Single Thread를 이용하기 때문에, 복잡한 연산과 시뮬레이션이 필요한 경우에 많은 제약을 가지게 됩니다.


 


 

1. 파이썬 기반의 머신러닝 입문서

 

이 책은 Python을 기반으로 하는 머신러닝을 입문서 입니다. 그러므로 당연히 파이썬의 기본문법을 다루지는 않습니다. 하지만, 이 책은 다양한 머신러닝 알고리즘을 충실한 설명하고 있습니다. 특히 이런부분이 좋습니다.

 

[분류와 회귀의 차이]? [일반화, 과대적합, 과소적합]?

 

보통 머신러닝을 공부할 때 분류와 회귀의 차이를 모르고 공부하는 경우가 허다합니다. 그러나 이 책은 아주 기본이 되는 이러한 정보를 차근차근 제시하고 있습니다. 여러분들은 알고계신가요?

*회귀의 경우, 하나의 실수값을 예측하는데 이용됩니다. 반대로 분류는 하나의 값을 찾는 것이 아니라, 예/아니오(이진 분류)나 종류를 나누는 예를들어 자동차의 소형, 중형, 대형(다중분류) 등과 같은 분류작업을 가리킵니다.

또한 일반화, 과대적합, 과소적합에 대해서도 반드시 잘 이해하고 있어야 됩니다. 이 책은 이처럼 머신러닝에 필요한 기본지식을 이해하기 쉽게 설명하고 있습니다.


2. 센스있는 한국어판 부록

 

 

이번 번역 개정판에는 한국어판 추가부록이 있습니다. 지도학습에서 [배깅, 엑스트라 트리, 에이다부스트], 데이터 전처리와 스케일 조정에서 [QuantileTransformer와 PowerTransformer], 교차검증에서 [반복 교차검증] 등 국내 독자들을 위해, 필요한 정보를 더 첨부해 보강시켜 주었습니다. 특히 Scikit-learn의 최신버전에 맞춘 코드와 풀컬러 인쇄는 이점은 개정판의 가치를 한층더 높여주었습니다.





 


 

3. 다양한 예제

 

요즘 시장에서는 비정형데이터(텍스트, 음성 데이터 등)를 머신러닝을 응용해 원하는 결과를 얻기위한 시도가 다양하게 이뤄지고 있습니다. 실제 회사에서 일하는 실무자들은 이러한 처리가 필요하기 때문에 머신러닝을 공부합니다. 그러나, 보통 책들은 이미지면 이미지, 오디오면 오디오, 텍스트면 텍스트만을 다루기 때문에 다양한 예제를 접하는게 쉽지 않습니다. 그러나 이 책은 영상, 텍스트 분석 등 다양한 분석을 통해 머신러닝을 학습할 수 있도록 지원하고 있습니다.


 




 

4. 보기드문 기본서

 

요즘 머신러닝과 관련해 다양한 책들이 나오고 있고, 저도 실제 다양한 책을 사서 공부하고 있습니다. 그러나 이 책은 다른 책과 달리 계속 옆에 두고 보게 됩니다. 보통 하나의 알고리즘을 제시하면, 그 용례를 설명하는 것으로 그칩니다. 그러나 이 책은 그 용례를 보다 더 진화시켜, 세부적으로 다루고 있으며, 다양하게 알고리즘을 활용할 수 있도록 그 예시나 이론을 설명하고 있습니다. 즉 그 만큼 머신러닝 내용을 충실히 다루고 있습니다. 또한 구현된 모델을 절차를 통해, 검증하고, 평가해 실무에 활용할 수 있도록 내용을 충실히 구성하고 있습니다. 물론 머신러닝 알고리즘은 생각보다 엄청나게 많은 종류가 있습니다. 하지만 활용하는 절차는 이 책에서 다루는 것과 거의 대부분 유사합니다. 또한 빅데이터 분석 강의에서 다루는 머신러닝 알고리즘을 충분히 다루고 있어, 중급에서 고급지식이 필요한 사람들에게 잘 맞는 책이라고 생각듭니다.

 

 

 
이번에 리뷰하는 도서는 최근에 본 책 중에 가장 인쇄 상태나 가독성이 좋아 맘에 드는 책이다.
 
책 표지에도 있듯이 "풀컬러" 개정번역판 이므로 책의 거의 모든 내용이(그림과 텍스트) 컬러로 되어 있어 아주 좋았다.
 
 
아래 사진을 보면 왜 컬러 인쇄가 좋은지 바로 알 수가 있다.  
 
컬러 인쇄가 아니라면 다양한 그래프나 챠트를 볼 때 분석의 어려움이 있기 때문이다.
 
 
 
책 곳곳에 한국어판 부록이 있는 점도 독특한데 특히 7.8.1의 내용은 한글을 사용하여 감성 분석을 하는 부분이라서 
 
한국어 독자들에게 많은 도움이 되리라 생각한다.
 
 
이 책은 대부분의 내용이 사이킷런에 대한 내용과 알고리즘에 대한 내용이다.
 
독자 수준은 초급이라고 되어 있지만 실무에서 추천 시스템을 예전에 개발해본 입장에서 봐도 쉬운 내용은 아니라고 생각된다.
 
머신 러닝을 처음 접해보는 독자라면 낯선 용어들과 온갖 수식으로 머리가 아플수도 있겠지만 
 
그 모든걸 다 이해할 필요는 없다고 생각한다.
 
또한 독자들이 바로 실무에서 사용할 수 있는 예제들이 많은 책은 아니므로(원래 이 책의 의도가 아닐 것이므로)
 
머신 러닝에 대한 좀 더 쉬운 내용을 원하는 독자라면
 
처음 배우는 머신러닝(http://www.hanbit.co.kr/media/books/book_view.html?p_code=B8660115730) 등의 다른 책도 읽어보긴 추천한다.

2017년에 출판된 "파이썬 라이브러리를 활용한 머신러닝, 부제 : 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서"의 번역 개정판이다. 목차상으로 큰 차이는 없어 보이지만 번역 개정판 소개를 보면 개정판을 내면서 오탈자 수정, 풀컬러 인쇄, 사이킷런 업데이트에 따른 내용 업데이트, 국내 독자를 위해 몇 가지 주제가 추가되었다고 한다.

 

"R로 시작할 것인가, 파이썬으로 시작할 것인가?"

본격적인 데이터 분석, 머신러닝 공부를 시작하면 정작 아무것도 모르는 상황임에도 불구하고 위와 같은 난처한 선택을 해야만 하는데, 두 가지 도구 중 Python을 선택했다면 필연적으로 사이킷런 라이브러리를 사용하게 된다.

 

이 책은 사이킷런을 중심으로 파이썬을 이용해 머신러닝의 기본 개념을 배우고 실습해 나갈 수 있도록 구성되었다.

데이터 분석의 기본 개념을 배웠고, 파이썬도 조금은 다뤄보았으며, numpy, pandas, matplotlib, seaborn 등의 라이브러리를 통해 데이터를 전처리하고 시각화해가며 데이터를 탐색할 정도의... 어느 정도 워밍업이 된 사람이라면 이 책이 본격적으로 머신러닝 쪽 공부할 수 있도록 안내해 줄 수 있을 것 같다. 그다음 신경망, 딥러닝쪽 주제를 다루는 책이나 강의를 찾아 공부하면 될 것 같다.

하지만, 그냥 막 머신러닝을 시작하는 사람이라면 이론이나 개념 설명이 아주 상세히 되어 있지는 않은 편이므로 다른 부가 정보들을 충분히 찾아가면서 따라가야 하지 않을까 싶다.

 

내가 느끼는 2017년에 출간된 책과 번역개정판의 가장 큰 차이는 풀컬러 인쇄인 것 같다.

2017년 책이 없다면 당연히 이번에 나온 번역개정판을 읽어야겠지만, 나처럼 2017년 책이 있는 사람이라 할지라도 책을 다시 구매할만한 가치가 있다는 생각이다.

 

표지만 컬러로 바뀐줄 알았는데, 본문 내용도 전부 풀컬러로 인쇄되어 있다.

특히 소스코드, 그래프 등은 컬러로 봤을 때 훨씬 눈에 잘 들어온다.

앞으로도 2천원 차이라면 이런 종류의 학습 도서들은 컬러로 출판해주면 좋을 것 같다.

 

20190607_161226.jpg

 

 

책에서 사용되는 소프트웨어, 라이브러리들도 모두 버전이 올라갔다.

 

스크린샷 2019-06-10 오전 12.01.40.png

 

 

개인적으로는 (물론 새로 돈 주고 사야 하는 경우지만) 왠지 OS 업그레이드하듯, 책을 AS 받는다는 느낌이 들어서 좋았다.

안녕하세요.

예지우랑입니다. 

오늘 리뷰할 도서는 "파이썬 라이브러리를 활용한 머신러닝" 입니다. 

전통의 명가 한빛미디어에서 또다른 전통의 명가 오라일리에서 나온 Introduction to Machine Learning with Python( 파이썬 라이브러리를 활용한 머신러닝)의 번역개정판을 출판하였습니다. 이번 버전은 사이킷런 최신버전을 반영한 풀컬러번역 개정판입니다. 

또 운좋게도 리뷰 이벤트에 당첨되어 책을 읽고 리뷰를 할 수 있는 기회를 얻었습니다.

항상 좋은 책을 출판해주시는 전통의 명가, 개발자들의 친구 한빛 미디어에 감사의 말씀 드립니다.

 

파이썬 라이브러리를 활용한 머신러닝[번역개정판]

 


책옆의 테드폴 올챙이의 다크가 제 눈의 다크랑 비슷하네요. 너도힘들구나 나도 힘들다.

저는 작은 회사에서일하는 보잘것없는 웹개발자지만 이것저것 관심은 많습니다. 그 많은 관심중 하나가 바로 머신러닝이었죠 회사에서 커머스 도메인과 물류 도메인을 개발하고있기때문에 '머신러닝을 이용하면 출고량을 예측할수 있지 않을까? 판매량을 예측할 수 있지않을까?" 뭐 이런생각을 해보면서 성킴님의 머신러닝책을 보고 앞쪽을 잠시 보고 수학공식만 보다가 마음을 접었죠. 많은 개발자분들 저랑 비슷할거같습니다. 

그러다가 텐서플로우르 쓰면 머신러닝이 편하다더라! 하는 카더라를 듣고 파이썬을 공부하기 시작했는데 여느 개발자들과 마찬가지로 실제 업무에서 파이썬을 쓰지 않다보니 공부 속도는 너무나도 더뎠죠. 결국 텐서플로우는 만져보지도못하구요 그러던 와중에 전통의 명가 한빛미디어에서 이런 좋은 리뷰 기회를 주셔서 감사합니다. 

먼저 목차부터 살펴보기로하지요 


목차

  1. 소개
    1. 왜 머신러닝인가?
    2. 왜 파이썬인가?
    3. scikit-learn
    4. 필ㅅ 라이브러리와 도구들
    5. 파이썬2 vs 파이썬3
    6. 이책에서 사용하는 소프트웨어 버전
    7. 첫번째 매플리케이션: 붓꽃의 품종 분류
    8. 요약 및 정리
  2. 지도학습
    1. 분류와 회귀
    2. 일반화, 과대적합, 과소적합
    3. 지도학습알고리즘
    4. 분류 예측의 불확실성 추정
    5. 요약 및 정리
  3. 비지도 학습과 데이터 전처리
    1. 비지도학습의 종류
    2. 비지도 학습의 도전과제
    3. 데이터 전처리와 스케일 조정
    4. 차원 축소, 틍성 추출, 매니폴드 학습
    5. 군집
    6. 요약 및 정리
  4. 데이터의 표현과 특성 공학
    1. 번주형 변수
    2. oneHotEncoder와 Columntransformer: scikit-learn으로 범주형 변수 다루기
    3. make_column_transformer로 간편하게 ColumnTransformer만들기
    4. 구간 분할, 이산화 그리고 선형모델, 트리모델
    5. 상호작용과 다항식
    6. 일변량 비선형 변환
    7. 특성 자동 선택
    8. 전문가 지식 활용
    9. 요약 및 정리
  5. 모델 평가와 성능 향상
    1. 교차검증
    2. 그리드 서치
    3. 평가 지표와 측정
    4. 요약 및 정리
  6. 알고리즘 체인과 파이프라인
    1. 데이터 전처리와 매개변수 선택
    2. 파이프라인 구축하기
    3. 그리드 서치에 파이프라인 적용하기
    4. 파이프라인 인터페이스
    5. 전처리와 모델의 매개변수를 위한 그리드 서치
    6. 모델선택을 위한 그리드 서치
    7. 요약 및 정리
  7. 텍스트 데이터 다루기
    1. 문자열 데이터 타입
    2. 예제 애플리케이션: 영화 리뷴 감성 분석
    3. 텍스트 데이터를 BOW로 펴현하기
    4. 불용어
    5. tf-idf로 데이터 스케일 변경하기
    6. 모델 계수 조사
    7. 여러 단아로 만든 BOW(n-그램)
    8. 고급 토큰화, 어간 추출, 표제어 추출
    9. 토픽 모델링과 문서 군집화
    10. 요약 및 정리
  8. 마무리
    1. 머신러닝 문제 접근 방법
    2. 프로토타입에서 제품까지
    3. 제품 시스템 테스트
    4. 나만의 추정기 만들기
    5. 더 배울것들
    6. 마치며

목차는 위와 같았습니다. 

서두에 말씀드렸던것처럼 머신러닝을 공부해야지 하고 생각했지만 시간이없고 막연하고 해서 못하시던 분들이 보시기 좋을거같습니다. 목차를 보시면서 그동안 컨퍼런스, 세미나, 유투브, 마이크로스프트웨어같은 잡지 에서 보던 많은 용어들이 보이시죠? 

각가에 대한 설명과 예제 까지 있어서 보기 좋았습니다. 

결론부터 말씀드리자면 책에서 말하길 '복잡한 이론을 알 필요없이 파이썬의 강력한 기능을 활용만하여 머신러닝을 배우고 써먹을 수 있다' 라고하지만 사실 이말은 반만 맞습니다. 책은 그래프와 소스코드를 동원하여 쉽게 설명을해주지만 쉽지는 않습니다. 정확히 알고 사용하려면 이론도 잘 알아야 겠지요. 하지만 책에서 말한거처럼 책을 읽으면서 이해하고 소스코드를 따라해보면 정말 머신러닝이 됩니다! 머신러닝이란 막연한 터널에서 갑자기 끝을 알리는 빛이 보이기 시작한거같은 느낌이 들죠 

약 2주간의 기간동안 리뷰를 해야했기에 책의 모든부분을 보지는 못하였고, 빠르게 속독 후 예제들을 따라해가며 책을 읽었습니다. 속독할때는 당연히 이게 무슨소리인가 하면서 읽었고, 2회독 할때부터는 소스코드를 직접 구현해보면서 아~ 하는 감탄사를 내뱉게 되었죠. 

지금 리뷰를 작성한 이후부터 또 다음 부분들을 실습할 것이고, 책을 마무리하면 앞서 말씀드렸던것처럼 주문량 / 출고량 예측을 시도해볼 수 있을거같네요 

아주 유익한 시간이었습니다. 

이상으로 예지우랑읜 파이썬 라이브러리를 활용한 머신러닝 리뷰를 마치겠습니다. 



출처: https://devms.tistory.com/62 [자전거타는프로그래머]

요즘 PyTorch나 TensorFlow같은 딥러닝 프레임워크들이 큰 인기를 끌면서, 많은 입문자들이

딥러닝으로 머신러닝을 입문하고 있다. 과거의 다양한 머신러닝 기법들과 비교하여, 딥러닝

은 이론적인 이해가 수월하고 (물론 신경망의 특성과 연산 종류, Optimizer등 최적화를 위한

방법들을 제대로 이해하기 위해서는 수학적/통계학적 배경지식이 많이 요구된다) 상황이 잘

갖춰졌을때 성능이 더 뛰어나기 때문에, 딥러닝을 요술방망이처럼 생각하는 사람들도 많이

증가하고있다.

 

하지만, 현실의 문제들을 해결할 때는 상항에 따라 제약사항들이 있고, 그 안에서 문제를 해결

해야하므로, 모든 문제들을 하나의 기법으로 해결할 수는 없다. 그렇기때문에 이책을 읽어보는

것을 추천한다. 머신러닝을 실제 문제에 적용하는 것이 머신러닝에서 가장 어려운 부분이다. 이

책을 읽으면서 다양한 알고리즘들을 Scikit-learn을 통해서 학습하고, 그 과정에서 현실의 문제

들에 대해 머신러닝을 적용할 수 있는 기반을 다질 수 있다.

 

 

이 책은 파이썬 라이브러리인 Scikit-learn을 이용하여 다양한 머신러닝 알고리즘들을 설명

한다. 크게 설명하는 부분은 아래의 세가지다

  1. 머신러닝 알고리즘

  2. 피쳐 엔지니어링 및 모델 최적화

  3. 머신러닝 파이프라인

 

머신러닝 알고리즘들은 데이터에 타겟 값이 주어지는 지도학습과 그렇지 않은 비지도 학습으로

나누어 설명을 한다. 지도학습의 알고리즘들의 모델 복잡도에 따른 일반화와 적합에 대한 개념

을 자세히 설명하며, 비지도 학습에서는 데이터 전처리기법과 전처리된 데이터에서 특성을 인식

하는 알고리즘들을 설명한다. 

 

이를 통해서 독자는 자신이 해결하려는 문제를 모델링하고, 어떤 알고리즘을 이용할 수 있

는지에 대한 기초를 다지게 된다. 그리고 그 해결과정에서 피쳐 엔지니어링과 모델 최적화를

통해 더 나은 결과를 얻는 방법들을 알게되며, 최종적으로 머신러닝 파이프라인을 구축하여

실제 복잡한 문제를 다양한 알고리즘들로 풀어낼 수 있는 방법을 배울 수 있다.

 

이 책은 입문서로 매우 적절하며, 이 책을 읽은 이후에 흥미에 따라 머신러닝 알고리즘들을

직접 구현해보거나, 실제 문제에 적용해보는 것도 재밌는 과정이 될 것이다. 또한 머신러닝

관련 연구를 위해서 배경지식을 쌓기에도 매우 적절한 책이다.

 

IMG_9057.JPG

 

[리뷰] 파이썬 라이브러리를 활용한 머신러닝

 


개요

본 리뷰는 한빛미디어 출판사 "파이썬 라이브러리를 활용한 머신러닝(번역개정판)"을 읽고 얻은 지식을 정리한 글입니다.

머신러닝을 위한 파이썬의 도구들(Scikit-learn 등)


바야흐로 딥러닝의 시대다. 알파고를 언급하는 건 이젠 너무나 식상한 일이 되어버렸다. 대신 아카이브에는 일주일에도 수십편의 논문이 쏟아져 나오고 있고, Google I/O 2018에서는 일종의 튜링테스트 기법으로 사람을 속이는 인공지능 상담원이 등장하였다. 구글에서는 멀티미디어 검색 기능은 물론 심지어 세상에 존재하지 않는 강아지의 사진을 만들어 내기도 한다. 그러기에 필자같은 프로그래머를 비롯하여 통계, 수학 분야는 물론이고 경영, 의학 등 다양한 도메인 분야의 전문가들로 부터 깊은 관심을 받고 있으며,이들은 자연스레 최신기술을 익히고자 다양한 방법으로 데이터 사이언스에 접근하고 있다.

딥러닝, 머신러닝 등 Data Science 영역에서 가장 많이 사용하는 프로그래밍 언어 2가지를 꼽으라면 단연 Python과 R일 것이다. 프로그래머라면 보다 범용적으로 활용도가 높은 Python을 선호하는 편이고, 통계분야 전문가를 비롯한 비 프로그래머 계열은 R을 선호하는 편이다. 물론 필자처럼 양쪽에 깊은 관심을 가지고 활용하는 사람도 있다.

				"그렇다면 왜 Python일까? 그리고 머신러닝을 위해선 어떤 도구들이 필요한 것일까?"   
			

이를 위해 먼저 Python이 제공하는 머신러닝 도구들을 살펴 볼 필요가 있다.

  • Scikit-learn
    • 머신러닝에서 가장 많이 활용되는 분류, 회귀, 랭킹, 예측 등 다양한 알고리즘을 내장하고 있는 Python 라이브러리로 머신러닝 알고리즘을 별도로 구현할 필요가 없게 해준다.
    • 오픈소스로 사용 및 배포에 거의 제약이 없다. 더불어 소스코드를 통해 동작방식을 익히기에 적합하기에 자칫 Keras, Tensorflow 등으로 구현에만 너무 치중되어 모델링과 알고리즘에 갈증을 느낀다면 돌아와 머신러닝의 내면을 바라보기에 매우 유용한 라이브러리이다.
  • Pandas
    • 데이터 처리와 분석을 위한 라이브러리로 R의 data.frame을 본떠서 설계
    • SQL과 같은 질의 기능을 수행할 수 있으며, 마치 RDBMS의 테이블과 같이 각 열의 데이터 타입이 달라도 무관하다.
  • Scipy
    • 고성능 과학 계산용 라이브러리로 선형대수, 함수최적화, 신호처리, 특수 함수 및 통계 분포 기능이 구현되어있다.
    • scipy.parse(희소행렬)을 활용하여 연산속도를 높이는 데 큰 효과를 볼 수 있다.
  • Numpy
    • 기본 수학관련 알고리즘은 물론 선형대수, 푸리에변환, 난수생성기 등을 지원한다.
    • 다차원 배열 ndarray을 기본 데이터 타입으로 간주하며 원소로 동일한 데이터 타입만을 가질 수 있다.
  • 기타
    • 시각화를 위한 Matplotlib, 학습과정을 용이하게 해주는 대화식 실행환경인 주피터 노트북 Ipython, 결정 트리 시각화에 필요한 graphviz 등 다양한 라이브러리로 머신러닝을 지원하고 있다.

이 책은 위와 같은 도구를 소개로 시작한다. 출발하기에 앞서 기본적인 체계를 잡아주기에 가독성과 이해를 도와준다. 더불어 저자가 위의 도구 중 가장먼저 언급한 Scikit-learn의 핵심 개발자 안드레아스 뮐러, 세라 가이도이기에 그 어떤 책 보다도 본서가 Scikit-learn의 철학 및 내부 구조를 학습하는데 적격이라고 생각하며, 보다 수준높은 데이터 사이언티스트가 되기 위해선 머신러닝 알고리즘의 내부를 내것으로 만들어 다양한 데이터로부터 모델링의 능력을 키우는 것이 가장 중요하다고 생각하기에 이 책을 강력히 추천한다.

이 책이 중요한 이유 : “통계학자 vs 컴퓨터공학자” 누가 더 적임자일까?


머신러닝 분야에 종사하고 싶다면 다양한 길이 있을 것이다. 하지만 진정한 데이터 사이언티스트가 되고 싶다면 개인적으로는 위에서 간략히 언급한 바와 같이 모델링이 핵심이라고 생각한다. 데이터가 어떤것이 주어지더라도 분석을 통해 인사이트를 뽑아내는 인재라면 EDA를 비롯 전처리 경험이 풍부해야 하며, 이를 기반으로 유의미한 모델링을 설계하는데 필요한 능력이 충분할 것이기 때문이다.

IT의 태생이 그러했듯 딥러닝이 등장하면서 과학으로 불리는 Science의 영역이 Engineering의 영역으로 상당히 많이 옮겨진 듯 하다. 대신 다루는 데이터 영역이 이미지, 동영상, 음성, 텍스트라는 소재에 국한되는 경향이 있으며, 데이터 대신 GAN 같은 의미있는 기법이 등장하긴 하였지만 그래도 딥러닝이 Tabular 성격의 데이터에 유독 취약한 것은 현재까지는 부인할 수 없다고 생각한다.

이에 프로그래머라면 더더욱 머신러닝 더 나아가 통계, 수학, 수리통계학, 정량분석의 분야를 소홀히 해선 안된다는 것을 깨닫곤 한다. 다음의 질문을 생각해보자.

				"로또번호를 머신러닝으로 예측할 수 있는가?
			

과거의 당첨번호로 학습을 시켜 당첨번호를 예측한다? 원리는 몰라도 직관적으로 말도 안되는 일이라고 생각하는 사람이 많을 것이다. 한편으로는 딥러닝이 얼마나 위대한데.. 혹시 딥러닝이라면 가능하지 않을까? 이 질문이 유의미한지 알고 싶다면 그저 Keras, Tensorflow를 잘 다룰 줄 안다고 해결될 문제는 아닐 것이다. 에포크 횟수, 파리미터 튜닝을 열심히 한다고 답이 구해질까? 데이터는 과거 당첨번호를 이용해야 하나? 아니면 어떤 사건이나 영향을 주는 데이터를 수집하면 될까? 말도 안되는 질문들이지만 초보자라면 한번 깊게 생각할 필요가 있다. 우리가 허상에 빠지기 쉬울 때 바른 방향을 제시해주는 것이 통계학과 같은 사이언스 지식이라 생각을 하며 아주 쉬운 확률의 독립사건 개념부터 좀 더 나아가 자기상관성에 이르기까지 기본 개념이 탄탄하면 애초에 말도 안되는 주제로 시간과 노동력을 낭비하지는 않을것이다.

프로그래머라면 Python이라는 범용프로그램 언어에 취해 R과 같은 데이터 분석 전용언어를 비하하거나 Python의 코딩 능력이 데이터 분석 능력을 좌우한다는 일종의 선입견(?)도 버릴 필요가 있다고 생각한다. 필자 또한 비슷한 과정을 거쳤는데 R은 Python과는 달리 행렬 표현이 2차원에 국한되어 종속적이지 않으며, 대부분의 함수에서 포뮬러를 지원하기에 불필요한 코딩을 방지하게 하여 보다 분석에 집중하게 해주는 엄청난 장점이 있다. 물론 Python처럼 범용언어가 아니기에 타 기능과의 매끄러운 연결은 어렵다.

각설하고 Python으로 데이터 분석을 원하는 사람이 모델링의 능력을 키우기 위해선 먼저 Scikit-learn의 내부 구조를 들여다 보는 것이 좋은 수순이라고 생각하며, 이책은 그런 관점에서 매우 훌륭한 스승이 될 것이라고 본다. 더불어 mglearn 라이브러리로 핵심에 벗어나는 코딩량을 줄여 알고리즘의 핵심을 바라보게 해주는 장점을 가지고 있으며, 한가지 더, 시각화된 이미지가 아래 사진과 같이 컬러로 되어 가독성이 좋고 집중도 잘된다. 그리고 역자가 참 맛깔나게 번역을 잘했다.

그림1그림2

구현 소스는 Github 리파지토리에 공개되어 있다.

누가 읽어야 하는가?


  • 개발자
    개발자의 최대 장점인 코딩 구현능력과 구조화된 사고방식을 활용하여 사이언스 원리 중심의 서적보다 머신러닝의 핵심에 더 쉽게 다가갈 수 있다.

  • 데이터전문가, 연구자, 과학자
    통계, 수학, 모델링 지식에 해박하나 좀 더 성능좋은 도구를 자유자재로 다뤄 연구 수행에 있어 효율성을 높이고 싶은 분들도 이 책이 많은 도움이 될 것이다.

  • 그 외 ‘데이터사이언티스트 = 프로그래머’라는 생각을 가지신 분
    이유는 위 절에서 자세히 설명하여 생략한다.

책의 구성 및 요약


이 책은 크게 세 부분으로 구성된다.

  • 1. 머신러닝의 핵심 알고리즘(지도, 비지도 학습)(1 ~ 3장)
    • 사실상 책의 핵심내용으로 친절한 개념 설명과 컬러 시각화를 통해 직관적인 이해를 돕는다.
    • 분류, 회귀에 주요 고려사항인 일반화, 결정함수, 예측확률, 불확실성, 차원축소 등 통계 핵심기법이 담겨있다.
    • 거의 모든 핵심 알고리즘을 다룬다.(KNN, 선형모델, 나이브베이즈, 결정트리, SVM, 신경망, K-means, 그외 군집알고리즘 등
  • 2. 특성공학, 모델평가, 파이프라인 등 모델링 핵심지식(4 ~ 6장)
    • 데이터의 성격을 분석하여 다양하고 유용한 전처리 기법을 배울 수 있다.
    • 교차검증을 통한 성능 향상은 물론 다양한 평가지표에 대하여 학습한다.
    • 전처리에 이어 파이프라인을 활용하는 방법을 익힐 수 있다.
  • 3. 텍스트마이닝 및 기타(7 ~ 8장)
    • BOW변환, 불용어 등 전처리, tf-idf 생성, 고급 토큰화, stemming 등 텍스트마이닝 필수 지식을 배운다.
    • 그 외 실무에 유용한 지식 및 앞으로 나아가야 할 방향을 제시한다.

요약하며…


이 책은 프로그래머로서 자칫 데이터 분석을 코딩만으로 배울뻔한 우(愚)에서 벗어나게 해주었기에 높은 점수를 주고 싶으며, 이 책을 읽으며 남이 만든것을 생각없이 따라가 만드는 데 급급했던 습관에서 모델링의 본질에 대해 깊이 생각하며 창조적인 시각의 중요성을 생각해보는 계기가 되었다. 보통 이럴땐 깊은 생각에 잠겨 책을 읽는 속도가 느려지게 마련인데 신기하게도 가독성이 너무 좋아 생각보다 읽는 시간이 오래 걸리지는 않았다. 데이터 사이언티스트의 영역에 발을 담그고 싶다는 꿈을 가지신 분이라면 누구나 꼭 한번 정독하시길 권한다. 끝으로 이 책을 읽을 기회를 주신 한빛미디어에 깊은 감사를 드린다.

<한빛미디어 출판사>

개발자라면 믿고보는 “한빛미디어 출판사”라는 수식어가 따라다닐 만큼 IT분야는 물론 다른 분야에서도 양질의 도서를 끊임없이 출판하는 회사입니다. 개발자로서 “나는 프로그래머다”라는 유익한 팟캐스트를 즐겨 듣곤 했는데 한빛미디어에서 후원을 하였기에 수년간 방송이 이어져올 수 있었다 생각하며, 그외에도 리뷰어 활동, 학습지원 등 다양한 분야에서 사회에 공헌하는 개발자와 공생하는 업체입니다. IT 분야에 관심이 많은 분이라면 한빛미디어의 책으로 시작하시면 후회없는 출발을 하실 수 있습니다.(저 역시 최근에 출간된 ‘데이터를 부탁해’까지 100권은 넘게 산 것 같네요…^^;)

한빛미디어 바로가기 

 

 

 

 

python-library-sckit-learn-01.jpeg

 

 

 

이 책은 개정판 이전에 이미 많은 사람들이 읽고 좋은 평을 남겼던 책이라 읽기 전부터 기대가 되는건 사실이었다. 최근 라이브러리가 계속해서 업데이트 되던 탓에 이 책을 사야하나 망설였었는데 개정판이 나왔다는 소식을 듣고 한 권 마련하려던 중 한빛미디어로 부터 책을 받아 읽을 수 있는 좋은 기회를 얻게 되었다.

그런데 책에서 정말 많은 내용을 다루고 있기 때문에 머신러닝 하나하나의 알고리즘에 대해서 자세히 알기는 사실 쉽지는 않다. 하지만 여기서 나오는 내용만 가지고도 전체적인 알고리즙에 대해서 이해할 수 있어서 좋았다. 또한 데이터 분석 파이썬 라이브러리 중 가장 핫(?)한 싸이킷런을 사용해서 모든 알고리즘을 한번씩 구현한다는 것 자체가 좋았던 것 같다.

따라서 총 평은 머신러닝 알고리즘을 전체적으로 훝어볼 수 있는 책 으로 하고 싶다.

python-library-sckit-learn-02.jpeg

 

 

책은 칼라로 되어 있어 더 깔끔해 보인다. 특히 시각화한 부분들을 컬러로 보여주기 때문에 눈에 더 확 들어왔다. 그래서 인지 책을 읽는 데 있어 더 잘 읽혔던 것 같다. (컬러책 짱!!!)

위 사진을 보면 알겠지만 이 책은 실습 위주의 책 이라고 할 수 있을 것 같다. 그래서 직접적으로 어떻게 구현해야하는지부터 막막했던 사람들에게 좋은 책인 것 같다. 사실 머신러닝을 공부할 때 가장 먼저 해야 할 것은 알고리즘을 이해하고 이걸 직접 구현해보는 것 같은데 이 책은 이에 딱 알맞은 책인 것 같다. 또 직접 실습을 하고 눈에 보이는 결과가 나오니 저자도 책을 더 즐겁게 책을 읽을 수 있었던 것 같다.

만약 싸이킷 런에 있는 알고리즘을 사용하고 싶은 사람이라면 다른 책 말고 무조건적으로 이 책을 먼저 읽어 볼 것을 추천하고 싶다. 먼저 이 책으로 전체적인 싸이킷 런 사용법을 배우고, 그 다음에는 책보다는 직접적으로 구현하면서 인터넷에 있는 정식문서를 찾아가면서 구현해가면 딱일 것 갘다.

하지만 시중에 나와있는 머신러닝 책들의 가장 큰 단점(?) 이라고 할 수 있는 전체적으로는 알 수 있지만 깊이 알려면 자신이 직접 찾아봐야 한다는 특징에선는 벗어나지 못했던 것 같다. 물론 이 책의 목적이 비전공자도 이해할 수 있게끔 쓰는게 목표라서 그럴수도 있을 것 같다.

 

python-library-sckit-learn-03.jpeg

 

이 책을 읽으면서 가장 좋은 점 중 하나가 사실 위 사진처럼 어떤 알고리즘을 실습했는지 알려주고, 어떤 상황에 어떤 알고리즘을 사용할 수 있을 지 전체적으로 알려주는 부분이었다.

개인적으로 머신러닝에서 가장 중요한 것은 적재적소에 알맞은 알고리즘을 적용하는 것이라고 생각하는데 위처럼 전체적으로 알려주니 저자처럼 초보자가 알고리즘을 선택해야 하는 경우가 왔을 때 지름길로 사용할 수 있지 않을까? 하는 생각이 들었기 때문이다.

또한 알고리즘을 좀 더 깊게 공부하고 싶은 마음이 있는데 여기 적혀있는 알고리즘 순서대로 공부해서 정리하면 좋지 않을까? 하는 생각 때문이었다.

결론적으로 이 책을

  • 1 머신러닝 알고리즘을 전체적으로 훝고 싶은 사람
  • 2 이론은 배웠지만 실제로 어떻게 구현해야 할지 막막한 사람
  • 3 R 로 구현해봤지만 Python 으로 구현해보고 싶은 사람

등의 사람에게 추천하고 싶다.

IMG_3754.jpg

 

이 책은 파이썬을 통해 머신러닝을 어떻게 구현을 할 수 있는지 설명한 실용서입니다.

개념 설명부터 찬찬히 진행될 것이라고 생각한다면 머신러닝에 대한 안좋은 기억만을 남겨줄 것 같습니다.

앤드류 응 교수의 유명한 머신러닝 코세라 강의 등 개념을 탄탄히 하시고 이 책을 보신다면

파이썬을 활용하여 머신러닝을 어떻게 구현해 낼 수 있는지 예제 중심으로 확인해 보 실수 있을 것입니다.

 

번역개정판이기에 번역 품질에도 많은 관심이 갖는데 전체적으로 무난하게 잘 번역되어 있었습니다.

아직도 몇 표현에서는 거친 번역이 있긴 하지만 내용의 이해에 전혀 방해되지 않았고 원서를 보는 것보다

이렇게 번역서가 나와 빠르게 최신 기술을 쉽게 접할 수 있다는 것은 행운으로 봐야할 것 같습니다.

 

머신러닝을 어느 정도 아시는 분이 실용서로서 이책을 보시기를 권장드리며 리뷰를 마칩니다.

 

p.s. 제 블로그에도 좀더 자세한 이야기를 풀어 보았습니다 ^-^ (링크)

 

연구실에서 딥러닝을 쓰고 있는데, 딥러닝의 기초적인 배경이 되는 머신러닝을 공부해보고 싶었다. 때마침 머신러닝 책이 있었다. 딥러닝 할때 파이썬을 쓰고 있는데 Sci-py와 Scikit-learn이 가끔씩 등장해서 그때마다 보곤 했다. 주로 텐서플로우를 사용하다보니까 다른 라이브러리들을 잘 몰랐는데 이번 기회에 Scikit-learn에 대해서 한번 보자 해서 좋은 기회가 된것 같다.

전체적으로 책이 상당히 친절하다. 페이지도 많고 나 같은 컴퓨터 프로그래밍을 어느정도 해본 사람이라면 무리 없이 읽을 수 있을 정도로 친절한 것 같다. 우리가 어떤 목적이 있고, 어떻게 구현해볼 것이며, 이 학습방법의 장단점이 무엇인가, 다른 모델과 차이점이 무엇인가에 대해서 친절하게 알려준다, Scikit-learn을 통해서 전체적인 머신러닝 알고리즘들을 빠르게 소개받는 기분이었다.

다른 책들 보다도 실용적이고 그림이나 도표가 압도적으로 많은 것 같다. 그래서 머신러닝을 처음 해보는 사람들도 별 탈 없이 이해할 수 있을 것 같다. 책에서는 이론적인 내용들도 물론 제시하지만 간단하게, 예제를 보면서 설명하는 식으로 구성되어 있다. 나는 딥러닝을 바로 시작해서 기본적인 머신러닝에 대해서 기초가 없었는데, 이 책을 보면서 이런 부분에 있어서 이런게 있구나 느끼게 되었다. 확실히 좋은 책인 것 같다.

이번에 소개할 책

 

 

 

인트로

요즘 컴퓨터관련 뉴스중에 가장 핫한 분야가 무엇일까? 필자는 AI, 즉 인공지능이라고 생각한다. 점점 컴퓨터가 똑똑해지면서 사람들이 귀찮아하는일, 힘든일을 대신해주는 시대가 오고있다.  그 인공지능의 기초가 머신러닝이라는 기술이다. 머신러닝이란 기계가 스스로 학습하는 것을 말하며, 자료를 주면 기계가 학습을 통해서 원하는 정보를 구별해서 우리가 필요한 정보를 알려주는 것이다. 평소에 AI 알고리즘에 관심이 있었는데 필자에게 가장 친숙한 언어인 Python을 사용해서 머신러닝을 알려주는 책을 보고는 바로 읽어보았다.

 

 

메인 내용

이 책에서는 Scikit-learn이라는 프로그램을 이용해서 머신러닝을 구현한다. 전체적으로 8개의 챕터로 구성되어있으며 각 챕터마다 점점 진화하는 알고리즘을 볼 수 있을 것이다. 기본적인 근접알고리즘부터 비지도 학습, 교차검증등의 꼭 필요한 내용들만 모아놓았다. 자습서 특성상 처음에는 이해가 되다가 점점 이해가 안될 수도 있는데 그림을 통해 알고리즘을 잘 설명해주어서 중반이후까지 문제없이 볼수 있다. 마지막 파이프라인 관련 분야는 좀 힘들어서 따라하기만 했지만 어느정도는 이해가 갈 정도로 쉽게 설명이 되있다. 마지막으로는 머신러닝 문제 접근방법이나 부가적인 내용들도 친절하게 설명되있으니 끝까지 도움을 받았다. '실력기르기' 파트로 모르는 부분도 보완해서 다시 공부하니 기억에 남는 내용이 많아서 좋았다.

 

 

나의 생각

예전에 AI에 관심이 많아졌을때 tensorflow를 통해서 머신러닝을 만들어보려고 했었다. 하지만 혼자 컴퓨터를 찾아보면서 하기에는 너무 힘들었는 기억이있는데, 이번에 이 책을 만나고 다시한번 머신러닝을 시작했다. 예전 기억에 보충을 해가면서 점점 이해가 되는게 정말 좋았다. 그리고 머신러닝이라는 기술자체가 처음에는 이해하고 어떻게 되는지 몰라도 한번 이해하면 여러가지 분야로 활용할 수 있어서 여러 복합적인 부분도 실험해볼 수 있었다. 이런 자습서를 볼때는 내용보다는 가독성을 더 많이 따지는 편인데 번역해서 가져올 만큼 내용도 좋았고 가독성도 좋아서 쉽게쉽게 이해할 수 있었다.

 

 

 

마무리

다른 머신러닝은 공부해보지는 않았지만 Python을 활용한 머신러닝을 학습할 계획이 있다면 먼저 추천하고 싶다. 가격은 조금 비싼편이지만 두고두고 머신러닝을 이해하는데 보기 좋은 책인 것 같다. 개인적으로는 뭔가 화려한 표지보다는 이런 단순한 표지도 좋은듯하다 ㅎㅎ

 

**이 책은 한빛미디어로부터 지원받아 작성된 서평입니다.**

2019-04-02-13-46-26.jpg

 

저는 컴퓨터공학을 전공하고, 주로 웹을 개발하는 주니어 개발자입니다.

머신러닝/딥러닝은 이제 개발자의 교양(ㅠㅜ)이라고 판단해서, 라이브러리 하나라도 공부해 보자는 생각으로 읽게 되었습니다.

 

우선, 학교에서 인공지능 개념 수업을 (반쯤 졸면서)들어본 것이 전부인 제게는 굉장히 어려웠습니다.

그도 그럴 것이, 

'머신러닝 알고리즘을 실용적으로 사용하는 데 초점을 맞추었습니다'

라는 작가님의 말씀을 보니, 개념 서적이 아니라 실용 서적이기 때문이었던것 같습니다...뚜쉬

'알고리즘과 수학적인 개념 설명보다 내 프로젝트에 바로 써먹을 수 있는 머신러닝 개념들을 원한다!' 하는 분들께 딱인 책입니다.

 

하지만 관련 자료를 읽으면서 천천히 공부하니

머신러닝도 참 매력적인 분야라는 생각이 들었습니다.

한번 다 읽었는데, 실습 병행하면서 한번 더 읽어보려고 합니다. 

 

캡처2.JPG

 

그리고...주피터 노트북으로 실습 코드들을 제공해 주는데, 정말 편합니다.

제가 타이핑할 필요가 없는 것이 이렇게 편할줄이야!

여튼 좋은 책으로 열심히 공부하겠습니다. 

감사하게 이번에도 한빛에서 책을 보내줬다.

나는리뷰어다 으리가 넘친다.

이 책은 제목 그대로 파이썬 라이브러를 활용한 머신러닝 책이다.

이놈에 인공지능을 공부하려는데 참 난감한게 수학이다.

난 수포자다.

그래서 여러 수학관련 책도 찾아서 보고있다 ㅜ,.ㅜ

이 책도 머신러닝이라 눈이 핑핑돌 것이라 예상하고 책을 봤으나

이책은 좀 달랐다. 수식위주의 책이 아니라 실질적 코드로 동작시켜보면서

이코드가 어떤 의미가 있는지 설명을 해준다.

예상외로 설명이 잘되고 이해할 수 있게 되어있어서 놀랬다.

사실 이 책을 다 보지는 못했다. 챕터1까지만 해보고

나머지는 훑어보았다.

챕터1에서는 머신러닝에 대한 단계와 알고리즘을

정말 간단하게 따라하며 수행할 수 있게 되었다.

이것이 핵심이라 할 수 있고 이 간단하고도 중요한 뼈대를 기반으로

다음장들에서 점점 확대해 나가면서 설명하는 방식이다.

물론 수식보다는 코드와 그 의미를 자세히 설명하는 방식으로...

실전에서 가장 널리 사용하는 머신러닝 알고리즘 설명

데이터를 표현하는방법에 대한 중요성과 이해에 대해

모델 평가와 매개변수 튜닝을 위한 방법

모델을 연결하고 워크플로우를 캡슐화하는 개념

이러한 이해에 대한 내용들을 친절하게 설명을 해주고 있다.

원작자의 소스코드를 한글로 잘 번역해 놓은소스도 따로 있다.

친절하다.

이 책을 보기 전에는 머신러닝에 대해서 경험이 있고 잘 아는 사람이

유용한 라이브러리를 찾기 쉽게 하는 책인줄 알았다.

하지만 이 책은 처음 머신러닝에 입문자가 보아도 개념에 대해서

이해하면서 따라하기 식으로 수식에 대한 두려움을 버리고

수행할 수 있도록 잘 쓰여진 책이다.

개정판은 인기없는 책은 나올 이유가 없다.

과연 개정판이 나올만 하다.

지금은 1챕터밖에 못봤지만 앞으로 꾸준히 다음 챕터들을 학습할 예정이다.

한및미디어 감사해요

이 책은 한빛미디어로부터 지원받아 작성된 서평입니다.

머신러닝과 관련된 분야를 공부할 때 가장 먼저 접했던 교재는 튜링 선생님과 체스판이 그려진 스튜어트 러셀과 피터 노박의 영문 원서였다. 코드보다 문자와 수식이 많았던 책은 언제나 힘겹고 같은 곳을 몇번이나 다시 읽어보게 만들었다.

책 표지, 번역개정판이 눈에 띈다.

요즘에는 머신러닝 책이 다양하게 많이 출간되고 있는데, 그 중에서도 눈에 띄는 책을 오랜만에 다시 읽어보게 되었다. 작년에 scikit-learn을 사용해서 대학원 과제를 준비하면서 ‘모델 평가’ 부분만 발췌해서 읽고 지나갔던 책인데, 이번에 번역개정판이 나왔다고 해서 다시 읽어보게 되었다.

1

이번 번역개정판의 경우 책 소개를 하는 문구에는 초판 발행 이후에 알려진 오탈자를 다 잡았다고 되었있다. 이 정도 수준이면 개정판을 별도로 출간할 필요가 있을까 싶었는데, 천천히 읽어보니 scikit-learn 버전 업데이트에 맞춰 세부적인 코드도 수정되었다.

개정판!

기존에도 해당 책의 번역자분의 홈페이지에 지속적으로 업데이트를 해주시고 계셔서 별다른 불편을 느낄 수 없을텐데도 불구하고, 이번에 개정판을 출간하면서 세부적인 부분에 많은 신경을 써서 출간하였다.

2

근래에 tensorflow 기반의 keras에 많은 관심을 쏟고 있고, 내 주변에도 pyTorch등을 심심치 않게 학습하는 것을 보곤한다. 나는 아직 머신러닝이나 뉴럴 네트워크을 전문적으로 사용하는 일이 없다보니 대부분의 업무는 pandas와 scikit-learn 정도면 충분히 처리할 수 있는 수준이다.

그렇다보니 scikit-learn에 많은 관심을 가지고 있는데, 관련 서적이 얼마 없기도 하지만 데이터분석 혹은 머신러닝에 관련된 책 중에서 이 책 만큼 좋은 번역이 드물다. 사실 이 책을 다시 구매하는 이유 중 8할은 번역자의 몫이라 과감하게 주장하고 싶다.

좋은 번역, 믿고보는 박해일님

내가 국내 번역가 중에서 가장 선호하는 분은 ‘류광’님, ‘윤인성’님, ‘이일웅’님 그리고 이 책의 번역자인 ‘박해일’님이다. 류광님은 TAOCP번역이나 기존에 진행하시던 GPG 시리즈를 통해서 익히 잘 알려진 번역가이다. 작년에 박해일님의 번역본은 믿고 구매해도 좋겠다 생각했던 것은 자신이 번역한 책을 홈페이지와 github을 통해서 지속적으로 업데이트를 해 주시는 것을 확인하고 나서이다. 라이브러리 버전 업데이트 때문에 책의 코드가 작동하지 않는 것을 github의 Jupyter Notebook 파일을 통해서 지속적으로 수정해주셔서 공부하는데 예제가 작동하지 않는 경우가 거의 없었다. ‘박해일’이란 번역자의 이름이 책의 품질을 보장한다고 해도 과언이 아니다. 그리고 이번 재번역에 한국어 독자를 위해서 별도의 챕터가 포함되어 있으며, KoNLP 관련 정보가 포함되어 있다는 점등을 고려해본다면 이번 번역을 흔하지 않은 ‘초월번역’이라 할 수 있다.

3

책을 받고 깜짝 놀란 부분이 책이 ‘전면 컬러’로 되어있다는 점이다. 컬러도 되어 있으면 표나 이미지를 보는데 좋기는 하겠지만 OpneCV나 OpenGL을 다루는 책이 아니라서 책 값만 올라 가는거 아닌가 싶었다.

책의 가독성을 높이는 '컬러'

그런데 이번에 이 책을 읽으면서 컬러가 얼마나 중요한지 책을 읽으면서 확실하게 알게 되었다. 무엇보다 코드의 가독성이 확실히 좋아졌다. 그래프나 이미지에 대한 가독성이 좋아지는 것이야 누구나 예상하지만, 코드 가독성이 이렇게 좋아질지 몰랐다.

코드의 가독성

PyCharm이나 VSCode를 사용할 때, 편집기 테마에 많은 신경을 쓴다는 점을 고려해보면 코드 가독성은 컬러의 이점을 더욱더 많이 볼 수 있을 듯 싶다.

4

책의 내용이야 기존에 이미 검증되어 있고, 믿고보는 번역자, 전면 컬러로 출판된 것등을 고려해보면 굉장히 훌륭한 책이라 할 수 있다. 나차럼 뉴럴네트워크 기반의 업무를 진행하지 않고, scikit-learn이나 pandas로 EDA나 기존의 데이터를 분류 혹은 추천 시스템을 만드는 개발자에게 일독을 권한다.

 

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬 라이브러리를 활용한 머신러닝(번역개정판) : 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
파이썬 라이브러리를 활용한 머신러닝(번역개정판) : 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬 라이브러리를 활용한 머신러닝(번역개정판) : 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실