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

한빛출판네트워크

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

사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서

한빛미디어

번역서

절판

  • 저자 : 안드레아스 뮐러 , 세라 가이도
  • 번역 : 박해선
  • 출간 : 2017-07-01
  • 페이지 : 456 쪽
  • ISBN : 9788968483394
  • 물류코드 :2339
  • 개정판정보 :개정판이 새로 출간되었습니다. 개정판 보기
  • 초급 초중급 중급 중고급 고급
4.8점 (18명)
좋아요 : 43

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

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

 

※ 한국어판에는 특별히 ‘저자 인터뷰’와 ‘KoNLPy를 사용한 영화 리뷰 분석(7.8.1절)’도 실었습니다.

 

 

python_ml_733.jpg

 

안드레아스 뮐러 저자

안드레아스 뮐러

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

 

세라 가이도 저자

세라 가이도

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

박해선 역자

박해선

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

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

『실무로 통하는 ML 문제 해결 with 파이썬』(한빛미디어, 2024), 『머신러닝 교과서: 파이토치 편』(길벗, 2023), 『스티븐 울프럼의 챗GPT 강의』(한빛미디어, 2023), 『핸즈온 머신러닝(3판)』(한빛미디어, 2023), 『만들면서 배우는 생성 AI』(한빛미디어, 2023), 『코딩 뇌를 깨우는 파이썬』(한빛미디어, 2023), 『트랜스포머를 활용한 자연어 처리』(한빛미디어, 2022), 『케라스 창시자에게 배우는 딥러닝 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『파이썬 라이브러리를 활용한 머신러닝(번역개정2판)』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로(개정3판)』(길벗,2021)를 포함하여 여러 권의 책을 우리말로 옮겼습니다.

 

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.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 훈련 데이터와 테스트 데이터의 스케일을 같은 방법으로 조정하기

__3.3.4 지도 학습에서 데이터 전처리 효과

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 구간 분할, 이산화 그리고 선형 모델, 트리 모델 

4.3 상호작용과 다항식

4.4 일변량 비선형 변환

4.5 특성 자동 선택

__4.5.1 일변량 통계

__4.5.2 모델 기반 특성 선택

__4.5.3 반복적 특성 선택

4.6 전문가 지식 활용

4.7 요약 및 정리

 

CHAPTER 5 모델 평가와 성능 향상

5.1 교차 검증

__5.1.1 scikit-learn의 교차 검증

__5.1.2 교차 검증의 장점

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

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.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 마치며

 실제 문제에 대한 해법을 찾는 머신러닝 기술자를 위한 본격 머신러닝 입문서 

이 책은 머신러닝 알고리즘을 밑바닥부터 만드는 법을 다루지는 ‘않으며’, 대신 사이킷런과 다른 라이브러리에 이미 구현된 방대한 양의 모델을 사용하는 법에 집중합니다. 머신러닝과 인공지능에 대한 사전 지식이 필요 없는 입문서로, 파이썬과 사이킷런을 중심으로 머신러닝 애플리케이션을 성공적으로 만드는 모든 단계를 밟아갑니다. 여기서 소개하는 방법들은 상용 애플리케이션을 만드는 데이터 전문가는 물론 연구자와 과학자에게도 도움이 될 것입니다. 파이썬과 NumPy, matplotlib 라이브러리에 친숙하다면 이 책의 대부분을 이해할 수 있습니다.

 

 

주요 내용

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

이 리뷰는 한빛 미디어의 "나는 리뷰어다" 이벤트를 통해 책을 제공받아 작성했습니다.

 

지금껏 몇 권의 머신 러닝 책들을 읽어 봤고, 그동안 여러 기법 들에 대해서 들어 보았다.

그런데 이 책은 여러 기법들에 대해서 왜 하게 되는 지에 대해서 scikit-learn을 사용하여 기초부더 자세히 설명해 주었다.

 

사실 머신 러닝을 실무로 하지 않기 떄문에 

Scikit-learn이 Tensor-Flow 혹은 PyTorch에 비해서 얼마나 많이 사용되는지는 잘 모르겠지만, 

RNN, CNN같은 방법은 지원하지는 않지만 머신 러닝 자체를 배우기 에는 쉽고 잘 만들어진 라이브러리로 생각된다.

 

한가지 아쉬운 점은 책 서문에 Library 설치 / 설정하는 방법을 좀 자세히 설명했으면 어땟을까 하는 아는 아쉬움이 조금은 든다.

“파이썬 라이브러리를 활용한 머신러닝”

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

나는 리뷰어다(Episode October.)에 당첨되어 책을 리뷰하게 되었습니다.

이전에 신경망 첫걸음, 딥러닝 첫걸음, 밑바닥부터 시작하는 딥러닝을 읽어보았으나, 시중에 있는 라이브러리들을 어떠 상황에 어떻게 사용해야할 지 감이 잡히지 않았습니다.

하지만 “파이썬 라이브러리를 활용한 머신러닝”에서는 scikit-learn 라이브러리를 사용하여 각각의 머신러닝 모델을 구현하는 것을 다루고 있어서 단순히 머신러닝 개념이 아닌 실제 많이 사용되고 있는 라이브러리를 사용하여 직접 구현하는 방법을 익힐 수 있게 되었습니다.

이 책을 읽으면 좋을 독자들

책에서는 각종 라이브러리의 사용법에 대해서 친절히 알려주고 있는 편이지만, 파이썬의 기본 문법과 여타 라이브러리의 사용에 어느정도 익숙한 분들이 읽으시길 권장합니다.

또한, 밑바닥부터 시작하는 딥러닝과 같은 딥러닝/머신러닝 기본 서적을 읽고나서 이 책을 읽으시는 것을 추천합니다. (아무래도 머신러닝의 ‘응용’에 더 초점을 맞추고 있기 때문입니다.)

책 소개

이 책은 python의 대표적인 머신러닝 관련 라이브러리인 scikit-learn을 개발한 개발자가 쓴 책으로써, 지도학습과 비지도학습 관련 머신러닝 기법들을 scikit-learn 코드로 함께 알아보는 내용을 다루고 있습니다. 개인적으로는 책 후반부에서 예제 어플리케이션을 직접 만들어보고, 머신러닝 문제에 접근하는 방법에 대해서 알려주는 부분이 제일 유익했습니다. (아무래도 머신러닝의 응용이 아닌 단순 개념 원리만 알고 넘어갔기에 더 그런 것 같네요^^)

책에 있는 모든 코드들은 jupyter notebook 환경에서 실행하기에 적합한 형태로 되어있습니다. 실제로 jupyter notebook 환경에서 각종 데이터 시각화 자료들을 바로바로 확인할 수 있고, 한 줄씩 코드를 실행할 수 있기 때문에 오류가 나도 해당 부분을 고쳐서 계속 실습을 진행할 수 있기 때문에 편하게 공부할 수 있습니다.

또한, 각 예제 코드들에서 실습 결과를 그래프로 보여주는 부분이 존재하는데, 책에 실려있는 설명과 함께보면서 그래프를 읽는 방법을 익힐 수 있도록 구성되어있습니다.

책의 2~4장이 기본적인 개념과 각 모델의 구현, 특성등을 알아보는 것이라면 5~6장은 각 모델을 응용하는 방법론을 다루고 있습니다. 마지막 부분에서는 2~6장에서 다룬 것들을 종합하여 실제 어플리케이션을 만들어보는 부분으로 되어있어, 꽤나 견고한 내용 구성을 보여주고 있습니다.

어떻게 읽으면 좋을까?

저는 처음에 실습은 함께 진행하지 않고, 책에서 어떤 개념들을 다루는지 전체적으로 훑어보았습니다.

python은 평소에 주로 사용하는 언어였기 때문에 실습 환경설정에는 별다른 어려움을 겪지 않았는데, python에 익숙하지 않고 Windows 환경에서 실습을 진행하려는 분들은 scipy 등 실습에서 필요로하는 라이브러리를 설치하는 데에 약간 어려움을 겪을 수 있을 것 같습니다. (책에 나와있는 환경 세팅 부분이 windows 환경에 초점을 맞추고 있지 않습니다)

환경 세팅을 모두 마친 후에는, jupyter notebook 환경에서 실습들을 차근차근 진행하였습니다. 보통 머신러닝 모델 소개, 구현, 모델 평가(장단점 확인) 순서로 구성되어있으며 책에서 다루는 내용을 잘 숙지하면 각 모델들의 적절한 적용분야를 이해할 수 있도록 되어있습니다.

책의 중반에서는 모델의 평가와 성능 향상에 관한 부분을 다루고 있는데, 책의 초반에서 다루고 있는 각 모델들을 비교해가면서 책을 읽어나가는 것도 좋은 방법인 것 같습니다.

책의 후반에서는 실제 어플리케이션을 만들어가는 과정으로 마무리 짓고 있는데, 그동안 머신러닝 이론들을 어디에 어떻게 적용해야할 지 감을 잡는 데에 많은 도움을 받았습니다.

이 책이 좋은 이유

현재 tensorflow, pytorch 등 여러 딥러닝, 머신러닝 라이브러리가 나와있지만 입문자들이 사용하기에는 keras나 scikit-learn을 먼저 사용해보는 것이 개인적으로는 더 좋은 것 같다고 생각합니다. 이러한 측면에서 이제 막 딥러닝, 머신러닝 개념들을 학습하고 실제 실습을 해보기에는 이 책이 가장 알맞다고 여겨지고요..

또한 각 실습코드 부분마다 정확히 어떤 역할, 동작을 하는지 상세하게 설명이 되어있기때문에 실습 코드를 따라치고 나서 계속 읽어보면서 헤매는 시간이 줄어들어서 읽는 데에 큰 부담이 없었습니다.

사실 딥러닝, 머신러닝에서의 output은 사람 눈에 확실하게 들어오는 편이지만, 그 과정에 있어서 모호함이 있기 때문에 별도의 데이터 시각화를 이용하여 그래프를 읽어나가는 것이 중요하다고 생각합니다. 책의 저자는 이러한 그래프의 중요성을 인지하고 각 실습코드의 결과를 그래프로 볼 수 있도록 하였습니다. 즉, 책의 실습을 따라가면서 그래프를 읽을 수 있는 감각을 키울 수 있습니다.

