Top

[scikit-learn을 활용한]
파이썬과 기계 학습

  • 원서명Learning scikit-learn: Machine Learning in Python (ISBN 9781783281930)
  • 지은이라울 가레타(Raúl Garreta), 기예르모 몬세치(Guillermo Moncecchi)
  • 옮긴이전철욱
  • ISBN : 9788960778108
  • 14,000원
  • 2015년 12월 29일 펴냄
  • 페이퍼백 | 144쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

요약

수식 없이 시작하는 기계 학습
기계 학습은 새로운 컴퓨팅 환경에서 해결책을 제시하고 있다. 넘쳐나는 데이터에서 새로운 정보를 찾기는 쉽지 않다. 사용자가 원하는 정보, 사람 대신 인지해야 할 정보, 사업의 미래를 결정하는 정보. 그 가운데 기계 학습이 있다. 이 책은 어려운 수식을 설명하는 대신 쉽게 구할 수 있는 예제로 기계 학습의 핵심을 설명하고 있다. 파이썬 기계 학습 라이브러리인 scikit-learn은 가장 대중적이며 쉽게 접근할 수 있는 도구로, 기계 학습을 처음 접하는 독자에게 큰 버팀목이 될 것이다.

이 책에서 다루는 내용

파이썬 환경에서 scikit-learn 설치

서포트 벡터 머신(Support Vector Machine)이나 나이브 베이즈(Naïve Bayes) 등 다양한 기법을 활용함으로써 속성에 기반한 사물(문서, 얼굴, 꽃품종 등) 분류

타이타닉호 탑승객의 생존 같은 특정 현상의 주원인을 설명하기 위해 결정 트리 사용

회귀 기법으로 주택 가격 예측

차원 축소를 사용한 데이터 분석과 시각화

모델 선택을 통한 모델의 최적 매개변수 선택

병렬 기술을 통한 모델 성능 향상

이 책의 대상 독자

기계 학습과 데이터 기반에 대한 소프트웨어 기술을 습득하고자 하는 개발자를 대상으로 한다.

이 책의 구성

1장, '기계 학습: 친절한 소개'에서는 간단한 분류(classification) 문제를 해결하면서 기계 학습의 주요한 개념을 알아본다. 꽃의 특성을 바탕으로 꽃 품종을 판별한다.

2장, '지도 학습'에서는 네 가지 분류 기법인 서포트 벡터 머신(Support Vector Machine), 나이브 베이즈(Naïve Bayes), 결정 트리(decision tree), 랜덤 포레스트(Random Forests)를 소개하고 이러한 기법을 얼굴 인식, 텍스트 분류, 그리고 타이타닉호 사고에서 탑승객이 생존할 수 있었던 이유를 설명하는 데 사용한다. 보스턴 주택 가격을 예측하기 위해 서포트 벡터 머신과 랜덤 포레스트를 다시 보고 선형 모델(Linear Model)을 살펴본다.

3장, '비지도 학습'에서는 고차원 데이터를 2차원으로 시각화하기 위해 주성분 분석(Principal Component Analysis)으로 차원을 축소하는 기법을 살펴본다. k평균(k-means) 알고리즘을 사용해 유사성에 따라 손글씨 숫자의 인스턴스를 무리 짓는 군집화 기술을 소개한다.

4장, '고급 기능'에서는 데이터를 전처리하고 학습을 위해 최적의 속성을 선택하는 속성 선택(Feature Selection) 기법을 소개하며, 모델 선택(Model Selection) 기법도 살펴본다. 이용할 수 있는 데이터와 병렬 계산(parallel computation)을 활용해 최적의 매개변수를 선택한다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

저자/역자 소개

지은이의 말

내일 날씨가 맑을지 비가 올지 예측한다고 가정해보자. 날씨 예측을 위해 다소 복잡한 규칙 집합을 사용해 현재 날씨와 기상 지식을 바탕으로 알고리즘을 개발할 수 있다. 지난 5년 동안 매일 날씨를 기록했더니 연속해서 이틀 동안 맑은 날씨이면 다음 날도 맑은 날씨였다는 점을 발견했다. 알고리즘은 이를 일반화할 수 있고 어제와 오늘 날씨가 맑았기 때문에 내일 날씨는 맑을 것으로 예측할 수 있다. 이 알고리즘은 경험에서 학습하는 꽤 간단한 예제다.

기계 학습(Machine Learning)은 이것이 전부다. 사용할 수 있는 데이터로 학습하는 알고리즘이다. 이 책에서는 문서 분류부터 이미지 인식까지 다양한 실제 문제를 해결하는 기계 학습 애플리케이션을 개발하는 일부 기법에 대해 학습한다.

