Top

피처 엔지니어링, 제대로 시작하기 [데이터에서 효과적으로 정보를 추출하는 원리와 기법]

  • 원서명Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists (ISBN 9781491953242)
  • 지은이앨리스 젱(Alice Zheng), 아만다 카사리(Amanda Casari)
  • 옮긴이김우현
  • ISBN : 9791161752426
  • 25,000원
  • 2018년 12월 26일 펴냄
  • 페이퍼백 | 280쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

가장 최신 버전의 소스 파일은 다음 주소에서 다운 받으실 수 있습니다.
https://github.com/woosa7/feature-engineering-book

2019년 대한민국학술원 우수학술도서 선정도서
요약

머신 러닝의 결과는 데이터를 얼마나 잘 표현하는 피처를 추출하는가에 달려있다고 할 수 있다. 그러나 머신 러닝을 위한 다양한 알고리즘이나 도구에 대한 안내서는 많이 있는 것에 비해서 데이터의 피처를 어떻게 추출하고 사용할 도구에 맞게 변환하고 처리할 것인지 알려주는 안내서는 거의 없다. 이 책은 수치형 데이터, 범주형(카테고리) 데이터를 다루는 기법뿐만 아니라 텍스트, 이미지, 그리고 고차원 데이터에서 머신 러닝을 위해 좋은 피처를 추출하는 기법과 그 원리를 설명하고 실습을 통해 직관을 얻을 수 있도록 해준다.

추천의 글

“데이터 전처리와 피처 엔지니어링은 모델 성능의 주요인으로 밝혀지고 있다. 마침내 이 주제에 집중한 책을 만날 수 있어서 기쁘다. 앨리스와 아만다는 많은 기법의 사소한 뉘앙스까지 세밀하게 설명하고 있다.”
- 안드레아스 뮐러(Andreas C. Müller) / scikit-learn 핵심 개발자이자 컬럼비아대학교 머신 러닝 강사

이 책에서 다루는 내용

■ 숫자 데이터에 대한 피처 엔지니어링: 필터링, 비닝, 스케일링, 로그 변환, 거듭제곱 변환
■ 텍스트 처리 기법: BoW(Bag-of-Words), n-gram, 구문 탐색
■ 정보가 없는 피처를 제거하기 위한 빈도 기반 필터링 및 피처 스케일링
■ 피처 해싱과 빈 카운팅 등을 포함하는 범주형 변수의 인코딩 기법
■ 주성분 분석(PCA)을 이용한 모델 기반 피처 엔지니어링
■ 피처 생성 기법으로 k-평균을 사용하는 모델 스태킹(model stacking)의 개념
■ 딥러닝을 이용한 이미지 피처 추출

이 책의 대상 독자

이 책은 ‘모델과 벡터가 무엇인지’와 같은 기본적인 머신 러닝 지식을 전제로 한다. 물론 그와 관련된 간단한 설명이 제공될 것이다. 선형대수, 확률분포, 최적화 등에 대한 경험이 이 책을 이해하는 데 도움은 되지만 꼭 필요하지는 않다.

이 책의 구성

처음 몇 장은 데이터 과학과 머신 러닝을 시작하려는 사람들을 위한 다리를 제공하고자 천천히 시작한다.
1장에서는 데이터, 모델, 피처 등 머신 러닝 파이프라인의 기본 개념을 소개한다.
2장에서는 숫자 데이터를 위한 피처 엔지니어링의 기본인 필터링, 비닝(binning), 스케일링(scaling), 로그 변환(log transform), 거듭제곱 변환(power transform), 상호작용 피처(interaction feature) 등을 살펴본다.
3장에서는 자연어 텍스트를 위한 피처 엔지니어링을 다루며 BoW(Bag-of-Words), n-grams, 구문 탐색 등의 기법을 살펴본다.
4장에서는 피처 스케일링의 한 예로 tf-idf(term frequency-inverse document frequency)를 살펴보고 그 동작 원리를 설명한다.
5장에서는 피처 해싱(feature hashing)과 빈 카운팅(bin counting)을 포함해 범주형 변수에 대한 효율적인 인코딩 기법을 논의하면서 진행에 속도를 높인다.
주성분 분석(PCA, Principal Component Analysis)을 다루는 6장에 이르면 머신 러닝의 세계에 깊이 들어서게 된다.
7장에서는 피처 생성 기법으로서 k-평균을 다루며, 유용한 개념인 모델 스태킹(model stacking)을 설명한다.
8장에서는 텍스트 데이터에 비해 피처 추출이 훨씬 어려운 이미지에 대해 다룬다. 여기서는 이미지에 대한 최신 피처 추출 기법이라고 할 수 있는 SIFT와 HOG, 두 가지 수동 피처 추출 기법을 살펴볼 것이다.
9장에서는 학술 논문에 대한 추천 모델을 생성하는 예제를 통해 몇 가지 서로 다른 기법을 비교 분석한다.