마무리

마무리하면서, 이 책의 대상 독자로 추천하는 유형은 다음과 같습니다.

  1. Python에 어느정도 익숙한 분
  2. 딥러닝, 머신러닝 개념을 어느정도 알고 있는 분
  3. 개념은 어느정도 알겠지만, 머신러닝 관련 라이브러리 사용에 어색하신 분
  4. 실제 머신러닝 기법을 사용한 어플리케이션 개발 과정이 궁금하신 분
  5. 그래프를 읽어낼 수 있는 감각을 기르고 싶은 분

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

이 리뷰는 한빛미디어의 “나는 리뷰어다” 이벤트를 통해 책을 제공받아 작성했습니다.

표지

이 책은 싸이킷런의 핵심 개발자가 참여해 집필했다는 것만으로도 매력적으로 다가왔다. 파이썬 머신러닝을 얘기할 때 사이킷런이 핵심을 차지하고 있기 때문에 출간 때부터 눈여겨 왔는데, 한빛미디어의 나는 리뷰어다를 통해 읽을 수 있게 되어 행운이었다.

저자역자소개

이 책은 그간 여러 경로로 머신러닝을 배워 온 내게 머신러닝의 개념을 머릿속에 정리할 수 있도록 도움을 주었다.

또 그동안 읽었던 머신러닝 관련 책들에 있는 수식들은 수포자인 내게 자연스럽게 위축되고 갑자기 머릿속이 하얗게 타버리는 경험을 주었다. 하지만 이 책은 어려운 수식 대신 친절한 코드로 그 설명을 대신하고 있다. 어려운 수식을 이해하고 있지 못하더라도 싸이킷런에 구현 된 코드 몇 줄이면 머신러닝을 그럴듯 하게 구현하고 비교/실험해 볼 수 있다.

게다가 소스코드는 깃헙 저장소에 친절하게 한글로 번역되어 공개되어 있다. 그리고 역자의 블로그를 통해서 2장까지 무료로 읽어볼 수 있도록 공개 되어 있기도 하다.

이 책의 저자는 mglearn이라는 이 책을 위한 라이브러리를 만들어 그래프나 데이터 적재와 관련한 세세한 코드를 일일이 쓰지 않아도 되게끔 유틸리티 함수를 만들기 까지 했다. 이 라이브러리와 함께 친절한 설명은 싸이킷런을 처음 시작하는 초보자들에게 진입장벽을 낮춰주려는 노력이 보이는 책이다.

그리고 대부분의 데이터는 싸이킷런에 내장된 데이터셋을 사용했다. 그래서 대부분 import만으로 데이터를 로드해서 사용할 수 있도록 구성되어 있다.

기술서적을 읽을 때 코드를 실행해 보지 않고 눈으로만 읽으면 잘 이해가 되지 않는 편인데 이 책은 친절하게 소스코드 주석도 번역이 되어 있어 소스코드를 실행해 보는 것만으로도 쉽게 이해할 수 있도록 구성되어있다. 그래서 책을 읽기 전에 소스코드를 먼저 실행해 보는 것만으로도 책의 흐름을 잡는데 도움이 되었다. 또, 다양한 머신러닝의 여러 알고리즘을 비교해볼 수 있다.

텍스트다루기목차

그리고 7장의 텍스트데이터 다루기에서는 KoNLPy를 사용한 영화분석을 별도로 추가해서 한국어 텍스트를 다루는 방법까지 친절하게 안내되어 있다.

지도 학습

지도 학습요약

이 책을 구매하지 않더라도 지도 학습까지는 역자의 블로그에 공개가 되어 있어 무료로 볼 수 있다. 2장은 지도 학습과 관련 된 모델의 장단점을 자세한 코드와 결과로 비교해 볼 수가 있다. 또 싸이킷런에 내장되어 있는 데이터셋을 통해 다양한 모델을 실험해 볼 수 있어 분류 데이터인지 회귀 데이터인지에 따라 어떤 모델을 사용해야 할지 비교해 볼 수가 있다.

비지도 학습

PCA

비지도 학습에서는 PCA와 t-SNE를 사용한 결과비교를 얼굴데이터셋을 통해 비교해 볼 수 있도록 설명하고 있다. 그리고 이미지 데이터셋을 다루는 방법과 다양한 알고리즘에 대한 비교를 해준다.

비지도 학습요약

레이블이 없는 데이터를 다루는 비지도 학습에서는 분해, 매니폴드, 군집을 통해 데이터의 이해도를 높일 수 있는 방법을 제시해 준다.

범주형 변수 다루기 One-hot-Encoding

범주형변수

머신러닝에서 피처엔지니어링을 할 때 범주형 변수를 다루는 원핫인코딩을 이해하기 쉽게 자세히 설명하고 있다. 처음 캐글에서 타이타닉 예제를 다루며 원핫인코딩을 알게 되었는데 get_dummies와 OneHotEncoder를 통해 원핫인코딩을 하는 방법 또한 소개하고 있다.

원핫인코딩

원핫인코딩을 자전거 대여 데이터셋의 시간-요일에 적용한 예

한국어 자연어처리 KoNLPy

KoNLPy

NLTK만으로는 한국어 데이터를 다루기 어려운데 부록으로 한국어 자연어처리 패키지인 KoNLPy부분까지 다루고 있다. 그리고 네이버 영화리뷰 20만개를 묶은 말뭉치 데이터를 활용하여 학습시키는 것도 알려주고 있다.

이 책은 머신러닝(기계학습)을 처음 시작하는 사람들에게 머신러닝이 어떤 것이고 지도 학습과 비지도 학습의 차이, 레이블이란 무엇이고 레이블이 있고 없고의 차이를 알게 해준다. 그리고 데이터셋에 따라 어떤 모델을 사용하고 평가하는 방법, 그리고 성능향상을 위한 방법도 제시하고 있다. 또 파이프라인을 통해 교차검증을 사용하여 모델을 평가하고 그리드서치를 사용해서 매개변수를 엮는 과정에서 발생할 수 있는 실수를 줄여줄 수 있도록 안내하고 있다.

다만, 이 책은 입문서이고 제목에서 라이브러리를 활용한 머신러닝이기 때문에 책 소개에서처럼 밑바닥부터 다루고 있지 않다. 그래서 각 알고리즘의 구현철학이나 내부 동작에 대해서는 좀 더 깊게 볼 필요가 있다.

이 책은 머신러닝이라는 큰 그림을 이해하고 문제를 풀기위한 큰 맥락을 제공한다. 그간 여러 경로로 학습하고 이해했던 머신러닝에 대해 정리하고 놓치고 있었던 부분들을 챙겨서 앞으로 학습할 방향을 잡는데 도움이 되었다.

<파이썬 라이브러리를 활용한 머신러닝>을 읽고 좋았습니다.


요즘 머신러닝 책들을 여러 권 보고 있는데 비슷비슷한 내용과 소스로 인해서 좀 답답하고 너무 이론 위주의 책은 읽기 힘들었습니다.그런데 이 책은 이론과 코딩이 잘 조화된 책입니다


특히 어떤 책들은 예제가 문제가 있는 경우가 많은데 모든 소스가 잘 수행이 되고 또

코딩 소스에 대한 설명이 잘 되어 있어서 너무 좋았습니다.


빌려만 보다가 책을 소유하게 되니까 너무 좋네요 꼭 구입해 보고 싶은 책입니다. 


https://www.youtube.com/watch?v=nJfxGY2dilY

(본 서평은 한빛미디어의 “나는 리뷰어다! (Episode July)” 이벤트의 일환으로 작성되었습니다.)

 

데이터과학과 머신러닝

대학 입학하고 여기저기서 ‘데이터과학’이란 글귀가 보인다. 미국에서 최고의 연봉을 받는 직종이 데이터 과학자라는 등, 머신러닝은 데이터의 혁명이라는 등, 이 분야에 대한 애찬들이 끊이질 않는다. (딥러닝 기술을 포함한)머신러닝은 현 컴퓨터과학 기술 트렌드의 최전선인 것 같다. 수업 중, 교수님께서는 현재의 트렌드가 아닌 그 다음 트렌드를 준비하라 했지만, 지금 머신러닝이 쓰이는 상황을 보면 머신러닝은 하나의 지나가는 트렌드가 아니라 앞으로도 여러 문재해결의 단초가 될 평생 공부해야 할 기술일지도 모른다.

이 책의 내용

이 책은 총 8장으로 나뉘어져 있다. 1장은 머신러닝과 파이썬에 관한 소개, sckit-learn을 포함한 이 책에서 쓰일 여러 라이브러리들(NumPu, SciPy, matplotlib etc)에 관해 이야기한다. 머신러닝 기법은 크게 지도학습/비지도학습으로 나뉘어 2장에서는 k-NN, 회귀을 포함한 지도학습(‘다중 퍼셉트론’이라는 약간의 딥러닝 내용도 포함되어있다), 3장에서는 군집알고리즘을 포함한 비지도학습 기법에 대해 다룬다. 4장은 데이터 표현과 특성공학을 다루고, 5장에서는 머신러닝 모델에 대한 검증/평가 방법과 성능 향상법을 배운다. 6장에서는 알고리즘 체인 개념과 파이프라인(Pipeline)이라는 파이썬 클래스를 설명하였고 7장은 텍스트 데이터 처리에 관한 방법을 설명한다. 한국어판 부록으로서 koNLPy 파이썬 패키지 활용이 포함된다. 끝으로, 8장에서는 데이터과학자의 길에 관한 저자의 조언이 담겨있다.

이 책의 특징

