리뷰/IT_책소개 / / 2022. 5. 29. 21:16

XGBoost와 사이킷런을 활용한 그레이디언트 부스팅 : 한빛미디어

반응형

 

XGBoost와 사이킷런을 활용한 그레이디언트 부스팅

  캐글 고수에게 배우는 실전 파이썬 머신러닝

 

  코리 웨이드 지음

  박해선 옮김

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XGBoost (Extream Gradient Boosting) 는 각광받고 있는 트리기반 앙상블 부스팅 모델의 알고리즘으로

표 형식 데이터를 활용한 예측에서 가장 뛰어난 머신러닝 알고리즘이라고 합니다. (책 기제)

"XGBoost와 사이킷런을 활용한 그레이디언트 부스팅" 책은 이 그레이디언트 부스팅에 대한 소개와 XGBoost와 사이킷런을 이용한  그레이디언트 부스팅 모델 만드는 방법에 대해 다루고 있습니다.

 

[참고] 그레이디언트 부스팅 (Gradient Boosting) 이란 ?

 앙상블 방법론에는 부스팅과 배깅이 있습니다.

 이중에서 그레이디언트 부스팅은 부스팅의 대표적인 모델로 회귀와 분류에 모두 사용할 수 있는 모델 입니다.

 그레이디언트 부스팅의 변형 모델로 XGBoost, LightGBM, CatBoost가 있습니다.

 "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅" 책 부록에서 LightGBM 과 CatBoost 에 대한 내용도 일부

 다루고 있습니다.

 

누구를 위한 책인가요 ?
책에서는 데이터 과학 전문가, 데이터 분석가, 빅 데이터를 빠르고 정확하게 처리하는 머신러닝 모델을 구축하려는 개발자를 대상으로 한다고 명시되어 있습니다.

 

책을 읽기 위해서 최소한 파이썬에 대해 다룰줄 알고 선형 대수학의 기초를 알고 있으면 도움이 된다고 명시되어 있습니다.

 

 

책은 총 1장 ~ 10장 까지로 총 10개의 챕터로 구성되어 있으며,

크게 3개의 Part 로 구성되어 있습니다.

 

Part 1 은 (Chapter 1 ~ 4) 머신러닝에 대한 개요와 예제를 통한 데이터 분석은 이러한 것이다 라는 것을 보여주고 있으며, 결정 트리, 배깅과 랜덤 포레스트에 대한 설명과 예제 그리고 그레이디언트 부스팅에 대한 소개 및 예제를 보여주고 있습니다.  본 Part에서 초보자도 쉽게 접근 할 수 있도록 XGBoost 를 이용한 따라하기 형태로 맛보면서  익숙해 질 수 있도록 이끌어 주는 부분이 좋은 것 같습니다.

 

Part 2 는 (Chapter 5 ~ 7) XGBoost 에 대한 개요 및 기본 모델, 속도 향상, 수학 이론, 일반 프레임워크로써 XGBoost 모델 소개하고, 캐글 대회를 위한 XGBoost 모델을 만들어 보면서 XGBoost 를 사용해 그레이디언트 부스팅의 정확도와 속도를 향상하는 방법과 누락된 값 처리, 희소 행렬, 병렬, 샤딩, 블록킹에 대해 설명합니다.

Chapter 6에서는 XGBoost 하이퍼파라미터에 대한 소개 및 하이퍼파라미터 튜닝을 준비하기 위한 StaratifiedKFold를 사용해 기준 모델을 만들고 GridSearchCV와 RandomizeSearchCV를 사용해 그리드 서치를 수행할 함수 만드는 법에 대해서 설명 합니다.

그리고, Chapter 7 은 XGBoost 분류 모델을 사용한 사례 연구를 다루고 있습니다.

            (XGBoost로 외계 행성 찾기)

 

Part3 는 (Chapter 8 ~ 10) 고급 XGBoost 모델을 구축하기 위한 실험하고 튜닝에 대해 다룹니다.

그리고, 스태킹과 특성 공학을 포함하여 캐글 마스터로 부터 팀과 기법을 배울 수 있으며, 최소 행렬, 사용자 정의 변환기, 파이프라인을 사용하여 제품 개발을 위해 준비된 모델 구축을 연습합니다.

 

각 Part 별로 차근차근 따라가면서 익힐 수 있도록 설명 되어 있습니다.

그리고, Chapter 0 를 통하여 책 초입에 코딩 환경 설정에 대해 설명 하고 있습니다.