저자/역자 소개

지은이의 말

머신 러닝은 데이터로부터 통찰력을 이끌어내거나 예측하기 위해 데이터에 수학적인 모델을 적용한다. 이 모델은 피처(feature)를 입력으로 사용한다. 피처는 원시 데이터의 숫자적인 표현이다. 피처는 머신 러닝 파이프라인에서 데이터와 모델 사이에 위치한다. 피처 엔지니어링(feature engineering)은 원시 데이터로부터 피처를 추출하고 이를 머신 러닝 모델에 적합한 형식으로 변환하는 작업이다. 적절한 피처는 모델링의 난이도를 낮춰주고, 결과적으로 파이프라인이 높은 품질의 결과를 산출할 수 있게 해주기 때문에 피처 엔지니어링은 머신 러닝 파이프 라인에서 매우 중요한 단계다. 머신 러닝 파이프라인을 구축할 때, 실무자들도 피처 엔지니어링과 데이터 정제에 가장 많은 시간이 든다는 데 동의한다. 하지만 그 중요성에도 불구하고 이와 관련된 주제는 거의 논의되지 않고 있다. 아마도 적합한 피처는 모델과 데이터의 컨텍스트 내에서만 정의될 수 있고, 데이터와 모델은 매우 다양하기 때문에 피처 엔지니어링 방법을 일반화하기가 어렵기 때문일 것이다.
그렇다고 해도, 피처 엔지니어링은 단순히 그때그때 상황에 따라 대처할 만한 것이 아니다. 피처 엔지니어링 작업에도 깊은 원리가 있으며, 그것은 실무 현장에서 가장 잘 설명된다. 이 책은 각 장마다 텍스트나 이미지 데이터를 표현하는 방법, 자동 생성된 피처들의 차원을 줄이는 방법, 언제 어떻게 정규화시켜야 하는지 등의 데이터 문제를 하나씩 다룬다. 이 책을 하나의 긴 소설이 아니라, 서로 연결된 짧은 이야기들의 모음으로 생각하길 바란다. 각 장은 다양한 피처 엔지니어링 기법을 소개하면서 그와 함께 매우 중요한 원리도 설명한다.
한 주제를 마스터하는 것은 단순히 그 정의를 알고 공식을 도출할 수 있다는 것에 그치지 않는다. 동작하는 메커니즘과 그것을 통해 무엇을 할 수 있는지를 아는 것만으로는 충분하지 않다. 왜 그런 방식으로 설계됐으며, 다른 기법들과 어떻게 연관되고, 또한 각 접근법의 장단점이 무엇인지 이해해야 한다. 무엇이 어떻게 수행됐는지 정확하게 알고, 기본 원리에 대한 직관력이 있으며, 그것을 기존에 갖고 있던 지식에 통합해야 완전히 숙련됐다고 할 수 있다. 좋은 책은 새로운 문을 열어줄 수 있지만 단순히 책을 읽는다고 해서 무언가를 마스터할 수 있는 것은 아니다.
이는 아이디어를 활용하는 반복적인 연습을 통해서만 가능하다. 반복할 때마다 더 좋은 아이디어를 갖게 될 것이고 그것을 적용하는 데 점점 더 능숙하고 창의적이 될 것이다. 이 책의 목적은 이런 아이디어를 실무에 응용하도록 돕는 것이다.
이 책은 논리적인 근거를 먼저 설명하고 그다음 수학적인 이론을 다룬다. 단지 ‘어떻게’ 하는지에 대해서만 이야기하지 않고 ‘왜’ 그렇게 되는지 설명하려고 노력했다. 이 책의 목적은 아이디어를 넘어서는 직관을 제공해 독자가 아이디어들을 언제 어떻게 적용해야 하는지 이해할 수 있도록 하는 것이다. 사람들마다 학습하는 방식이 다르므로 많은 설명과 그림을 넣었다. 제시된 수식들은 직관의 정확성을 높이기 위한 것이며 이 책의 다른 부분들과 연결된다.

지은이 소개

앨리스 젱(Alice Zheng)