이 책은 필자와 같은 학부생뿐만 아니라 비전공자를 포함한 모두에게 적절한 수준을 설명함을 목표로 하는 것 같다. 또한 표지에 써있듯이 이 책은 데이터 과학 ‘실무서’로서, 머신러닝 기법들의 무엇이고 그것을 파이썬 라이브러리(Sckit-Learn)로 어떻게 구현해 당장 써먹을 수 있는 방법을 설명한다.

그렇다고 해서, 이 책의 저자가 머신러닝의 기법들을 표면적으로만 설명하는 것은 아니다. 이 머신러닝 기법의 특징은 무엇이고 또 다른 기법과 비교하여 장/단점인 무엇이며 어떤 상황에 어울리는 것인지 충분히 이해가 가도록 설명한다. 또한 수식을 활용해 설명한 부분은 모두 주석처리를 해놓아 필요한 때마다 수학적 배경을 알 수 있게 해놓았다.

‘~이다.’가 아닌 ‘~입니다.’의 어투를 쓴 번역문 덕분에 마치 친근한 과외를 받는 듯한 느낌은 덤이다.

이 책의 다음 단계

이 책이 머신러닝의 모든 것과 state-of-art까지를 다루진 않는 것 같다. 하지만 머신러닝의 기초에서 출발 해 더 높은 단계의 것들을 공부하고 익히기 위한 출발점이 될 수 있다고 생각된다.

이 서평의 필자는 데이터 과학자를 꿈꾸지는 않지만, 컴퓨터과학자라면 전산학 이론의 일부로서 머신러닝이란 기술을 꼭 거쳐야 할 ‘상식’으로 바라본다. 필자는 앞으로도 머신러닝 알고리즘과 이론적 배경들을 알아갈 것이며, 이 책이 그 시작점이 될 것이라 생각된다.

 

<파이썬 라이브러리를 활용한 머신러닝>을 읽고

 

요즘 들어 머신러닝책을 꾸준히 읽고 있는데, 한동안은 이론과 관련된 책만 보다가 드디어 실전 예제와 관련된 책을 읽을 수 있는 기회가 생겼다.

제목에서부터 알 수 있는것처럼 이 책은 파이썬에서 머신러닝과 관련된 예제를 다양하게 다루고 있었다.

 

지금 인공지능, 머신러닝, 딥러닝이 엄청나게 각광받고 있는 시대인만큼 많은 사람들이 관련 기술들에 관심을 갖고 있는데, 그런 사람들이 읽으면 좋을만한 입문서이다.

다만, 이 책을 읽기 위해서는 파이썬 언어를 어느정도 알고 있어야 가능할 것으로 보인다. 계속 파이썬으로 예제 설명이 이뤄지는데, 파이썬에 대한 기초 문법이나 함께 사용되는 기본 라이브러리들에 대해서는 설명이 부족하기 때문이다.

대신 다른 책들과는 다르게 통계적, 수학적 지식이 부족해도 직접 예제들을 따라하면서 머신러닝이란 이런것이구나 하는 것을 느낄 수 있다.

 

이 책은 전반적으로 python의 머신러닝 라이브러리인 scikit-learn을 사용하고있다.

 

책 전반부에는 머신 러닝의 큰 두 분류인 지도학습과 비지도학습의 다양한 알고리즘들을 라이브러리를 이용해서 확인하는 내용들을 다루고 있다.

그 이후에는 데이터들을 표현하고 모델의 성능을 측정하고, 또 성능을 향상시키는 방법을 보여주고있다.

후반부에는 앞에서 살펴본 다양한 알고리즘의 사용법들을 연결하여 체인 및 파이프라인을 만들어서 여러가지 알고리즘을 조합하여 사용하는 법을 다루고 텍스트와 관련해서 처리할때 필요한 고급 기술들을을 다루고 있다.

 

책을 읽으면서 전반적으로 좋다고 생각했던 부분은 그래프로 시각적 데이터를 계속 보여주는 부분이었다. 실제로 데이터들이 어떻게 포진되어있고, 알고리즘이 어떤 방식으로 되어있는지 단순히 수치로 접근하는 것보다 그래프로 보여져서 이해하기 쉬웠다.

 

사실 최근 몇권의 인공지능 관련 도서들을 읽었는데, 그 도서들 중 가장 실용적이면서도 재미있는 책이었다.

어떤 책들은 너무 이론적인 부분위주로 진행되다보니 나처럼 관심으로 시작하고 싶은 사람들이 접근하기엔 어렵고, 조금은 지루하게 받아들여지기도 했었다.

하지만 <파이썬 라이브러리를 활용한 머신러닝>은 중요한 핵심들을 다양하게 설명하고 있으면서도, 대부분이 예제로 이루어저 있어서 정말 재미있게 따라갈 수 있었다.

 

한번쯤은 실무적으로 머신러닝을 적용해보고 싶었던 사람들에게 강력히 추천하는 책이다.

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

 

이 책은 기계 학습 전반에 대해 알려준다. 주된 주제는 '사이킷런' 이라는 파이썬 라이브러리를 이용하여 직접 실습을 통해 기계 학습의 결과를 체험할 수 있게 해준다.

유명하신 알파고 사촌 텐서플로우도 아니고 이렇게 이마에 달고 나와도 되나? 하고 알아봤더니 언어별로 갈려있는 플랫폼들 중에서 파이썬 쪽의 골목 대장이란다.

(텐플이나 카페는? = 중간보스... 최종 파멸 보스는 아직 안나왔는데, 인간들이 스스로 만들고 있단다. 그것도 아주 열심히... ㅠㅠ)

 

머신러닝의 분야가 여러 가지인데, 그 중에서 분류, 인식 알고리즘과 신경망에 대한 내용이 주로 나온다.

 

1장은 함께 쓰이는 라이브러리 등에 대해서 소개한다.

2, 3장은 지도 학습과 비지도 학습에 대해서 다루는데, 정치가 얼굴 data set 가지고서 질릴 정도로 집요하게 끝장을 본다.

그래서 결국에는 각 성분을 통해서 얼굴의 재구성을 하는 것까지 보여준다. 책 초반에 이런 게 나오면 앞으로는 뭐가 더 나온다는 거냐?

4장은 데이터의 표현 방법의 중요성에 대해서 말하는데, 이 책 중에서 가장 추상적이고, 이론적인 부분이다. 한 두번 봐서는 그 이전과 이후의 내용에 얼마나 중요성을 가지는지 알기가 힘들다. 책의 초점이 어디에 있는 건지, 내 집중력이 떨어진 건지 헷갈리는 경우.

5장은 단순히 알고리즘들을 소개만 하는 것이 아니라, 그것들을 평가해서 개선, 교체할 수 있게 제공하는구나.

6장은 파이프라인은 일반적인 것인가? 다른 라이브러리에서도 동일, 유사한가? 

7장은 텍스트 관련에 필요성이 있어서 유독 열심히 읽긴 했는데, 예상했던 내용은 아니었다.

8장 읽으면서 미진하다고 했던 부분은 절반 이상 8장에서 충족되었다.

PDF 버전이 올라와 있다고 그런다. 일이 점점 커지는구나.

 

요즘은 좋은 블로그 툴과 게시판 기능 들이 많아져서, 자신이 홈페이지를 직접 프로그램이해가면서 개설한 필요성을 굳이 느끼지 못한다.

그러한 거처럼 어떤 부분이 어때서 알고리즘이 적용되고 아니고를 피드백 해줘야 굳이 하지 않아도 되는 것은 안 해도 상관없어진다.

 

그런데, 책 뒷표지의 문장 하나가 완전 에러다.

"미적분, 선형대수, 확률을 공부하지 않았어도..." 라고 했는데...

정말 제대로 관심없어 그런 쪽에 대해서 건드린 적이 없으면 이런 책 거들떠 보지도 않을 거 같다.

책을 순수하게 잘 따라가면 잘 몰라도, 공부하지 않았어도 활용은 할 수가 있다.

그 말은 맞는데, 왜? 와 어떻게? 가 온전히 충족되지는 않는다.

"지금까지 배웠던 미적분, 선형대수, 확률이 꽃피게 해주는..." 정도의 문장이 더 낫지 않을까.

 

비지도 학습 - 이게 뭔진 모르지만, 여기에 뭔가 있긴 있다. 정도가 되겠다.

구글이 학습시킨 고양이라는 것도 어떤 특정 표지가 모여서 다른 동물들에 비해서 고양이 일 때에 그 특징을 잘 잡아내어서 고양이라는 것을 학습 인지 했구나 하는 거지. 자기가 알고 있는 것이 정확하게 고양이라는 것을 인간처럼 인식하고 있는 것은 아닐 거라는 얘기.

 

이게 순 텍스트북이나 픽처북에서 쉽게 설명해주니까 그럴 대에는 박수치면서 이해했다고는 하지만, 포뮬라북이 되면 내용이 정확하게 같은데도 전혀 이해를 못한다. 다시 코드북 정도가 되어서 단계별로 이해할 수 있게 가이드를 해줘야 알 수가 있다.

 

아주 기초적인 내용은 신경망 첫걸음(한빛미디어, 2016) 같은 책을 통해서 선수 지식을 좀 가지고 있어야 편하다.

여기에서 기본적인 내용들은 패턴인식, 통계학 책의 내용과 같다.

손쉽게 해당 라이브러리와 연결해서 활용할 수 있으니까 좋다.

 

책에서는 텍스트 분석(7장) 쪽에 대해서 중요하다고 말은 했지만, 분량상 얼굴 분석(2장) 에 비해서 밀린다.

70여 페이지에 비해서 45여 페이지가 할당됐는데,

주 관심사는 텍스트 쪽이었기 때문에 영화 이외에 한 가지의 주제를 더 다뤄서 480p. 짜리 책이 되었다면 더 단단했을 것 같다는 아쉬움이 있었다.

 

겸사겸사 다른 인공지능 책에서는 어떤 알고리즘들을 어떻게 소개하고 보여주나? 를 함께 살펴봤다.

텍스트/픽처북, 포뮬라북 까지는 있는데, 코드북은 이세돌이 알파고한테 깨지고 난 다음부터 출현하기 시작한다.