단순하면서 널리 사용되는 프로그래밍 언어인 파이썬과 오픈소스 기계 학습 라이브러리인 scikit-learn을 사용하겠다. 각 장에서는 각기 다른 기계 학습 설정과 문제 해결을 위해 scikit-learn과 파이썬을 사용하는 단계별 예제를 보여줄 뿐만 아니라 두서너 개의 잘 연구된 기법도 보여준다. 또한, 정확도와 계산 비용의 관점으로 알고리즘의 성능을 향상해줄 팁과 트릭을 알려줄 것이다.

지은이 소개

라울 가레타(Raúl Garreta)

기계 학습(Machine Learning)과 자연어 처리(NLP)를 전공했고, 인공지능(AI, Artificial Intelligence)의 이론과 실무에 경험이 많은 컴퓨터 엔지니어다.

과학 애플리케이션, 기술, 인터넷 산업 및 스타트업 등 혁신적 사업에 관심이 많으며, 비디오 게임부터 주입형 의료 기기까지 다양한 제품을 다루는 여러 소프트웨어 회사에서 일했다. 2009년에는 인공지능을 지능형 소프트웨어 제품 개발에 적용하고자 Tryolabs를 공동 창업했다.

현재는 CTO이자 제품 관리자다. Tryolabs의 전문 기술은 NLP, 기계 학습 애플리케이션, 파이썬 프로그래밍 언어이며, 실리콘밸리의 많은 고객에게 기술 서비스를 제공하고 있다. 우루과이의 파이썬 커뮤니티와 공동 결성한 지역 PyDay와 PyCon 컨퍼런스에서도 활동하고 있다.

2007년부터 우루과이의 공화국대학교(Universidad de la República)의 컴퓨터 학과에서 조교수로 근무하고 있다. 기계 학습, NLP, 오토마타 이론과 정형 언어 수업을 맡고 있다. 기계 학습과 NLP로 석사 학위를 마쳤으며 로보틱스(Robotics), 퀀텀 컴퓨팅(Quantum Computing), 인지 모델링(Cognitive Modeling)의 연구와 애플리케이션에 관심이 많다. 열렬한 기술 지지자이자 SF소설 애독자이며 영화, 사진, 그림과 같은 예술의 열혈 팬이다.

기예르모 몬세치(Guillermo Moncecchi)

우루과이 공화국대학교의 자연어 처리(NLP) 연구원이다. 우루과이 공화국대학교에서 인포매틱스로 박사 학위를 받았고 프랑스 파리 제10대학(Université Paris Ouest)에서 언어 과학으로도 박사 학위를 취득했다.

NLP에 관한 몇몇 국제적인 프로젝트에 참여했고 오토마타 이론, 자연어 처리, 기계 학습을 근 15년째 가르치고 있다.

우루과이 수도인 몬테비데오 의회의 최고 개발자로 일하고 있으며 일부 의회 공공 서비스, 특히 지리정보 시스템을 개발했다. 몬테비데오의 데이터 공개 및 이용을 촉구하는 몬테비데오 오픈 데이터 무브먼트(Montevideo Open Data movement) 대표 중 한 명이다.

옮긴이의 말

'기계 학습을 하는 자’와 ‘기계 학습을 당하는 자'
피타고라스 정리 a^2+b^2=c^2는 중고등학교 수학 시간에 배우는 기본적인 공식이다. 이 공식을 조금 변형하면 유명한 ‘페르마의 마지막 정리’가 된다. 여기서 보기도 싫은 수학 공식을 설명하고자 하는 것은 아니다. 다만, 수학이 매우 추상적인 사고를 할 수 있는 도구라는 점은 강조하고 싶다. 사실, 데이터를 다루는 작업도 매우 추상적인 사고 과정이다. 나의 일부를 추상화해 내가 알지 못하는 정보를 구할 수도 있다. 이를테면, 나의 유전자를 추상화함으로써 암을 예측할 수 있다. 오늘도 사물들은 인류가 세어본 적도 없는 수많은 추상화된 데이터를 쏟아낸다. 데이터는 정보를 만들고 이를 토대로 결정한다. 내가 본 영화로 새 영화를 추천받고 영화를 본다. 이 과정에는 기계 학습이 관여한다. 단순한 통계를 벗어나 고도로 추상화된 기법이 데이터를 모래의 숨은 진주로 만든다. 기계 학습은 새로운 세상을 보게 하는 망원경이자 현미경이다. 플루서의 말을 인용하자면, 컴퓨팅 환경은 ‘기계 학습을 하는 자’와 ‘기계 학습을 당하는 자’로 분류될 것이다.