머신 러닝, 알고리즘, 플랫폼 개발 분야의 테크니컬 리더다. 현재 아마존 애드버타이징(Amazon Advertising) 사의 리서치 사이언스 매니저로 근무하고 있다. 그전에는 GraphLab/Dato/Turi에서 툴킷 개발 및 사용자 교육을 담당했고, 마이크로소프트 리서치(Microsoft Research) 사에서 머신 러닝 연구원으로 일했다. UC 버클리(Berkeley)에서 전기공학 및 컴퓨터과학으로 박사(PhD) 학위를, 컴퓨터과학 및 수학으로 학사(BA) 학위를 받았다.

아만다 카사리(Amanda Casari)

기술의 다음 지평을 탐구하고 그것이 가져올 영향을 가장 잘 보여줄 수 있는 리더이자 엔지니어다. 현재 Concur Labs의 수석 프로덕트 매니저 겸 데이터 과학자며 SAP Concur의 Concur Labs AI Research 팀의 공동 창립자다. 지난 16년 동안 데이터 과학, 머신 러닝, 복잡계 시스템, 로보틱스 등의 다양한 분야에서 핵심적인 역할을 수행했다. 미국 해군 사관학교(US Naval Academy)에서 제어 시스템 엔지니어링으로 학사(BS) 학위를, 버몬트 대학교(University of Vermont)에서 전기공학으로 석사(MS) 학위를 받았다.

옮긴이의 말