텐서플로우, 카페 등 부터 시작하기 때문에 이건 뭐 끝판왕부터 내려오는 느낌이다.

 

완전 전공자들 이외의 사람들에게는 코드북 말고는 의미가 없다. 실용적 가치가 없기 때문에 인공지능의 겨울이 왔었으므로, 독자에게 실용적으로 어떤 것으로 활용할 수 있다고 알려주는 건 이 쪽에서는 완전 기본 예의. 비연구자인 일반인이 알아서 활용 방법을 찾아서 알고 있다면 이미 일반인이 아닐 것이다.

 

첫 1회의 학습에는 이 책과 같은 구성이 괜찮다.

In 과 out 이 구분되어 보여지고, 결과 의 모양에 대해서 표현이 되어있으므로, 계속 확인해가면서 진행할 수 있다.

하지만, 그 다음부터는 지친다.

 

MS 에서 내놓은 cheat sheet 처럼 특정 case 에 대해서는 이런 solution 같은 식으로 연결해놓는 스타일의 cheat-sheet 가 사이킷런 버전으로 있을 것도 같은데, 저자가 그에 대해서 소개해 줬으면... 하는 아쉬움이 남는다.

 

얼마 전까지 대학 교재 등에서는 코드를 도입했다 하더라도 한 이론서들은 다음과 같은 구조들이었다. 

이론 설명만 주구장창 한 후에 장 말미에 설명도 없고, 주석도 없는 코드가 의미없이 나열되어있곤 했다.

그런데,이 책에서는 결과가 하나 보이면 그것은 작은 하나의 입력에 의한 것이다.

그러면서 각각에 대해서 설명을 하니까 설명에 대해서 이해가 되면서도 작은 파라미터들에 대한 내용들은 사이킷런 help 에 있다고 해서 설명이 없이 넘어가면 초짜 아저씨는 알기가 힘들다.

 

실제로 웹사이트에서 코드들을 가져다가 복사해서 넣어주고 엔터치는 방식으로 해봤는데, 그다지 좋은 방법은 아니다.

직접 쳐가면서 테스트해보고, 응용을 하려면 파일/함수화 해서 각 변화하는 내용들에 대해서 갈무리해야 할 것이다.

 

읽으면 읽을수록 게슈탈트 붕괴처럼 내가 이렇게 몰랐나 하는 느낌이다. 천천히 시어를 읽듯이 음미하면서 읽어야지 그렇지 않으면 2차로 의미 파악이 잘 안된다.

 

이미 수집된 data 에 대해서만 처리하고 있다. data 수집 전처리 등에 대해서도 다른 책 또는 자신이 쓴 방법을 소개해줘도 무방할 듯 한데...

진짜 핵심은 이것의 사용처, 머신 러닝의 사용 기획이므로, 다른 부분을 이 책에서 가이드하기에는 월권일 수도 있겠다 싶어서. 아쉬움을 떨친다.

 

책 한권에 너무 기대가 심했던 것 같기도 하다. 책 자체적으로는 설명한 내용에 대해서는 약속을 잘 지켰다. 아쉬움이 없으려면 약 1200 페이지 정도가 더 들어가줘야 하는데, 아쉬움을 포기하는 게 정답이다.

 

실습을 하다가 고생한 기억이 나서 별 4개를 줬다가 5개로 다시 올렸다.

기존 python 사용자는 그 쪽에서 헤매지 말고, anaconda 설치 폴더에서 pip 를 실행시켜야 한다.

 

- 본 리뷰는 "나는 리뷰어다 (한빛미디어)" 이벤트 에서 제공된 책으로 작성되었습니다.

8월의 '나는 리뷰어다'에 이벤트 메일이 날라왔다. 많은 책중에 딱 하나 눈에 들어온 것이 바로 이 책이었다. 마침 요즘 한참 관심있어 하는 머신러닝이기에 냉큼 신청했다. 다행히 운이 좋게도 당첨이 되었고,

얼른 책이 오기를 기다렸지만 아쉽게도 책 도착은 좀 늦었다. 한동안 출퇴근 길에 들고다니면서 보기도 했고, 일이 끝난 후에 동네카페에 들려 공부를 하기도 했다. 

 

이 책의 가장 큰 장점은 예제라고 꼽겠다. 그동안 몇개의 머신러닝 관련책을 보았을 때, 대부분이 코드 그대로 되는 경우가 없었다. 그만큼 이쪽분야의 기술발전속도가 빠르다는 의미겠지만 한편으로는 공부하는 입장에서 소스코드가 안될때의 허탈 + 막막함은 이루 말할 수 없다. 그런의미에서 이 책은 대부분 된다. 안되는 예제를 발견하진 못했다. 그리고 예제와 더불에 결과를 그림 그대로 올려주어서 돌려보지 않아도 결과치를 대략 알 수 있다. 그런 면에서 아주 잘 되어있다.

 

책이 생각보다 어렵다. 이전에 유튜브를 통해 공부했던 머신러닝과는 확실히 다른 느낌이 든다. 이전에 봤던 책은 tensorflow라는 툴을 기반으로 해서 내용을 풀어나갔다. 이론도 딥러닝(뉴럴네트워크) 기반에 한해서 진행된 것이기에 관련 필요한 개념과 내용을 주로 설명하여 어렵기는 했어도 방대하단 느낌이 들진 않닸다. 그런데 이 책을 보고는 충격이 컸다. 하기사, 머신러닝이 1~2년 안에 만들어 진게 아니니 그동안 축적된 것도 많을 것이고 딥러닝도 머신러닝의 한 축이니 당연한 결과일지도 모르겠지만 이 책을 보기 전까지는 그렇게 자세하게 알아보지 않았기 때문에 솔직히 많이 놀랐다.

 

책 내용이 좋다. scikit-learn(사이킷런) 기반으로 몇개 라이브러리만 이용하여 제공하는 실용위주의 책이라고 볼 수 있겠다. 그리고 기초배경지식이 없는상태에서 보는 책은 아닌거 같았다. 나역시도 배경지식이 얕기에 읽으면서 인터넷을 자주 이용할 수 밖에 없었다. 눈대중으로 모르겠는건 넘어가면서 공부하기도 했는데 나중엔 그것이 결국 돌아와서 한번쯤 찾아보게 만든다. 내가 내 지식상태에 어울리지 않은 어려운 책을 선택했나 하는 자괴감도 있었다.(솔직히 이런 책인지 몰랐던 것도 있다)

 

그럼에도 알고리즘별 장단점, 응용법, 설명이 잘 나와있는 편이다. 논리를 이해하는데는 힘들었지만 그것을 따라하는데는 비교적 쉬워서 다행이었다.(책에 있는것을 그대로 해도 제대로 작동되는 것이 많은 도움이 되었다.) 의외로 깨알같았던 것은 샘플코드에도 한글 번역을 한 것이다. 사실 영어로 되어있는 것을 그대로 올렸다면 '이게 그건가?' 하며 한참을 들여다봤을 것이다. 그런면에선 참 도움이 됐다

 

모르는 것도 많다보니 정말 쉽지가 않다. 너무 방대한 양을 한번에 소개(?)받은 터라 당황한 것도 있지만... 이 책의 장점은 가이드라인을 가지고 공부하기 좋다. 다양한 알고리즘을 어떤 방식을 써서 어떤 문제를 풀어냈는지, 각 알고리즘의 장단점은 무엇이며 알고리즘끼리 비교해서 성능을 파악할 수도 있고, 그런면에선 큰 맥락의 줄기를 알려주어서 좋다. 단점이라고 한다면 너무 다양한 알고리즘들로 인해 공부하다 지치기 쉽다는 점, 그리고 요즘 대세라고 일컬어지는 딥러닝(뉴럴네트워크) 만을 다룬것은 아니기 때문에 혹시 텐서플로우 같은 특정 툴의 활용을 목적으로 공부하시는거라면 아무래도 부적절하다고 생각이 든다. 개인적으로는 머신러닝 전반에 걸쳐 두루 알 수 있게 해준다는데 높은 점수를 주고 싶다.

 