미비한 시작으로
기계 학습은 다양한 분야가 융합되어 있다. 먼저, 탁월한 계산력을 활용하기 위해 컴퓨터에 명령을 내려야 한다. 두 번째는 수학이다. 대부분의 기법은 확률/통계나 선형 대수를 바탕으로 이루어져 있다. 마지막으로 데이터다. 데이터는 이 모든 것에 기본이며, 넘쳐나지만 잘 활용하면 황금 원천이 된다. 이러한 관점에서 보면, 이 책은 기계 학습을 접하는 처음 독자에게 매우 유용하다.

파이썬은 쉬울 뿐만 아니라 과학 생태계를 지원하는 언어다. 파이썬 기계 학습 라이브러리 scikit-learn은 우리가 일일이 각 기법을 구현해야 할 번거로움을 대신해준다. 이 책에서는 복잡한 수학식을 다루지 않는다. 처음 접하는 독자에게 수식을 나열하며 세부적으로 설명하지 않는다. 오히려 수식 대신 개념으로 최대한 이해하기 쉽게 설명한다. 마지막으로 데이터는 기계 학습 기법의 개념을 잘 이해할 수 있도록 쉽고 구하기도 편한 실질적인 것을 선택했다.

배경지식이 없는 독자에게 이 모든 것이 쉽지는 않을 것이다. 피타고라스 정리를 다시 생각해보자. 조금만 생각해보면 이 정리를 만족하는 a, b, c를 구할 수 있고, 관심을 좀 더 가지면 '페르마의 마지막 정리'인 a^n+b^n≠c^n(n은 3 이상)에 도전해볼 수도 있다. 이 과정에서 다양한 수학적 기법을 알게 되며 흥미로운 세상을 만날 수도 있다. 이 책이 기계 학습을 심도 있게 학습하고자 하는 독자에게 피타고라스 정리와 같은 역할을 하면 좋겠다. 각 장에서 나온 기법을 실행해보고 약간씩 변경해보면서, 기법에 대한 세부사항과 수학적 배경지식을 찾아 학습해 자신이 원하는 분야에 기계 학습을 적용하길 바란다.

옮긴이 소개

전철욱

웹의 개방성, 파이썬의 기민성, 기계 학습의 예측성을 좋아한다. 공익을 위한 재능을 만들고자 노력 중이다. 호주에서 여우 세 마리에게 잡혀 살고 있다. 에이콘출판사의 『Julia 프로그래밍』(2015), 『Building Machine Learning Systems with Python 한국어판 (개정판)』(2015), 『R을 활용한 기계 학습』(2014)을 번역했다

목차

목차
  • 1장 기계 학습: 친절한 소개
    • scikit-learn 설치
      • 리눅스
      • 윈도우
      • 설치 확인
    • 첫 번째 기계 학습 기법: 선형 분류
    • 결과 평가
    • 기계 학습 종류
    • 기계 학습에 관련된 중요한 개념
    • 요약

  • 2장 지도 학습
    • 서포트 벡터 머신과 이미지 인식
      • 서포트 벡터 머신 훈련
    • 나이브 베이즈로 텍스트 분류
      • 데이터 전처리
      • 나이브 베이즈 분류기 훈련
      • 성능 평가
    • 결정 트리와 타이타닉 가설 설명
      • 데이터 전처리
      • 결정 트리 분류기 훈련
      • 결정 트리 해석
      • 랜덤 포레스트: 무작위 결정
      • 성능 평가
    • 회귀로 주택 가격 예측
      • 첫 번째 도전: 선형 모델
      • 두 번째 도전: 회귀를 위한 서포트 벡터 머신
      • 세 번째 도전: 랜덤 포레스트 다시 보기
      • 평가
    • 요약

  • 3장 비지도 학습
    • 주성분 분석
    • k평균으로 손글씨 숫자 군집화
    • 다른 군집 기법
    • 요약

  • 4장 고급 기능
    • 속성 추출
    • 속성 선택
    • 모델 선택
    • 격자 검색
    • 병렬 격자 검색
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2016. 10. 7 수정 사항

[p.89: 4행]
ZN(25,000평방 피트Square Feet 이상 주거 지역의 비율)과 TAX(소유물 전액 세금 비율)은 최종 결과에 영향을 거의 주지 않는다.
->
ZN(25,000평방 피트Square Feet 이상 주거 지역의 비율)과 TAX(소유물 전액 세금 비율)은 최종 결과에 중대한 영향을 미친다.