피처 엔지니어링은 좋은 머신 러닝 결과를 얻기 위한 핵심적인 과정이다. 하지만 너무나 다양한 데이터의 종류와 특성에 따라 경험적으로 수행돼 왔을 뿐, 이를 범용적으로 적용하는 방법에 대한 책이나 논문들이 거의 없었다.
머신 러닝 경진대회 중 가장 유명한 캐글(Kaggle)의 여러 대회에서 우승한 팀을 인터뷰한 기사들을 읽어보면 피처 엔지니어링이 좋은 결과를 얻는 데 얼마나 중요한 역할을 했는지 알 수 있다(관련 기사: http://kweonwooj.tistory.com/42). 물론 자신이 속한 도메인 지식이 반드시 그 기초가 돼야 함은 말할 것도 없다. 의미를 찾아내기 어려운 복잡한 데이터에서 의미 있는 피처를 추출해내기 위해서는 이 도메인 지식을 활용해 반복적이고 끊임없는 피처 엔지니어링 작업을 수행할 필요가 있다.
이 책은 먼저 수치 데이터에 간단하게 적용할 수 있는 피처 엔지니어링 기법을 살펴보고, 이어서 텍스트 데이터에서 의미 있는 피처를 추출하고 변환하는 기법을 소개한다. 그다음으로 범주형 데이터를 다루는 쉬운 방법과 함께 기하급수적으로 증가하는 고차원의 범주형 데이터를 PCA와 k-평균 클러스터링을 활용해 효율적으로 차원 축소를 하면서 효과적인 피처를 추출하는 기법과 그 핵심 원리를 설명한다. 또한 오늘날 가장 많이 다루는 이미지에서의 피처 추출과 딥러닝을 통한 피처 학습의 원리를 배울 수 있다. 마지막으로 실제적으로 논문 검색을 위한 머신 러닝 시스템을 만들어가는 실습을 진행하면서 이 책을 통해 배운 피처 엔지니어링 기법들의 장단점을 익히고 직관을 얻을 수 있도록 돕는다. 머신 러닝 입문자들에게는 피처 엔지니어링에 대한 원리를 배우고 실습을 통해 실력을 높일 수 있는 좋은 기회가 될 것이며, 데이터 과학에 종사하는 분들에게는 그동안 경험적으로 수행해오던 피처 엔지니어링 기법들을 ‘암묵지’에서 명시적인 ‘형식지’로 정리하는 계기가 될 것이다.

옮긴이 소개

김우현

대학생 시절 선배와 함께 창업한 후 20년 가까이 소프트웨어 개발자로 살아오다가 인공지능 분야에서 인생 후반기를 위한 새로운 길을 만들어가고 있다. 국민대학교 경영대학원에서 빅데이터 MBA 과정을 졸업하고, 현재 숙명여자대학교 나노/바이오 전산화학 연구센터에서 데이터 과학자로 일하고 있다. 옮긴 책으로는 『R 데이터 구조와 알고리즘』(에이콘, 2017), 『자바 데이터 사이언스 쿡북』(에이콘, 2018)이 있다.

목차

목차
  • 1장. 머신 러닝 파이프라인
    • 데이터
    • 과제
    • 모델
    • 피처
    • 모델 평가

  • 2장. 숫자를 위한 멋진 트릭
    • 스칼라, 벡터, 공간
    • 카운트 처리
      • 바이너리 변환
      • 양자화 또는 비닝
    • 로그 변환
      • 로그 변환의 역할
      • 거듭제곱 변환: 로그 변환의 일반화
    • 피처 스케일링 또는 정규화
      • min-max 스케일링
      • 표준화(분산 스케일링)
      • ℓ2 정규화
    • 상호작용 피처
    • 피처 선택
    • 요약
    • 참고 문헌

  • 3장. 텍스트 데이터: 플래트닝, 필터링, 청킹
    • bag-of-x: 자연어 텍스트를 평면 벡터로 변환
      • BoW
      • bag-of-n-grams
    • 정제된 피처를 위한 필터링
      • 불용어
      • 빈도 기반 필터링
      • 어간 추출
    • 의미의 단위: n-grams에서 구문까지
      • 파싱과 토큰화
      • 구문 탐색을 위한 연어 추출
    • 요약
    • 참고 문헌

  • 4장. 피처 스케일링의 효과: BoW에서 tf-idf로
    • tf-idf: BoW 비틀기
    • tf-idf 테스트
      • 분류 데이터셋 생성
      • tf-idf 변환으로 BoW를 스케일링
      • 로지스틱 회귀를 이용한 분류
      • 일반화로 로지스틱 회귀 튜닝
    • 심층 분석: 무슨 일이 일어나고 있는가?
    • 요약
    • 참고 문헌

  • 5장. 범주형 변수: 로봇닭 시대에 달걀 개수 세기
    • 범주형 변수 인코딩
      • 원-핫 인코딩
      • 더미 코딩
      • 이펙트 코딩
      • 범주형 변수 인코딩의 장단점
    • 대규모 범주형 변수 처리
      • 피처 해싱
      • 빈 카운팅
    • 요약
    • 참고 문헌

  • 6장. 차원 축소: PCA로 데이터 팬케이크 납작하게 만들기
    • 직관
    • 수식 유도
      • 선형 투영법
      • 분산과 경험적 분산
      • 주성분: 첫 번째 식
      • 주성분: 행렬-벡터식
      • 주성분의 일반적인 해
      • 피처 변환
      • PCA 구현
    • PCA의 활약
    • 화이트닝과 ZCA
    • PCA의 고려 사항과 한계
    • 사용 예
    • 요약
    • 참고 문헌

  • 7장. k-means 모델 스태킹을 통한 비선형 피처 생성
    • k-means 클러스터링
    • 곡면 분할로서의 클러스터링
    • 분류를 위한 k-means 피처 생성
      • 조밀한 피처 생성
    • 장단점과 몇 가지 사항들
    • 요약
    • 참고 문헌

  • 8장. 피처 생성 자동화: 이미지 피처 추출과 딥러닝
    • 가장 단순한 이미지 피처(그리고 이것이 동작하지 않는 이유)
    • 수동 피처 추출: SIFT와 HOG
      • 이미지 그래디언트
      • 그래디언트 오리엔테이션 히스토그램
      • SIFT 아키텍처
    • 심층 신경망으로 이미지 피처 학습
      • 완전 연결 계층
      • 컨볼루션 계층
      • ReLU 변환
      • 응답 정규화 계층
      • 풀링 계층
      • AlexNet의 구조
    • 요약
    • 참고 문헌

  • 9장. 다시 피처로: 학술 논문 추천 시스템 구축
    • 항목 기반 협업 필터링
    • 첫 번째 단계: 데이터 가져오기, 정제하기, 피처 파싱하기
      • 학술 논문 추천 시스템: 단순 접근법
    • 두 번째 단계: 피처 엔지니어링과 더 똑똑한 모델
      • 학술 논문 추천 시스템: 테이크 2
    • 세 번째 단계: 추가 피처 = 추가 정보
      • 학술 논문 추천 시스템: 테이크 3
    • 요약
    • 참고 문헌

  • 부록 A. 선형 모델링과 선형대수 기초
    • 선형 분류 개관
    • 행렬 분석
      • 벡터에서 부분공간으로
      • 특이값 분해
      • 데이터 행렬의 기본적인 네 가지 부분공간
    • 선형 시스템 풀이
    • 참고 문헌


도서 오류 신고

도서 오류 신고

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

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

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