<해당 포스트에서 다루고 있는 "파이썬 라이브러리를 활용한 머신러닝" 책은 한빛미디어로부터 지원을 받고 이에 대한 서평을 쓴 것임을 알려드립니다>

 

 SNS나 주변 뉴스만 보더라도 알겠지만, 최근의 기술 트렌드는 머신러닝, 딥러닝 이런 것들이다. 우리가 알고있는 세계적인 기업들의 기술의 발전 방향도 이런 부분을 중점적으로 다루고 있다. 사실 개인적으로 봤을 때도 정말 놀라운 기술 발전이 아닌가 싶다. 과거 같으면 사람이 수동적으로 했어야 했던 일들을 이런 기술을 적용시킴으로써 자동화할 경우, 노동력도 절약할 수 있고, 사람이 할 수 있는 일을 대체할 수 있다고 생각하면 정말 놀랍고 편한 세상이 될것 같다. 

 그래서 주변에서 보면 정말 많은 사람들이 이에 대해 관심을 가지고 공부하고 있는 것들이 보인다. 나도 주변에서 활용할 수 있는 강의나 자료들을 통해서 계속 공부하고 있다. 최근에 Udacity에서 진행하고 있는 Machine Learning NanoDegree 프로그램을 신청해서 듣고 있었고, 마침 공부하는 데 참고가 될 수 있는 책을 받고 읽어보았다. 그래서 이에 대한 서평을 짧게 써보고자 한다.

 이 책은 딱 책 제목으로도 나와있는 것과 같이 Python Library를 활용해서 우리 주변에서 다뤄질 수 있는 예제들을 직접 다뤄보는 실무 입문서이다. 그 중에서도 많이 사용되는 scikit-learn 패키지를 주로 활용하고, 해당 패키지에서 제공하는 데이터셋을 기반으로 책의 내용이 진행된다. 
 사실 처음 책을 마주했을 때는 "개념서가 이렇게 얇아도 되는건가" 싶을 정도로 책이 그렇게 두껍지 않다. 그도 그럴것이 보통 Python을 이용한 머신러닝을 다룰 때, 꼭 빠지지않고 등장하는 파트가 Python 문법에 대한 설명과 Data를 handling할 수 있는 Numpy나 Pandas같은 package에 대한 설명인데, 이 책은 그런 주변 툴에 대한 내용은 싹 빼고, 딱 머신러닝에 국한된 내용과 이를 코드로 설명한 내용만 언급되어 있다. 아마 처음 Python을 다루는 사람이라면 이 책을 읽을 때 조금 어려움을 겪을 수도 있겠지만, 어느정도 Python도 익숙하고 당장이라도 scikit-learn package을 이용해 머신러닝 예제를 경험하고 싶은 사람에게는 정말 딱인 책이다. 참고로 책의 소개 부분에도 이렇게 언급되어 있는 부분이 있다.

 

 "미적분, 선형대수, 확률을 공부하지 않았어도 이 책으로 머신러닝을 사용할 수 있게 되기를 바랍니다."

 

 이렇게 언급된 바와 같이 책의 어디를 읽어봐도 복잡한 수식이나 알고리즘의 내부를 소개한 내용이 하나도 없다. 그 대신 Line-by-Line으로 설명되어 있는 코드와 이에 대한 output을 matplotlib으로 뽑아낸 그래프들로 구성되어 있어, 직접 해보지 않더라도 수행한 알고리즘의 원리와 그게 어떻게 나오게 되었는지에 대해서 잘 이해할 수 있었다. 물론 이런 실무 입문서의 특성상 직접 해보면서 경험하며 배우는 부분이 크긴 하지만, 이 책은 그게 힘들더라도 output을 통한 분석을 통해 적어도 원리를 느낄 수 있게끔 해준다. 다만 책 서문에도 잠깐 나와있는 내용이긴 하지만, 이 책은 알고리즘을 설명하는 책이 아니다. 그렇기 때문에 적용한 알고리즘에 대한 설명이 상대적으로 부족하다고 느낄 수 있다. 그렇기 때문에 원리도 같이 이해하고자 하는 사람이라면, 이 책을 실무 입문서로 읽되, Bishop의 Pattern Recognition and Machine Learning 같은 책을 base로 깔고 읽어야 한다. 책의 구성이나 장수의 제한때문에 어쩔수 없는 부분이지만, 상대적으로 빈약한 알고리즘 설명은 눈에 띈다.

 참고로 이 책은 본래 Introduction to Machine Learning In Python 을 번역한 책인데, 한국판으로 번역되면서 위와 같이 영화 리뷰 분석 예제가 추가되었다. 물론 해당 예제가 큰 비중을 차지하는 것은 아니지만, 이런식으로 원서에서 다룬 내용을 응용한 예제가 포함되어 있다는게 신기했다.(보통 일반적인 번역본은 그냥 원서 내용만 번역해오는데 그쳤다면, 역자 분께서 이러 부분까지 신경쓰신게 참 쉽지 않았을 듯하다.)

 2년전쯤 읽었던 책을 찾다보니 동 출판사에서 출판된 "파이썬 라이브러리를 활용한 데이터 분석" 이라는 책도 가지고 있었다. 사실 "파이썬 라이브러리를 활용한 머신러닝" 책을 다 읽고 돌이켜보면, 위의 책과 병행해서 보면 좋을거 같다는 생각이 들었다. 물론 데이터 분석 책은 머신러닝 내용을 담고 있다기 보다는 앞에서 잠깐 소개한 Numpy와 Pandas 패키지를 통해 분석및 시각화에 활용하는 방법을 언급한 책인데, Scikit-learn도 만능이 아닌 만큼 Numpy와 Pandas 사용방법은 어느정도 숙지해야 한다고 본다. 이 책도 예제가 많이 포함된 책인 만큼 뭔가 Python을 통해서 머신러닝의 전반 내용을 다루는 데 있어 큰 도움이 될거라고 생각한다.

 간단하게 책을 읽고 난 후의 느낌에 대해서 언급해보았다. 이 책을 읽다보면, 그리고 책에 나와있는 코드를 하나하나 실행해보면 우리가 그냥 신문으로만 봐왔던 머신러닝의 결과물을 직접 체험할 수 있고, 그만큼 실무에 적용할 수 있는 가능성을 넓혀준다. 그런 의미에서 학습자의 경험을 확장시킬 수 있는 실무서에 가깝다고 평하고 싶다. 다만 원론적인 내용과 수학적인 내용을 요구하는 독자에게는 뭔가 부족함이 느껴질 수 있는 부분들이 다소 있다. 이런 경우는 주변에서 흔히 Bible이라고 언급되는 책을 기반으로 같이 따라가다 보면 조금더 얻을 수 있는 부분이 크지 않을까 생각한다. (참고로 책 마지막 장을 보면, 다 읽고 난후 실력을 향상시키기 위해 필요한 자료나 책들이 소개되어 있으니 참고하면 좋을 듯 하다) 말이나 글로 표현하다 보니 이 책이 가진 장점을 다 표현하지 못했지만, 한번 실무에서 적용할 수 있는 머신러닝에 발을 담그고자 하는 사람에게는 추천해주고 싶다.


출처: http://talkingaboutme.tistory.com/860 [자신에 대한 고찰]

 

멀티캠퍼스에서 "Spark 머신러닝" 과정을 수강했었다.
머신러닝 관련하여 과거부터 사용되온 여러가지 언어들이 있는데,
현재 기준으로 가장 많은 라이브러리를 보유한 것이 파이썬임을 알 수 있었다.
또, 프로그래밍 언어로서도 파이썬을 사용하기 때문에 여러가지 언어를 배우는 것보다
파이썬으로 머신러닝을 배우는 것이 큰 의미가 있을 것이라는 생각이 들었다(현재 주로 사용하는 언어는 java다)

따라서, 여러 책들을 서점에서 찾던 중 파이썬 라이브러리를 활용한 머신러닝이라는 책이 눈에 들어왔다.
일단 한빛미디어에서 내는 IT관련서적이니 가점먹고 들어가고, 역시나 소스코드를 제공하기 때문에
글만으로는 이해가 안되는 부분에서는 코드를 실행해보면서 이해도를 높일 수 있었다.
개인적으로 이론적 지식이 많아야 하는 분야의 책은 소스코드를 제공하는 책을 선호한다.
(이점에서는 한빛미디어에 감사의 말씀을 전하고 싶다)

하지만, 소스코드를 제공해도 내용에 대한 이해도 없이 번역만 된 책들도 많이 있다.
그 책들의 특징은 관련 IT기술에 대한 시리즈책의 번역자가 모두 다르며, 업계사람이 아닌 경우도 더러 있다는 점이다.
그런 책들은 초보자들이 꼭 피해야 한다. 이미 기술을 잘 알고 잘 쓰는 사람들이 아이디어를 얻기에 적합한 책이다.

이 책은 그런 책들과 달리 설치부터, 작은 튜토리얼을 통해서 개념적인 내용을 설명하고 있다
현재 비정형데이터(텍스트 데이터 등)를 분석하려고 시도중이기에 7장을 재미있게 봤다.

책과 함께 알아두면 좋은 사이트로는,
머신러닝의 성지와도 같은 앤드류 응 교수의 코세라 머신러닝(https://www.coursera.org/ml) 강의를 추천한다.

 

판교쪽에서 이 책으로 스터디그룹을 만들어 볼까한다 :)



출처: http://lab198.tistory.com/82 [이것저것 연구소]

멀티캠퍼스에서 "Spark 머신러닝" 과정을 수강했었다.
머신러닝 관련하여 과거부터 사용되온 여러가지 언어들이 있는데,
현재 기준으로 가장 많은 라이브러리를 보유한 것이 파이썬임을 알 수 있었다.
또, 프로그래밍 언어로서도 파이썬을 사용하기 때문에 여러가지 언어를 배우는 것보다
파이썬으로 머신러닝을 배우는 것이 큰 의미가 있을 것이라는 생각이 들었다(현재 주로 사용하는 언어는 java다)

따라서, 여러 책들을 서점에서 찾던 중 파이썬 라이브러리를 활용한 머신러닝이라는 책이 눈에 들어왔다.
일단 한빛미디어에서 내는 IT관련서적이니 가점먹고 들어가고, 역시나 소스코드를 제공하기 때문에
글만으로는 이해가 안되는 부분에서는 코드를 실행해보면서 이해도를 높일 수 있었다.
개인적으로 이론적 지식이 많아야 하는 분야의 책은 소스코드를 제공하는 책을 선호한다.
(이점에서는 한빛미디어에 감사의 말씀을 전하고 싶다)

하지만, 소스코드를 제공해도 내용에 대한 이해도 없이 번역만 된 책들도 많이 있다.
그 책들의 특징은 관련 IT기술에 대한 시리즈책의 번역자가 모두 다르며, 업계사람이 아닌 경우도 더러 있다는 점이다.
그런 책들은 초보자들이 꼭 피해야 한다. 이미 기술을 잘 알고 잘 쓰는 사람들이 아이디어를 얻기에 적합한 책이다.

이 책은 그런 책들과 달리 설치부터, 작은 튜토리얼을 통해서 개념적인 내용을 설명하고 있다
현재 비정형데이터(텍스트 데이터 등)를 분석하려고 시도중이기에 7장을 재미있게 봤다.

책과 함께 알아두면 좋은 사이트로는,
머신러닝의 성지와도 같은 앤드류 응 교수의 코세라 머신러닝(https://www.coursera.org/ml) 강의를 추천한다.

 

판교쪽에서 이 책으로 스터디그룹을 만들어 볼까한다 :)

 

읽게 된 계기

  평소에머신 러닝(Machine Learning)에 엄청난 관심을 가지고 있었고, 도서관에서 딥 러닝(Deep Learning)에 관한 책도 몇 번읽은 적이 있다. 그리고 이번 7월 한빛 미디어의 나는 리뷰어다’ 7월 이벤트를 우연히 알게 되고 바로 파이썬(Python) 라이브러리를 활용한 머신 러닝을 신청했다. 물론 한빛미디어에서 리뷰를 쓰는 것이 미션이지만 주관적으로 주관적으로 작성했다.