Python 코딩 환경이 이미 구성 되어 있다면, XGBoost 설치할 수 있으나 설치시 오류가 발생할 수 있습니다.

우선 Python 3.x 버전이 설치되어 있어야 하며, 설치시에 pip, setuptools, wheel 모듈을 업데이트 해주는 것이 좋습니다.

    pip3 install xgboost --user

 

만약, sudo pip3 install xgboost 를 하게 되면 아래의 경고 메시지가 출력 되기 때문에 상기와 같이 User 로 설치하도록 하여야 합니다.

 

Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager.

 

pip3 install xgboost --user 실행 하였을 시에, 아래의 오류 메시지가 발생 한다면.

 

Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-5g_30s_g/xgboost/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-epk9albs-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-5g_30s_g/xgboost/

 

pip, setuptools, wheel 모듈을 업데이트 한 후 다시 설치해 보시기 바랍니다.

   sudo pip3 install -U pip

   sudo pip3 install -U setuptools

   sudo pip3 install -U wheel

 

설치 후 설치된 xgboost 버전 확인 결과 입니다. (CentOS 7 에 python 3.6 기반 입니다.)

사이킷런 설치는 아래의 명령으로 설치하면 됩니다.

   pip3 install Scikit-Learn --user

 

설치 후 설치된 Scikit-Learn 버전 확인 결과 입니다.

 

책에서는 python 코딩을 위한 환경을 아나콘다 (anaconda) 주피터 노트북을 이용하여 구성 하고 있습니다.

Anaconda | Anaconda Distribution

 

Anaconda | Anaconda Distribution

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

각 OS에 맞게 다운로드 후 설치 진행하게 되는데, 그에 대한 자세한 설명들이 Chapter 0 에서 친절하게 설명 해주고 있습니다.

기 사용하던 OS에 가상 머신 형태로 설치하여 코딩 환경을 구성할 수 있어서 쉽고 편리하며 학습을 위한 환경으로는 좋은것 같습니다.

 

설치 완료 후 xgboost 버전 확인 해보았습니다.

버전은 CentOS7에 python3.6 에 설치한 버전보다 상위 버전 입니다.

현재 설치된 아나콘다와 python 버전은, 2.2.0 과 3.9.12 입니다.

python 버전 및 각 모듈 버전에 따라 문법에서 약간의 차이가 발생 할 수 있기 때문에

버전 업그레이드 시에는 변경된 부분에 대해 확인하면 좋을 것 같습니다.

 

책은 번역으로만 이뤄지진 않았습니다.

역자 노트란을 두어 알면 좋을 내용이나 부연 설명 등을 추가해 되어 있어서 이해도를 올려 주고 있습니다.

 

그리고, [TIP] 블럭을 추가 하여 내용 중간 중간 참고가 필요한 부분에 대해서 설명 하거나 참고 하면 좋을 만한 사이트 URL 등을 알려 줌으로써 효율 적으로 학습 할 수 있도록 도와 주고 있습니다.

 

 

결론,

XGBoost 와 사이킷런에 대해서는 처음 접한 입장에서 보면, 초보자가 시작 하기에 너무 좋은 책인것 같습니다.

기본 적인 머신러닝에 대해서 알기 쉽게 그리고 따라하며 이해하기 쉽게 구성되어 있어서 좋았습니다.

완전 초급자 기준에서는 책에 나오는 용어들에 대해서라도 먼저 학습하는 것이 좋을 것 같습니다.

더 많은 모델과 더 고 성능의 알고리즘이나 모델들이 있겠지만, 본 책에서 다루고 있는 모델 및 알고리즘에 대해서 제대로 이해한다면 충분히 초급 단계를 탈출 할 수 있을 것이라 생각됩니다.

이론 부분을 심도있게 모두 담으려 했었다면 오히려 접근하기 더 어려웠을 것이라 생각됩니다. 

그리고, "Chapter 9 캐글 마스터에게 배우기"를 통해서 캐글 대회에 대해서 알게되고, 캐글 대회를 맛볼 수 있는 것도 좋았습니다.

XGBoost 에 대해 처음 접하는 개발자에게 충분히 추천할 만한 책입니다.

 

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B5725043400 

 

XGBoost와 사이킷런을 활용한 그레이디언트 부스팅

데이터 과학자를 위한 머신러닝 모델 XGBoost를 배울 수 있는 도서입니다. 핸즈온 도서이며, 구글 코랩에서 실행도 가능하므로 직접 하나하나 실습하며 익힐 수 있습니다.

www.hanbit.co.kr

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유