책의 특징 및 장점

이 책은 파이썬 그리고 scikit-learn패키지로 머신 러닝을 설명하고 예제가 작성되어 있다. 예제 난이도가 높은 편은 아니지만머신 러닝 알고리즘이 많기 때문에 한번에 이해하기 어렵다. 그림이 많아서 이해를 도와주지만 비슷한 예제가많아 헷갈린다. 머신 러닝에서 중요한 학습, 검증 데이터는scikit-learn에 들어있고, 사용하는 방법도 모두나와있어 데이터에 대한 문제는 거의 없을 것이다.

머신 러닝은 크게 지도학습과 비지도학습으로 구분되는데, 초반부에 둘의 차이를 설명하고, 그 이후에는 지도학습과 비지도학습에대해 작성되어 있다. 책의 후반부에는 자신의 데이터를 scikit-learn에서사용하기 위한 파이프 라인에 대한 설명도 있기 때문에 만약 자신이 학습할 만한 데이터가 충분하다면 파이프라인을 만들어 알고리즘을 비교하는 것도좋을 것이다.

소감

알파고 이후 일반인 들에게도 머신 러닝과 딥 러닝이라는 단어가엄청난 화두가 되었다. 심지어 딥 러닝==머신 러닝 이라고생각하는 사람도 꽤 있는 것 같다. 하지만 사실 머신 러닝은 컴퓨터를 학습시키는 알고리즘이고, 딥 러닝은 머신 러닝의 한 종류일 뿐이다. 다만 딥 러닝이 다양한영역에서 월등한 성능을 발휘하기 때문에 머신 러닝 중 딥 러닝이 화제가 되었을 뿐이다.

나도 요즘 화두가 되고 있는 딥 러닝을 공부하고 있었다. 그리고 이 책을 보기 전 까지만 해도 딥 러닝이 가장 좋다 라는 편견을 가지고 있었다. 하지만 책을 보고 생각이 달라졌다. 딥 러닝은 어떤 분야에서 제일좋은 성능을 가지고 있겠지만 다른 머신 러닝 알고리즘도 훌륭한 성능을 낼 수 있다. ‘딥 러닝이 항상답은 아니다.’ 라는 말이다. 책을 한 번 더 읽어서 완벽하게이해한 후 다른 머신 러닝 알고리즘을 적용시켜보고 싶다.

이런 사람이 읽으면 좋다

l  파이썬을다룰 수 있는 사람.

l  Scikit-learn 패키지를 배우고 싶은 사람

l  머신 러닝에관심이 많은 사람,.

l  머신 러닝중 딥 러닝만 공부한 사람.

파이썬라이브러리를활용한머신러닝01.JPG

이번에는 "파이썬 라이브러리를 활용한 머신러닝"이라는 책에 대해서 알아보겠습니다.
한빛 미디어의 "밑바닥부터 시작하는 딥러닝" 책의 인기로 인해서, 이 책이 정식 출판되기 전부터 인기가 뜨거웠는데, 이 책을 처음 받아보고 전 두께에 놀랐습니다.

 

보통 머신러닝 책들이 200 페이지 안팎인데, 450쪽에 한 페이지당 글자수도 엄청 많았습니다.

 

undefined

사이키런 핵심 개발자가 쓴 책이라고 하니까 더 궁금해집니다.

 

파이썬라이브러리를활용한머신러닝03.JPG

책의 구성은 목차에서 보듯이 대부분의 머신러닝 기법들을 순서에 맞게 소개하고 있습니다. 
이 책의 특색이라면 4장 데이터 표현과 특성 공학, 5장 모델 평가와 성능 향상 이라는 챕터를 따로 빼내어서 상세하게 설명하고 있다는 점입니다.

 

보통 지도학습을 서술하는 과정에 관련 내용들을 설명하는데, 따로 챕터를 뺄 만큼 내용이 될까 싶었는데, 읽어보니 정말 알면 좋은 내용들이 많았습니다.
 

undefined

하하하 이 책도 아이리스부터 가볍게 시작합니다. 각 머신러닝 기법들의 전체 흐름(과정)이 비슷하므로, 이 편부터 잘 보시면, 앞으로 비슷한 내용들이 반복되므로, 학습에 도움이 되리라고 생각합니다.

 

파이썬라이브러리를활용한머신러닝05.JPG

상세한 설명과 약간의 소스 코드 설명을 해 줍니다.

 

소스 코드 설명보다는 설명 부분이 훨씬 더 많습니다.
 

undefined

다른 책들과 구별되는 장점은 장단점을 매우 상세하게 적고 있습니다.

 

각 머신러닝의 기법의 장단점 뿐만 아니라 다른 머신러닝과의 관련성, 다른 점, 성능 향상에 대한 비교 분석을 저자의 경험과 노하우를 통해 배울수가 있습니다. 이런 부분들이 이 책의 신뢰도를 매우 높였습니다.
 

파이썬라이브러리를활용한머신러닝07.JPG

책의 페이지 수가 많다고 보니, 다른 책들에서는 이름만 언급하거나 그냥 넘어갔던 내용들을 충분히 페이지를 할애하여 설명하고 있습니다.
따로 인터넷에서 관련 내용들을 다시 찾아볼 필요가 없을 정도입니다.
이 책 하나만 해도 내용이 충분한 것 같습니다. 오히려 양이 넘칩니다.

 

그럼 양이 많은만큼 어렵나? 그렇지는 않습니다. 역자가 번역투로 느껴지지 않도록, 많은 노력을 한 것이 보입니다. 또한 초판임에도 오타가 거의 보이지 않습니다.
 

파이썬라이브러리를활용한머신러닝08.JPG

개인적으로 좋았던 부분이 PCA 성분 분석이 좀 어렵게 느껴졌는데, 이 책은 정말 많은 수십 페이지를 할애하여 관련 내용들을 하나하나 사진과 함께 자세하게 설명하고 있습니다.

 

다른 곳에서 이해하지 못했다면, 이 챕터 하나가 책 값을 충분히 한다고 저는 봅니다. 사람 인물 가지고 머신러닝을 설명하는 것이 이 책의 백미라고 말하고 싶은데, 그것이 저에게 어떤 의미였는지 여러분도 이 책으로 느끼시기를 바랍니다.
 

파이썬라이브러리를활용한머신러닝09.JPG

처음에 말씀드린 데이터 표현과 특성을 설명하는 장입니다. 통계 기본 책은 아니지만, 데이터 분석 책에 걸맞게 너무 깊지고 너무 얕지도 않게 데이터에 대한 이야기를 합니다.

 

데이터에 대한 여러 시각을 넓혀준 계기가 되었습니다.
 

파이썬라이브러리를활용한머신러닝10.JPG

한 페이지의 모습은 대략 이렇습니다.

 

적절한 페이지 구성으로 공부하는데, 답답한 면을 많이 줄여줍니다. 간혹 가다 빽빽하게 문자로만 설명한 곳도 있지만, 그 양은 얼마 되지 않습니다.
 

파이썬라이브러리를활용한머신러닝11.JPG

책이 끝나갈 쯤, 좀 더 배우면 좋은 내용들로 다음 학습을 잘 이끌어줍니다.

 

파이썬라이브러리를활용한머신러닝12.JPG

그러나 이 책의 가장 큰 단점은 소스 코드에 대한 상세한 설명이 없습니다.
책 내용에 비해 너무 아쉬운 점입니다.
소스 코드에 대한 부분은 구글링을 통해서 보강해야 부분들이 나옵니다.
파이썬이 처음이신 분들은 소스 보기가 어려울수도 있습니다.
다른 파이썬 라이브러리를 좀 익히셔야 수월할 것 같습니다.
소스 코드 분석없이도, 책 내용을 이해하는데에는 별 어려움이 없습니다.

 

저 개인적으로 소스 코드를 좀 더 상세하게 했으면 하고... 바라는 바입니다.
 

파이썬라이브러리를활용한머신러닝13.JPG

이번에도 이렇게 줄을 많이 치면서 공부했습니다.
머신러닝에 대해 좀 안다고 생각했는데, 아니네요.
저자가 쉽게 설명하고는 있지만, 왠지 머리 속에 남지는 않았던 것 같습니다.

 

반복 학습이 필요할 것 같습니다.
 

파이썬라이브러리를활용한머신러닝14.JPG

이번에는 2주 안에 책 리뷰를 해야 했는데, 무사히 446페이지 완독했습니다.

 

파이썬라이브러리를활용한머신러닝15.JPG

본격 머신러닝 입문서라고 했는데, 전 딴 책을 볼 필요가 없는 머신러닝 책이라고 말하고 싶습니다.
머신러닝 기법들도 모두 서술되어 있고, 각 머신러닝의 최신 기법들도 모두 소개되어 있기 때문에 군데 군데 내용이 빠진 다른 책들을 일부러 읽을 필요는 없을 것 같습니다.

 

이 책 하나만 해도 넘치므로, 이 책으로 머신러닝 완전정복하세요 ^^


(본 포스트는 한빛 미디어 "나는 리뷰어다" 이벤트를 통해 책을 제공 받아 리뷰를 작성하였습니다.)

데이터에서 지식을 추출하는 머신러닝Machine Learning 배우기


"왜 파이썬인가?왜 머신러닝인가?왜 scikit-learn 인가?"

 

내가 이 책을 읽고 과연 이 세가지의 답을 찾을 수 있을 것인가?


이 책은 파이선 패키지 NumPy, SciPy, matplotlib, pandas 기능을 자세히 설명해 주지는 않는다.

데이터를 처리하기 위해 읽거나 저장하거나 또는 다른 형태로 변환하는 등의 프로세스는 대부분 Pandas를 이용한다.

그리고 Pandas로 읽어들인 데이터들을 빠르게 연산하기 위해 numpy를 사용할 것이다.

다음 numpy 배열을 다시 SciPy를 통해 희소 행렬등의로 만들고 matplotlib를 이용해서 그래프를 그리게 될 것이다.

이런 기본적인 큰 맥락을 사용 할줄 안다면 이 책을 통해 머신러닝을 배우는데 집중 할 수 있을 것이다.

기본적으로 왜 파이썬인가? 에 대한 답은 상기 파이썬 패키지가 전반부의 50% 답이 아닐까 싶다.

따라서 이 책을 읽으려는 분은 최소한 상기 패키지의 사용 법을 알아야 한다.

일단 이책이 말하는 대상은 "머신러닝으로 실제 문제에 대한 해법을 찾는 머신러닝 기술자와 예비 기술자이다"라고 하고 있다.

그러고 나면 왜 머신러닝인가? 의 답은 본인의 현재 상황(머신러닝 기술자 또는 예비 기술자)에 따라 고민해 볼 일입니다.

고민이 끝나면 우린 머신러닝 알고리즘을 실행 시킬 파이선 패키지를 찾아 나설 것이며

왜 scikit-learn 인가? 의 답을 내리 될 것이다.

 

안드레아스 뮐러의 저자 인터뷰 중 내용을 보면

질문 : 당신에게 데이터 과학과 머신러닝은 어떤 의미인가요?

대답 : 제가 머신러닝이라고 할 땐 보통 지도 학습을 말합니다.

가장 널리 사용되고 또 가장 유용하거든요.

훌륭한 애플리케이션들이 많이 있지만 제 생각에 가장 유용한 것은 분류, 회귀, 랭킹ranking, 예측forecasting인 것 같습니다.

 

문제와 데이터 이해하기

"넓은 시각으로 보면, 머신러닝 알고리즘이나 방법론은 특정 문제를 푸는 전체 과정의 일부일 뿐입니다.항상 머릿속에 전체 시스템에 대한 큰 그림을 담고 있어야 합니다.많은 사람이 복잡한 머신러닝 솔루션을 구축하느라 오랜 시간을 투자하고 나서야 문제를 풀기에 적절한 방법이 아니었음을 깨닫습니다.(이 책에서 보게 될) 머신러닝의 기술적인 측면을 깊게 파고 들다가 궁극적인 목표를 망각하게 되기 쉽습니다."

 

누구를 위한 책인가

"이 책은 머신러닝으로 실제 문제에 대한 해법을 찾는 머신러닝 기술자와 예비 기술자를 위해 썼습니다.머신러닝과 인공지능에 대한 사전 지식이 필요 없는 입문서입니다.파이썬과 scikit-learn에 중점을 두었으며 머신러닝 애플리케이션을 성공적으로 만들기 위한 모든 단계를 밟아갑니다.여기서 소개하는 방법들은 상용 애플리케이션을 만드는 데이터 전문가는 물론 연구자와 과학자에게도 도움이 될 것입니다.파이썬과 NumPy, matplotlib 라이브러리에 친숙하다면 이 책의 대부분을 이해할 수 있습니다.여기서는 머신러닝 알고리즘을 밑바닥부터 만드는 법을 다루지는 않으며 대신scikit-learn과 다른 라이브러리에 이미 구현된 방대한 양의 모델을 사용하는 법에 집중하겠습니다"

 

이 책을 쓴 이유

"머신러닝과 인공지능 관련 책은 많습니다.하지만 대부분 컴퓨터 과학을 전공하는 대학원생을 위한 것이고 어려운 수학으로 가득 차 있습니다.이는 머신러닝이 연구와 상용 애플리케이션에서 일상적으로 사용되는 방식과 극명하게 대립됩니다.요즘엔 머신러닝을 사용하기 위해 학위를 받을 필요가 없습니다.그런데도 복잡한 수학을 동원하지 않고 실용적으로 머신러닝을 구축하는 모든 면을 다루는 책이 매우 드뭅니다.미적분, 선형대수, 확률을 공부하지 않았어도 이 책으로 머신러닝을 사용할 수 있게 되기를 바랍니다."


끝으로 이책의 역자 블로그에는 저자의 인터뷰에서 이야기하는 지도 학습에 관련한 중요한 내용을 모두 포함하고 있는 1장, 2장이 공개 되어 있다.

따라서 문제와 데이터 이해하기, 누구를 위한 책인가, 이 책을 쓴 이유를 읽고 한번 해보겠다는 분들은

바로 1,2장 공개페이지 (https://tensorflow.blog/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D/)

이곳으로 달려가 보시길..

현재 저도 열심히 달리는 중이다.

(본 포스트는 한빛 미디어 "나는 리뷰어다" 이벤트를 통해 책을 제공 받아 리뷰를 작성하였습니다.)

 

요 3~4년 전부터 IT의 화두는 항상 기계학습, 머신 러닝 이었습니다. 그러다가 작년에 알파고 충격, 흔히 말하는 '인공지능 너따위가 감히 인간의 영역에 도전해?' 라는 생각이 팽배한 상황에서, 조금 오래되긴 했지만 "인간계 최강"으로 군림했던 이세돌 9단과 알파고와의 대국이 있었습니다. 그리고 이세돌이 신의 한수로 1 대국을 이겨먹은거 말고는 내리 전패를 하는 충격을 우리에게 안겨주었습니다. 이 때 사람들은 처음으로 '딥러닝'이라는 생소한 용어와 함께 기계가 사람을 이겨먹었다라는 점을 배우게 되었지요.

 

물론 오늘은 이런 인공지능에 대한 이야기를 할 건 아니고, 이러한 열풍에 사람들이 너도나도 머신러닝을 배우기 시작하였습니다. 사실 저는 2012년에 처음 이 기계학습의 컨셉을 알게 되었지만, 그 때는 별 대수야 하면서 넘어갔었습니다. (왜 그랬니 2012년의 나야..) 이러한 여파 때문인지는 몰라도 시중에는 많은 머신러닝 관련 서적이 나왔고, 오늘 책도 그중 하나라고 할 수 있습니다.

 

(쨘)

 

머신 러닝이라는 컨셉 자체를 구현하고 있는 것은 많은 프로그래밍 언어에서 하고 있습니다. "R, matlab, JAVA, C, C++" 등등 많지만 역시 가장 유명한 것은 배우기 쉽고 언어 자체가 직관적인 Python이 관련 패키지와 커뮤니티가 가장 활성화 되어 있습니다.

 

또한 머신러닝을 위한 많은 패키지가 존재하고 이 패키지들 중에서도 가장 유명한 패키지가 사이킷 런(scikit-learn) 패키지 입니다. 그 사이킷 런의 패키지 메인 컨트리뷰터(contributor, 오픈 소스에 기여를 주도적으로 하는 개발자)가 작성한 책인 만큼 "사이킷 런을 활용한 머신 러닝 패키지를 자세히 알 수 있을 것 같다"라는 느낌을 가졌지만!

 

머릿말에서 저자는 "사이킷 런이 어떻게 구현이 되었다라는 사실 보다는 '어떻게 사이킷 런을 사용하여 머신러닝 모델을 구축하여 사용할 수 있을지'에 더 집중하였다고 서두에 밝히고 있습니다. 즉,  사이킷 런 패키지를 활용하여 데이터를 사용해서 어떻게 머신러닝 모델을 구축하고 우리의 실생활 문제 사용할 수 있을지에 대하여 고민하고, 정리한 책이다. 라고 생각하시고, 이 책을 읽으시면 됩니다.

 

 

책은 크게 이해하기 어렵지 않도록 구성되어 있습니다. 각 챕터마다 앞 부분에 이 챕터를 통해서 사용할 개념에 대하여 이야기를 하고 이후에는 그 개념을 어떻게 파이썬 패키지를 사용하여 만들 수 있는지 코드로 표현하고, 결과를 보여주는 형식을 취하고 있습니다. 책 자체가 머신 러닝의 딥한 기술 내용을 다루지 않고 있기 때문에 (예를 들어 수식이라던가 수식이라던가 수식이라던가..) 처음 머신러닝을 사용해보고자 하시는 분들에게는 부담없는 이론을 익혀보고 해당 이론이 직접 코드로 어떻게 구현되는지를 알고 싶다하는 분이 딱 적당한 도서라고 생각합니다.

 

이 책의 원 도서 이름이 "Introduction to Machine Learning with Python" 이라는 것을 감안할 때 진짜 개론적인 내용만 다루고 있기 때문에 깊이 있는 내용의 구성을 워하시거나 Scikit learn 패키지의 내부가 어떻게 이루어졌는지 알고 싶거나, 기계 학습의 진짜 핵심적인 내용을 알고 싶다면 이 책이 적절하지 않다고 할 수 있습니다.

 

 

전반적으로 이 책을 평가하자면, 책의 내용은 깔끔하고 꼭 필요한 내용만 잘 들어가 있다고 생각합니다. 뒤로 갈 수록 같은 구성에 조금 질리기도 하고 머신 러닝의 이 기술 저 기술을 조금조금씩 맛만 보는 정도라서 기존 프로그래밍 도서의 기초부터 심화과정까지 쭉 보는 것에 익숙한 독자분들은 책의 내용이 조금 심심하다고 생각하시 수 도 있을 것이라 생각합니다.

 

또한 기존 저자가 번역서의 머릿말에도 한국어판 출간을 축하한다는 글을 써줄 만큼 이 책을 심도있게 바라보고 있고, 그만큼 역자분께서 책의 번역과 역주를 신경써주셔서 달았기 때문에 기이한 그림이 그려진 오라일리의 도서일지라도 무리없이 전반적으로 잘 읽을 수 있을것이라 판단합니다.



요새 많이 팔리고 있는 책 중 하나인 것 같습니다. 교보문고 Best에서도 보이는 것같구요...

 

머신러닝에 대한 개념을 어느정도 배웠다면 실제로 내가 만들고 싶은 sw에 활용하고 싶어지는건 당연한 일입니다. 하지만 그 복잡한 알고리즘을 직접 코딩한다는 것은 힘든 일입니다.

 

이 책은 파이썬으로 구현한 scikit-learn이라는 머신러닝 라이브러리를  통해서 알고리즘을 쉽게 사용할 수 있도록, scikit-learn이 제공하는 핵심 알고리즘들의 사용법을 알려줍니다.

 

이론적 배경없이도 python만 알고 있다면 이 책을 통해서 충분히 학습하여 프로그램을 만들 수 있습니다.

 

물론 선형대수, 미적분, 확률통계를 공부했다면 더 쉽게 머신러닝에 대해 이해할 수 있지만 이 책에서는 수식없이 적절한 그림 설명과 함께 코드를 제공하고 있습니다.

 

api를 차근차근 설명해주고 있어서 그런지 책을 보는데 있어서 쉽게 느껴졌습니다.

 

리뷰에 앞서 본리뷰는 한빛 출판 네트워크에서 진행한 나는 리뷰어다이벤트에서제공받은 책으로 진행한 것을 밝힙니다.

 

머신러닝에 대해화제가 된 것은 오늘 어제의 이야기는 아닙니다. 구글의 알파고가 사실 가장 쉽게 와 닿았던 머신러닝의한 예이며, 이 외에도 다양한 기사들이 계속해서 들려오고 있고 또 계속 될 것이라 생각됩니다. 이러다보니 서점에 가서 보면 인공지능, 머신러닝, 딥러닝 등에 대한 책은 참으로 많이 쏟아져 나오고 있고, 이 책또한 그 중 하나입니다.

 

먼저 책 내용을떠나서 역자 분께서 꼼꼼하게 많은 부분을 챙겨주신 좋은 책이라 생각됩니다. 머신 러닝이나 AI 분야의 책을 많이 읽어보지는 못했지만, 역자 분의 주석이 이렇게많은 책을 본 적은 없었습니다. 번역할 때 정말 꼼꼼히 읽고, 저와같은 초보자들이 이해하지 못할 수도 있다는 우려 아닌 우려를 가지고 정성 들여 이곳 저곳 찾아보며 역자주를 달아놓으셨다는 생각이 여러 번 들었습니다.

 

머신 러닝을공부하면서 확률, 통계와 같은 개념을 빼 놓을 수 없기 때문에, 관련분야비전공자에게 밑바닥부터 접근하기에는 진입장벽이 너무 높을 수 밖에 없다는 생각이 늘 들었습니다. 근래에는이 책에서 소개하는 scikit-learn과 같은 라이브러리의 도움으로 그나마 장벽이 좀 낮아지기는했지만 그래도 어쩔 수 없는 부분이라는 생각이 듭니다. 이 책에서는 그런 부분에 대한 상세한 설명보다는, 어떤 경우에 어떤 모델을 어떻게 사용해야 하는 가를 각 모델 별로 장단점을 들어가며 예제와 함께 설명을 하고있어 책의 내용을 이해하기가 그리 어렵지 많은 않다고 생각합니다. 또 그렇기 때문에 입문서이지만 필요에따라서는 레퍼런스로 사용하는 것도 가능하리라고 생각됩니다. 5장을넘어가면서 모델을 평가하고 파라메터 조정을 통한 개선에 대한 부분에 대한 할당, 그리고 수치뿐만이 아니라텍스트에 대해서 어떻게 머신러닝을 적용할 수 있을 지에 대해 할당해 설명한 점은 어떤 식으로 머신 러닝을 적용할 수 있는지 초보자에게 좀 더 친절하게설명하려고 노력한 것으로 생각되었습니다. 또 한국어판에 들어간 별도의 부록(7.8.1)도 있어 더욱 그런 생각이… ^^.

 

또 인터넷의 자료나일부 다른 책들의 예제에서도 살펴볼 수 있듯이, 이 책도jupyter notebook으로 예제를 모두 기술해 놓고, 예제에 사용한 data들을 github로 공개해 두어 인터넷으로 ipython 저장 파일(ipynb 파일)을 열어 직접 scripttyping 하지 않아도 script와 그 결과를 볼 수 있습니다.

 

그럼에도 불구하고, 이 책은 원저의 제목보다 번역서의 제목에 더 걸맞는 내용으로 기술되었다는 생각이 책을 읽으면서 많이 들었습니다. 즉 이 책은 제목 그대로 python 라이브러리를 통해 머신 러닝을쉽게 접근하는 데 초점을 맞추었습니다(서문에도 그리 되어있습니다). Python에 대한 약간의 지식은 필요합니다. 책에서 구체적으로 설명하는부분이 있지만, script 사용을 하나하나 다 설명하지 않습니다. numpy, pandas, matplotlib 사용 시 파라메터 설명이 상세하게 되어있지 않아, 해당 라이브러리에 익숙하지 않을 경우 reference manual을보면서 하나 하나 찾아보면서 읽어나갈 필요가 있습니다.

 

또 책이 입문서다보니, 모든 부분을 다룰 수 없어, 특정 토픽에 대해 깊이다루지 못하는 분야가 있을 수 밖에 없습니다. 그래서 딥러닝과 같은 부분에 관심이 많은 분들이라면, 앤드루 응 교수님의 공개 강의, 또 한빛 미디어에서 나온 밑바닥부터 시작하는 딥러닝’, ‘텐서플로 첫걸음과 같은 다른 책들도 도움이 많이 될 것으로 생각됩니다.

 

 

  내용을 자세히 모르는 머신 러닝이라는 어려운 분야에 대해 리뷰를 하게 되어, 혹시 잘못 쓴 글이 있을 수 있으니이 점은 너그러이 봐 주시길 바랍니다.

예전에 한빛출판네트워크에서 진행했던 이벤트인 '나는 리뷰어다'에서 당첨되었다.
그래서 제가 받은 책은 '파이썬 라이브러리를 활용한 머신러닝'
때마침 인공지능관련기술인 머신러닝과 딥러닝에 관심이 생겨서 '밑바닥부터 시작하는 딥러닝' 책을 사서 공부하고 있었는데 이 파이썬 라이브러리를 활용한 머신러닝도 얻게 되어 기본에 관련된 책은 많이 얻게 되었다.
아래 사진은 책관련 내용과 원판 그리고 한국어판을 링크걸어두었다.
한빛미디어에서는 IT관련 서적을 꾸준히 이렇게 출간하는데 이것은 IT 업계가 지속적으로 신기술을 한국에 전파하는데 큰 공을 세운다고 생각한다.
 
책에 대한 내용을 간단히 적자면 저같은 경우는 파이썬을 이번에 처음 접하게 되었다. 과거에 파이썬으로 헬로우월드 한번 띄우고 나서 이거 참 좋은 언어구나라고 생각하고 굳이 필요한 언어라고 생각되지 않아서 추가적인 공부를 하지 않았다.
 
현재는 공부할 수 있는 여유와 관심이 생겨서 파이썬으로 머신러닝 기본을 공부하여봤는데 이 책에 나와있는데로 천천히 따라 해보니까 파이썬이 왜 이렇게 편한지 알겠다.
속도도 빠르고 프롬프트 같은 툴에 간단히만 프로그래밍해도 기본적인 이미지나 결과물은 나온다.
 
파이썬의 사용률이 증가하는 이유를 대략적으로 유추할 수 있었다.
 
이 책같은 경우는 파이썬으로 머신러닝에 대한 결과물을 무엇을 만들 수 있는지, 그리고 머신러닝에 대한 개념, 파이썬에 대한 개요를 전체적으로 서술하고 있다. 
저 같은 파이썬 기본이나 머신러닝 기본에 대해 배우고자 하는 사람한테 좋은 책이라 생각한다.
 
* 이 책은 한빛출판네트워크의 '나는 리뷰어다' 이벤트를 통해 제공 받은 도서입니다.

b6119391002_l.jpg

 

 

 
‘파이썬 라이브러리를 활용한 머신러닝’은 scikit-learn의 코어 개발자이자 배포 관리자인 안드레아스 뮐러Andreas Mueller와 매쉬어블의 데이터 과학자인 세라 가이도Sarah Guido가 쓴 ‘Introduction to Machine Learning with Python‘의 번역서입니다.

 

이 페이지에서 책의 에러타와 scikit-learn 버전 변경에 따른 바뀐 점들을 계속 업데이트 하겠습니다. 구글 그룹스 파이썬 머신러닝 메일링 리스트에 가입하시면 책의 에러타나 수정사항을 자동으로 수신할 수 있습니다.

이 책에 대해 궁금한 점이나 오류가 있으면 이 페이지 맨 아래 ‘Your Inputs’에 자유롭게 글을 써 주세요. 또 제 메일을 통해서 알려 주셔도 되고 구글 그룹스 파이썬 머신러닝 Q&A에 글을 올려 주셔도 좋습니다.

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

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

 ※ 한국어판에는 특별히 ‘저자 인터뷰’와 ‘KoNLPy를 사용한 영화 리뷰 분석(7.8.1절)’도 실었습니다.

 실제 문제에 대한 해법을 찾는 머신러닝 기술자를 위한 본격 머신러닝 입문서 

이 책은 머신러닝 알고리즘을 밑바닥부터 만드는 법을 다루지는 ‘않으며’, 대신 사이킷런과 다른 라이브러리에 이미 구현된 방대한 양의 모델을 사용하는 법에 집중합니다. 머신러닝과 인공지능에 대한 사전 지식이 필요 없는 입문서로, 파이썬과 사이킷런을 중심으로 머신러닝 애플리케이션을 성공적으로 만드는 모든 단계를 밟아갑니다. 여기서 소개하는 방법들은 상용 애플리케이션을 만드는 데이터 전문가는 물론 연구자와 과학자에게도 도움이 될 것입니다. 파이썬과 NumPy, matplotlib 라이브러리에 친숙하다면 이 책의 대부분을 이해할 수 있습니다.

주요 내용

 

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

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬 라이브러리를 활용한 머신러닝
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

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

도서 인증

닫기
도서명*
파이썬 라이브러리를 활용한 머신러닝
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실

최근 본 책0