한빛출판네트워크

IT/모바일

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

캐글 고수에게 배우는 실전 파이썬 머신러닝, 코랩에서 실습 가능

한빛미디어

번역서

판매중

XGBoost와 사이킷런을 활용한 그레이디언트 부스팅
좋아요: 1
  • 저자 : 코리 웨이드
  • 역자 : 박해선
  • 출간일 : 2022-04-08
  • 페이지 : 380쪽
  • ISBN : 9791162245392
  • 물류코드 :10539

합계 : 30,600

도서판매처

  • 캐글 우승자들의 머신러닝 우승 비법이자 현존하는 가장 우월한 머신러닝 모델 XGBoost

     

    이 책은 기본적인 머신러닝과 판다스부터 사용자 정의 변환기, 파이프라인과 희소 행렬로 새로운 데이터의 예측을 만드는 강력한 XGBoost 모델 튜닝까지 모두 다룹니다. 또한 XGBoost의 탄생 배경과 XGBoost를 특별하게 만드는 수학적 이론과 기술, 물리학자와 천문학자가 우주를 연구하는 사례 연구까지 다양한 XGBoost의 흥미로운 이야기와 캐글 마스터들의 우승 비법까지 소개합니다. 마지막으로 더 확실한 이해를 위해 원서에는 없는 친절하고 상세한 역자 노트와 다른 그레이디언트 부스팅 라이브러리를 배울 수 있는 한국어판만의 부록을 추가하여 내용을 더욱 가득 채웠습니다. 이 책 한 권이면 복잡한 XGBoost 개념을 완벽하게 이해하고 제품을 위한 머신러닝을 구축해볼 수 있게 됩니다. 그레이디언트 부스팅을 현업에 적용해보고 싶은 머신러닝 엔지니어나 캐글 대회를 준비하고 있는 캐글 도전자에게 훌륭한 안내서가 되어줄 것입니다.

     

     

    상세이미지_XGBoost와 사이킷런을 활용한 그레이디언트 부스팅_940px.jpg

  • [저자] 코리 웨이드

    수학과 예술 분야 석사이고 버클리 코딩 아카데미(Berkeley Coding Academy)의 설립자이자 이사로 전세계 10대들에게 머신러닝과 인공지능을 가르치고 있습니다. 또한 코리는 버클리 고등학교 독립 학습 프로그램의 수학 분야 의장으로서 프로그래밍과 고등 수학을 가르치고있습니다. 기초적인 자연어 처리를 가르치며, 패스스트림(Pathstream)과 데이터 과학 커리큘럼을 개발하고, 투워드 데이터 사이언스(Towards Data Science), 스프링보드(Springboard), 미디엄(Medium)에 통계학과 머신러닝 글을 기고합니다. 『The Python Workshop』(Packt, 2019)의 공동 저자이기도 합니다.

    [역자] 박해선

    기계공학을 전공했지만 졸업 후엔 줄곧 코드를 읽고 쓰는 일을 했습니다. 텐서 플로우 블로그(tensorflow.blog)를 운영하고, 머신러닝과 딥러닝을 주제로 책을 집필하고 번역하면서 소프트웨어와 과학의 경계를 흥미롭게 탐험하고 있습니다. 『혼자 공부하는 머신러닝+딥러닝』(한빛미디어, 2020), 『Do it! 딥러닝 입문』(이지스퍼블리싱, 2019)을 집필했습니다. 『케라스 창시자에게 배우는 딥러닝 2판』(길벗, 2022), 『개발자를 위한 머신러닝&딥러닝』(한빛미디어, 2022), 『XGBoost와 사이킷런을 활용한 그레이디언트 부스팅』(한빛미디어, 2022), 『구글 브레인 팀에게 배우는 딥러닝 with TensorFlow.js』(길벗, 2022), 『(개정2판)파이썬 라이브러리를 활용한 머신러닝』(한빛미디어, 2022), 『머신러닝 파워드 애플리케이션』(한빛미디어, 2021), 『파이토치로 배우는 자연어 처리』(한빛미디어, 2021), 『머신 러닝 교과서 3판』(길벗, 2021), 『딥러닝 일러스트레이티드』(시그마프레스, 2021), 『GAN 인 액션』(한빛미디어, 2020), 『핸즈온 머신러닝 2판』(한빛미디어, 2020), 『미술관에 GAN 딥러닝 실전 프로젝트』(한빛미디어, 2019), 『파이썬을 활용한 머신러닝 쿡북』(한빛미디어, 2019) 등 여러 권의 책을 우리말로 옮겼습니다.

  • CHAPTER 0 코딩 환경 설정

    0.1 아나콘다

    0.2 주피터 노트북 사용하기

    0.3 XGBoost

    0.4 버전

     

     

    PART 1 배깅과 부스팅


    CHAPTER 1 머신러닝 개요

    1.1 XGBoost 소개

    1.2 데이터 랭글링

    1.3 회귀 모델 만들기

    1.4 분류 모델 만들기

    1.5 마치며

     

    CHAPTER 2 결정 트리

    2.1 결정 트리 소개

    2.2 결정 트리 알고리즘

    2.3 분산과 편향

    2.4 결정 트리 하이퍼파라미터 튜닝

    2.5 심장 질환 예측하기 - 사례 연구

    2.6 마치며

     

    CHAPTER 3 배깅과 랜덤 포레스트

    3.1 배깅 앙상블

    3.2 랜덤 포레스트 살펴보기

    3.3 랜덤 포레스트 매개변수

    3.4 랜덤 포레스트 성능 높이기 – 사례 연구

    3.5 마치며

     

    CHAPTER 4 그레이디언트 부스팅에서 XGBoost까지

    4.1 배깅에서 부스팅까지

    4.2 그레이디언트 부스팅 작동 방식

    4.3 그레이디언트 부스팅 매개변수 튜닝

    4.4 빅 데이터 다루기 - 그레이디언트 부스팅 vs XGBoost

    4.5 마치며

     

     

    PART 2 XGBoost


    CHAPTER 5 XGBoost 소개

    5.1 XGBoost 구조

    5.2 XGBoost 파라미터 최적화

    5.3 XGBoost 모델 만들기

    5.4 힉스 보손 찾기 – 사례 연구

    5.5 마치며

     

    CHAPTER 6 XGBoost 하이퍼파라미터

    6.1 데이터와 기준 모델 준비

    6.2 XGBoost 하이퍼파라미터 튜닝

    6.3 조기 종료 적용

    6.4 하이퍼파라미터 결합

    6.5 하이퍼파라미터 조정

    6.6 마치며

     

    CHAPTER 7 XGBoost로 외계 행성 찾기

    7.1 외계 행성 찾기

    7.2 오차 행렬 분석하기

    7.3 불균형 데이터 리샘플링

    7.4 XGBClassifier 튜닝

    7.5 마치며

     

     

    PART 3 고급 XGBoost


    CHAPTER 8 XGBoost 기본 학습기

    8.1 여러 가지 기본 학습기

    8.2 gblinear 적용하기

    8.3 dart 비교하기

    8.4 XGBoost 랜덤 포레스트

    8.5 마치며

     

    CHAPTER 9 캐글 마스터에게 배우기

    9.1 캐글 대회 둘러보기

    9.2 특성 공학

    9.3 상관관계가 낮은 앙상블 만들기

    9.4 스태킹

    9.5 마치며

     

    CHAPTER 10 XGBoost 모델 배포

    10.1 혼합 데이터 인코딩

    10.2 사용자 정의 사이킷런 변환기

    10.3 XGBoost 모델 만들기

    10.4 머신러닝 파이프라인 구성하기

  • 데이터 과학 전문가를 위한 XGBoost와 사이킷런 활용법

     

    XGBoost는 빠르고 효율적으로 수십억 개의 데이터 포인트에 적용하기 위한 그레이디언트 부스팅 프레임워크로, 업계에서 입증된 오픈 소스 소프트웨어 라이브러리입니다. 이 책은 그레이디언트 부스팅에 대한 이론을 설명하기 전에 사이킷런으로 머신러닝과 XGBoost를 소개합니다. 결정 트리를 다루고 머신러닝 관점에서 배깅을 분석하며 XGBoost까지 확장되는 하이퍼파라미터를 배우겠습니다. 밑바닥부터 그레이디언트 부스팅 모델을 구축해보고 그레이디언트 부스팅을 빅 데이터로 확장하면서 속도의 중요성을 설명합니다. 그리고 속도 향상 및 수학적인 이론에 초점을 두고 XGBoost의 세부 사항을 알아봅니다. 자세한 사례 연구를 이용하여 사이킷런 API와 원본 파이썬 API 방식으로 XGBoost 분류 모델과 회귀 모델을 만들고 튜닝하는 방법을 연습합니다. 또한, XGBoost 하이퍼파라미터를 활용하여 성능 개선, 누락된 값 수정 및 불균형 데이터 세트 적용, 그리고 다른 기본 학습기를 튜닝합니다. 마지막으로 상관관계가 낮은 앙상블과 스태킹 모델을 만들어보고, 모델 배포를 위해 희소 행렬과 사용자 정의 변환기, 파이프라인과 같은 고급 XGBoost 기술을 적용합니다.

     

     

    주요 내용

    • 그레이디언트 부스팅 모델 구축
    • 정확하고 빠른 XGBoost 회귀 및 분류 모델 개발
    • XGBoost 하이퍼파라미터 미세 조정 측면에서 분산 및 편향 분석
    • 상관관계가 없는 앙상블을 구축하고 XGBoost 모델을 스태킹하여 정확성 향상
    • 다트, 선형 모델 및 XGBoost 랜덤 포레스트와 같은 기본 학습기 적용
    • 사용자 정의 변환기와 파이프라인을 사용한 XGBoost 모델 배포
    • 누락된 값 자동 수정 및 불균형 데이터 조정


    • [나의 한줄 추천사]



      XGBoost 와 LightGBM Kaggle 에서 우승하는 알고리즘으로, 제대로 사용하고 싶은 분께 추천드린다.






      [책 추천 이유]



      실제 코랩 예제와 어떻게 알고리즘을 써야하는지 한땀 한땀 설명해준다. Kaggle 대회에 관심 있는 분들한테는 정말 좋은 지침서가 될듯 싶다.






      [내가 찾고자 했던 질문들]



      1. Kaggle 대회에서 우승하려며 어떻게 해야하는가?



      - 우승자의 말을 빌리자면, 알고리즘은 1개로는 안되고, 앙상블을 통해서 접근해야하는데, 앙상블 모델을 20개 정도는 결합시켜야 된다고 한다. 이말을 듣고 충격을 먹긴 했는데, 일단 앙상블 했다고 성능이 좋아지는것은 아니다. 앙상블을 통해서 모델의 결과가 상관관계가 높게되면, 결국 똑같은 결과만 나옴으로 서로 상호 보완적인 모델을 선택하는게 좋은 성능을 낸다. 그렇다면 상호 보완적인 모델을 20개를 결합했다는 건데, 이 부분 정말 0.0001의 정확도를 올리기 위한 노력으로 보여진다.






      2. 결정 트리 계열의 알고리즘은?



      - 결정 트리 계열의 대표적인 알고리즘은 RandomForest 이다. 하지만 RandomForest 의 유연성은 정말 좋지만, 성능이 일반적으로 좋지 않다. 오버피팅 되는 경우가 많아서 Robust 한 부분이 취약한 것이다. 그것을 보완한 알고리즘이 "XGBoost" 이며, 학습 속도으로 GPU 를 활용할 수 있고 성능적으로 추가로 개선된 것이 MS 에서 "LightGBM" 만들었다. 둘다 사용해보면, 대체적으로 "LightGBM" 이 잘 나오나, 학습 속도 이슈로 GPU가 없을 경우 "XGBoost" 썼었다.


       



      3. 챕터 실습을 하고 싶다면?



      https://github.com/rickiepark/handson-gb






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

    • 오늘 리뷰할 도서는 [XGBoost와 사이킷런을 활용한 그레이디언트 부스팅] 이다.

       


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


       



      표지.png



      사실 이 책은 책의 내용보다는 "번역 박해선" 이라는 것을 보고 선택했다.

       

      믿고 보는 박해선 님의 책, 이미 다른 책을 본 적이 있는지라 주저 없이 선택 가능했다.

       

      표지를 보니 오라일리 책이 아니었구나. 표지에 동물 그림이 그래서 없었던듯.


       

      하지만 이 책의 표지도 재미 있다. 마치 외계인을 만나러 떠난 우주선일까?

       


      어쨌든 책은 이 분야의 전문 번역서 답게 술술 읽을 수 있었다. 번역이 매끄럽다는 것이지,

       

      어려운 내용이 쉽게 이해 된다는 것과는 다른 것이므로 오해는 하지 말고,

       

      책의 내용상 어려운 부분도 상당히 많이 나오는걸 잊지 말자.

       


      한빛의 책 소개 페이지에도 중고급 대상이라고 나와 있다!

       


      목차를 보니 한국어판 특별 부록이 있다. 이런건 참 바람직한 내용이다!

       


      한국어판 부록.png


      책의 내용상 어려운 용어가 많이 나오고, 그 용어들이 대부분 영어인것은 당연한데,

       


      그럴때마다 영어 표기까지 꼼꼼하게 되어 있어서 너무 좋았다. 

       

      가끔 이런것이 없는 책을 보다보면 한글로 번역된 설명이 도대체 무슨 내용인지 알지 못하는 경우도 있으니까.

       



      용어 영어.png


      책의 전반적인 내용은 다른 데이터 분석이나 머신러닝/딥러닝 책과 비슷하여 무난했다.

       

      그런데 이번에는 종이책이 아닌 이북(구글 플레이북)으로 보게 되었는데...

       

      아직 전자책이 익숙하지 않아서인지 많이 낯설다.

       

      그리고 위의 그림에서 보듯이 종이책의 목차는 자세히 있지만,, 






      구글 플레이북의 목차는 아래처럼 너무 단순하게 표시 되어 있다.

       



      이북 목차.png


       


      마무리하면, 책은 좋은 책임에 틀림 없다. 분량도 400페이지 이내로 적당하다. 번역은 말할 필요 없이 깔끔하고.

       

      구글 플레이북이나 이북에 익숙하지 않은 나... 좀 더 시간이 필요하던지, 아니면 다시 종이책으로 가야 하나.

       

       


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

       


       


       

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


       


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


       


      대상: 머신러닝 입문자


      난이도: 쉬움


       


      2022년 지금은 인공지능이라는 키워드가 학계와 산업 분야 뿐만 아니라 대중에게도 꾸준히 노출되는 시기이다. 예전엔 상상도 하지 못한 다양한 작업들이 인공지능을 통해 이루어지고 있으며, 그 형태도 상품 추천 및 의사 결정의 수준을 넘어 이미지 생성, 자연어, 자동 코드 작성 등 창작의 영역에도 이미 깊숙히 스며들고 있다. 그에 따라 인공지능이 다루는 데이터의 형태도 점점 다양해지고 있다. 인공지능 모델을 사용할 때 가장 기본적인 데이터는 행과 열로 구성된 테이블 데이터 (tabular data)이다. 이미지 및 언어 등과 같이 복잡한 자료에 비해 테이블 데이터는 인공지능 모델을 구축하기에 매우 편리하다. 테이블 데이터는 기본적으로 행 (row)을 샘플, 열 (column)을 특성으로 가지는 1차원 벡터 자료이다. 이러한 테이블 자료를 모델링하는데 매우 좋은 성능을 내는 모델이 바로 Extreme gradient boost (XGBoost) 모델이다. 이 책에서는 누구나 XGBoost 모델을 사용할 수 있게 쉽게 안내하고 있다.


       


      책의 목차는 다음과 같다.


      CHAPTER 1 머신러닝 개요


      CHAPTER 2 결정 트리


      CHAPTER 3 배깅과 랜덤 포레스트


      CHAPTER 4 그레이디언트 부스팅에서 XGBoost까지


      CHAPTER 5 XGBoost 소개


      CHAPTER 6 XGBoost 하이퍼파라미터


      CHAPTER 7 XGBoost로 외계 행성 찾기


      CHAPTER 8 XGBoost 기본 학습기


      CHAPTER 9 캐글 마스터에게 배우기


      CHAPTER 10 XGBoost 모델 배포


      APPENDIX A (한국어판 부록) 다른 그레이디언트 부스팅 라이브러리


       


      이 책의 장점은 1장부터 곧바로 XGBoost를 활용하여 모델링을 시작한다는 것이다. 1장부터 먼저 XGBoost 적용 방법을 소개하고, 2-4장에서는 tree, bagging, random forest, boosting에 대한 간략한 설명과 Scikit-learn을 활용해서 모델링하는 예시를 보여준다. 같은 예시에 대해 여러 모델을 사용함으로써 직접적으로 성능을 비교하면서 간단한 모델 설명을 함께 하는 점은 입문자에게 큰 도움이 될 것이라 생각한다. 5장에서는 모델 최적화에 대한 수학적인 설명이 간단히 소개된다. 6장은 제공되는 함수에 대한 여러 파라미터에 대해 설명한다. 7장에서는 예시를 통해 over-, under-sampling 및 grid search등에 대해 소개하기 때문에 실전에서 필요한 부분에 대해 잘 소개한다. 나머지 장에서도 예시를 통해서 다양한 함수 및 파라미터에 대해 설명하고 있다. 파라미터를 변경함에 따른 성능 변화를 다뤄주고 있기 때문에, 직접적으로 예제를 따라서 모델링을 하지 않아도 책을 통해 대략적인 성능 차이를 예상할 수 있다는 것이 이 책의 장점이라 생각한다. XGBoost 함수에 대한 파라미터를 다양하게 설명하고 있어서, 기대했던 것보다 실전에서 큰 도움이 될 것으로 보인다. 머신러닝에 입문하는 사람과, 머신러닝 경험은 있지만 XGBoost를 본격적으로 사용하고 싶은 사람 모두에게 이 책을 추천한다.

    • 내가 머신러닝을 본격적으로 접하기 시작할 때가 XGboost가 그렇게 성능이 좋다더라~ 라는 말을 들으면서 본격적으로 도대체 그게 뭐길래? 라는 물음을 시작으로 접하게 되었다.


       


      해당 책에는 과연 어떤 특별한 점이 있을까? 라는 궁금증으로 책을 펴보았다.


       


      먼저, 목록 부터 확인해보자.


       


       



      CHAPTER0. 코딩 환경 설정



      PART 1. 배깅과 부스팅


      • CHAPTER1. 머신러닝개요

      • CHAPTER2. 결정트리

      • CHAPTER3. 배깅과 랜덤 포레스트

      • CHAPTER4. 그레이디언트 부스팅에서 XGBoost까지



      PART 2. XGBoost


      • CHAPTER5. XGBoost 소개

      • CHAPTER6. XGBoost 하이퍼파라미터

      • CHAPTER7. XGBoost로 외계 행성 찾기



      PART 3. 고급 XGBoost


      • CHAPTER8. XGBoost 기본 학습기

      • CHAPTER9. 캐글 마스터에게 배우기

      • CHAPTER10. XGBoost 모델 배포



      APPENDIX. 다른 그레이디언트 부스팅 라이브러리


       


      우선 CHAPTER0 는 어느 코딩 책에 나오는 것처럼 아나콘다와 파이썬 설치에 대한 설명으로 시작되었다.


       


      PART1에서는 배깅과 부스팅이 무엇인지 설명을 하는 글로 시작을 열었다.


       


      머신러닝에 대한 기초적인 설명을 시작으로 챕터 1은 끝났다.


       


      챕터 2 부터는 결정트리, 배깅, 랜덤포레스트 그리고 그레이디언트 부스팅에 대한 각각 알고리즘을 적용하는 코드부터 해당 알고리즘의 기본 개념을 설명해주었다.


       


      추가적으로 각 모델들의 작동 원리와 하이퍼파라미터들이 무엇인지 설명해주며, 하이퍼파라미터 튜닝 방법까지 상세하게 설명해주는 챕터였다.


       


      PART2 부터는 본격적으로 XGBoost에 대한 설명을 진행해 주었습니다.


       


      XGBOOST가 어떻게 만들어진 것인지 그리고 어떤 원리로 작동되는지 원초적인 개념 부터 시작되었습니다. 해당 책이 가장 좋았던 점은 각각 모든 예시마다 코드들이 상세하게 적혀있다.


       


      이후 위 챕터 1과 동일하게 XGBoost의 하이퍼파라미터가 무엇인지, 그리고 해당 파라미터 튜닝을 하는 방법에 대해서 코드와함께 상세하게 설명해주었다.


       


      이 해당 도서의 특이한 점은 고급 XGBoost인 파트3 부터였다.


       


      다른 알고리즘 소개서에는 본적이 없는 방법론들이 보여졌다. 먼저, gblinear였다.


       


      보통 XGBoost가 앙상블 모델을 만드는 머신러닝 모델입니다. 그리고 보통 gbtree로 알려진 기본값 중 하나인 XGBoost인데 이러한 트리는 비선형 데이터에 적합한 알고리즘이나 해당 과정에서는 비선형 데이터에 활용할 수 있는 gblinear를 소개해주는 부분이 인상적이었다.


       


      그리고 파트2에서도 보이지만, 외계 행성 찾기 데이터와 파트3의 캐글에서 여러 데이터로 접목시켜서 확인할 수 있는 코드들이 많아 좋은 도서라 생각되었다.


    • 1.png


       



      요즘 대기업에서는 A.I 및 IoT를 위해 머신러닝에 대해 개발을 추진하는 추세입니다. 머신러닝이란 기술은 인간의 뇌구조를 묘사한 뉴럴 네트웍에 기반한 기술이고 굉장히 다양한 일들을 하고 있는데 예전에는 단순히 로봇에 학습을 시켜서 사람을 따라하게 만들었지만 이제는 로봇뿐만 아니라 스피커, 청소기등등이 자신들이 가지고 있는 학습 데이터에 기반해서 판단을 내리고 행동하는 초연결시대로 나아가기 위한 기술이기 때문입니다. 그래서 구글, 삼성같은 IT관련 대기업들은 이미 머신러닝에 관련된 기술자들을 교육해서 키워내는 등 첫번째 선두로 등장하기 위해 엄청난 경쟁을 벌이고 있을 정도로 21세기의 핵심 기술중 하나입니다. 


       



      제가 이 책을 선택한 이유는 이러한 머신러닝 기술 중에서도 유망성이 높은 그레이디언트 부스팅이라는 기술을 실용적으로 배울 수 있기 때문입니다. 그레이디언트 부스팅은 랜덤 포레스트의 알고리즘이 가진 여러 결점에 대한 우아한 대안이며, 예측 분석 도구 상자 안에 있는 강력한 기술임으로 입증되었습니다. 그 중에서도 XGBoost는 빠르고 효육적으로 수십억 개의 데이터 포인트에 적용하기 위한 그레이디언트 부스팅 프레임워크로 업계에서 이미 입증된 오픈 소스 소프트웨어 라이브러리입니다. 


       



      이 책의 특성은 그레이디언트 부스팅에 대한 이론을 설명하기 전에 사이킷런으로 머신러닝과 XGBoost를 소개하여 결정 트리를 다루고 머신러닝 관점에서 배경을 분석하며 XGBoost까지 확장되는 하이퍼파라미터를 배울 수 있습니다. 밑바닥부터 그레이디언트 부스팅 모델을 구축해보고 그레이디언트 부스팅을 빅 데이터로 확장하면서 속도의 중요성을 설명합니다. 그리고 속도 향상 및 수학적인 이론에 초점을 두고 XGBoost의 세부 사항을 알아봅니다. 자세한 사례 연구를 이용하여 사이킷런 API와 원본 파이썬 API방식으로 XGBoost 분류 모델과 희귀 모델을 만들고 튜닝하는 방법을 연습합니다. 또한, XGBoost 하이퍼파라미터를 활용하여 성능 개선, 누락된 값 수정 및 불균형 데이터 세트 적용, 그리고 다른 기본 학습기를 튜닝합니다. 마지막으로 상관관계가 낮은 앙상블과 스태킹 모델을 만들어보고, 모델 배포를 위해 희소 행렬과 사용자 정의 변환기, 파이프라인과 같은 고급 XGBoost 기술을 적용한다는 점입니다.


       



      구성



      Chapter 0: 코딩 환경 설정


       



      PART 1: 배깅과 부스팅



      Chapter 1: 머신러닝 개요



      Chapter 2: 결정 트리



      Chapter 3: 배깅과 랜덤 포레스트



      Chapter 4: 그레이디언트 부스팅에서 XGBoost까지


       



      PART 2: XGBoost



      Chapter 5: XGBoost



      Chapter 6: XGBoost 하이퍼파라미터



      Chapter 7: XGBoost로 외계 행성 찾기


       



      PART 3: 고급 XGBoost



      Chapter 8: XGBoost 기본 학습기



      Chapter 9: 캐글 마스터에게 배우기



      Chapter 10: XGBoost 모델 배포



      APPENDIX A: 다른 그레이디언트 부스팅 라이브러


       



      파트별로 나누어 봤을때 1~4장은 XGBoost에서 사용하는 파라미터 및 기본적인 부스팅에 대해 설명하고 있고, 5~7장은 본격적인 XGBoost 내용 및 실습에 대해, 8~10장은 XGBoost 심화과정에 대해 설명하고 있습니다.


       


       



      개인적인 생각으로 학습은 데이터 과학 전문가, 데이터 분석가, 빅 데이터를 빠르고 정확하게 처리하는 머신러닝 관련 소프트웨어 개발자로 취업을 희망하시거나 이제 막 개발자로 시작한 초보자이신 분들께서는 파이썬에 관련된 도서를 먼저 학습하셔서 리스트 슬라이싱과 함수 작성, 메서드 호출 방법을 아신 후에 1장부터 시작하시면 좋을 것 같고 어느정도 경험이 있으신 분들(2년차~)부터는 1장은 쭉 보시면서 머신러닝의 개념 및 머신러닝 개발방법에 대해 숙지한다는 방식으로 보시고 2장부터 학습하시는 것이 좋을것 같습니다.


       


       



      개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 실습 예제 및 비즈니스 케이스가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.


       


       



      저의 리뷰를 읽어주셔서 감사합니다. 다음에는 좀더 유용하고 좋은 책으로 더 나은 리뷰를 통해 여러분께 책을 소개시켜드릴 수 있도록 더 노력하겠습니다.


       


       



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


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







      캐글이나 데이콘과 같은 AI 모델링 경진대회에 이미 베이스 모델이나 초기 데이터 확인을 위해 XGBoost를 많이 사용하고 있고, 일부 현업에서도 XGBoost가 사용된다고 알고 있습니다.







      이 책 한권으로 XGBoost에 대한 논문을 읽을 필요 없이, 개발자의 관점에서 파이썬으로 학습하는 것이 가능하고, 하이퍼 파라미터 튜닝 등을 Grid Search를 사용하여 최적화 시도를 해 볼 수 있습니다.







      개인적으로는 MLOps 개발자로 일하면서 MLFlow나 Optuna 등을 다루고 있는데, 학습을 확장해보고 싶은 독자라면 ML Pipeline을 확장시켜나간다는 느낌으로 MLFlow나 Optuna를 사용해서 모델 서빙이나 실험데이터 추적, 하이퍼 파라미터 최적화 등을 함께 배워나가면 좋겠습니다.


    • 캐글이나 데이콘 같은 데이터 분석 대회에 나가면 일단 쉽게 보이는 모델들이 XGBoost와 cat boost, Light GBM과 같은 부스팅 기법들이다. 이 기법들은 있는 모델을 그대로 활용한다면 사용방법이 그닥 까다롭지도 않은데, 심지어 왜인지는 모르겠지만 성능도 제법 잘나오는 편이다. 따라서 많은 사람들이 사용하고 있고, 나 역시도 일단 뭔지는 몰라도 써보자-라는 마음으로 이 모델을 종종 쓰곤 했다.






      그러나 이런 식으로 해도 언제까지나 더 나은 성능을 기대할 수는 없다. 어느정도는 보장이 되겠으나, 그저 만들어져 있는 모델만 의존해서 아무 생각 없이 사용하는 방식은 일정 수준 이상의 성능을 보이기는 어렵다. 따라서 XGBoost가 도대체 뭔데?라는 생각에 이 책을 읽게 되었다.






      여담이기는 하지만, 한빛미디어 책들은 어느정도 공통적인 책의 레이아웃을 가지고 있어서 처음보는 책이라도 익숙한 느낌이 드는 것 같은 장점이 있는 것 같다.






      이 책은 파이썬과 선형대수의 기초가 있는 사람들에게 권장되는 책이다. 다만 선형대수의 경우 행렬의 행과 열을 알고 있다면 충분하다고 한다.






      우선 모델의 예시를 보여주고, 그 후에 각 파라미터에 대해 소개되어져 있는데, 차차 읽어가며 이해해 보려 한다.


       



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

    •  



      내가 알고있는 머신러닝 라이브러리는 케라스나 최근에 어쩌다 본 rainnet 이라는 것 정도 생각이 나는데 XGBoost는 그래서 뭔가 하고 궁금해서 선택했다.



      오 책이 근데 파트1에서 내가 좋았던 게 있다면 데이터 마다 어떻게 누락값을 처리할 것인지 이런 경우에는 이렇게 하는 게 좋다 이런 내용이 있어서 좋았다.






      혼공시리즈에 머신러닝+딥러닝 책과 동일한 저자여서 그런가 친절한 설명이 좋았다.



      근데 실습 따라하는데 나만 안되는 건가.. 싶었던 게 있다.. 다들 괜찮았나..





       



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

    •  


      해당 도서는 명확한 주제와 구체적인 설명으로 데이터 과학의 한 부분을 깊게 경험해 볼 수 있게 도와줍니다. 특히, XGBoost와 scikit-learn 라이브러리를 활용하여 다양한 사례와 실습을 통해 실제 분석 역량을 강화하고 부족한 실전 경험을 쌓을 수 있습니다.

       

      책에서 전달하려는 주제가 명확하고 내용이 알차게 구성되어 있다보니 최근 접했던 데이터 분석 도서들 중에 개인적으로 탑으로 뽑을 수 있을 것 같습니다.

       

      입문자들을 위한 도서가 아닌 프로그래밍 및 분석에 대한 이해가 있으신 분들에게 적합한 책이며, 캐글 및 데이콘과 같은 경진대회나 빅데이터 분석기사와 같은 자격증을 준비하시는 분들에게도 도움이 되는 책이라고 생각합니다.


       


      1.jpg


       


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


       


      2014년에 처음 나오기 시작한 뒤로부터 꾸준한 사랑을 받고 있는 xgboost입니다.


      캐글에서 xgboost를 사용한 팀들이 압도적으로 우승을 하여 유명해진 알고리즘입니다.


      기초부터 xgboost의 원리를 통해 알고리즘의 원리를 알 수 있어서 매우 좋았습니다.


      캐글을 공부하면서 xgboost에 대한 설명이 부족하여서 공식 홈페이지를 보아도 잘 이해를 못하는 경우가 많았었는데, 좋은 책이 나와 xgboost를 더 잘 이해할 수 있게 되었습니다.


      번역된 초기버전은 되게 오탈자도 많고 오류가 많은데 믿고 보는 박해서님의 번역서라 그런지 오류가 거의 없는 형태였고, 읽기도 굉장히 편리하였습니다. 특히 번역자분의 노고가 많이 느껴지도록 세세하게 글이 서술되어 있습니다. 또한 실습도 유연하게 지나갈 수 있도록 책이 구성이 되어있어 참고서적으로도 굉장히 좋은 책이라 생각됩니다.


      Graident boosting은 회귀 분석 또는 분류를 구성하는 예측 모형으로 성능이 좋다고 알려져 있기 때문에 제대로 이해하는게 매우 중요합니다.


      원서엔 없는 lightGBM과 Catboost 관련 내용도 수록이 되어 있어 xgboost와 비교하면서 보기에도 너무나 좋았습니다.


      tabular data는 웬만하면 트리 모델이 더 좋다(Borisov V, Leemann T, Seßler K, Haug J, Pawelczyk M, Kasneci G. Deep neural networks and tabular data: A survey. arXiv preprint arXiv:2110.01889. 2021 Oct 5.) 라는 논문도 최근에 발표한 적이 있는 형태입니다.


      xgboost를 많이 안써보거나 제대로 써보고 싶은 분들에게 적극적으로 추천하는 책입니다.


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


       



      장점



      1.     Overfitting 최소화 하는 방법 하나인 앙상블 기법의 본질을 이해할 있으며 머신러닝 기법중 하나인 의사결정트리로 부터 트리 구조의 장단점을 있으며 단점인 부분은 Boosting Bagging 적용하여 성능 향상방법 원리를 쉽게 이해할 있음



      2.     머신러닝 파이프 라인 순서대로 진행하여 데이터 랭글링(수집,정재,분석,조작)하는 방법과 모델의 하이퍼 파라미터를 조절하여 교차 검증과 혼돈행렬을 통해 성능비교 하는 방법을 있음



      3.     XGBoost 원리를 통해 손실함수로 부터 분류와 회귀의 원리를 있으며 규제 함수를 통해 데이터의 일반화 방법을 있다.



      단점



      1.     없음



      후기



      1.     캐글에서 자주 사용하는 XGBoost 써보면서 성능도 성능이지만 결측치를 무시하면서 최적의 학습하면서 속도와 성능을 잡아 테이블 데이터로부터 분류나 회귀를 구할 모델로 가장 이상적이라고 생각한다.



      KakaoTalk_Photo_2022-05-31-17-34-59.jpeg


       



       

    • 인공지능 붐이 인지 제법 시간이 되어가는데 그 열기가 식을줄 모르는 것 같다, 덩달아 관련 책들이 서점에 도배하다 시피 진열되어 있다.






      2018년, 2019년까지는 다양한 입문서 위주로 책들이 나왔던것 같고 2020년부터는 다양한 활용서, 중급이상의 고급 기술서 그리고 새로운 모델과 기술들에 대한 내용을 다루는 책들도 점차 많아지고 있다. 이제 우리가 하는 흔한 CNN, RNN 등등을 설명하는 책들보다는 최소 한단계 수준이 높아졌다고 봐야할듯 그만큼 관련 분야가 보편화되고 매우 빠르게 발전하고 있고 그 발전에 대한 내용을 책을로 엮어내는 경우가 많아졌다는 의미일테다... 그리고 인공지능에 필요한 수학들을 다루는 책들도 많아졌고...






      그런의미에서 그레디언트 부스팅, 그중에서도 XGBoost를 설명하고 있는 재미난 책이 한권이 출판된 것 같다.










      앙상블 알고리즘을 크게 배깅과 부스팅으로 나눌수 있는데 그레디언트 부스팅은 그중 부스팅 계열 앙상블 알고리즘이다. 그레디언트 부스팅 알고리즘은 회귀분석 또는 분류를 구행하는 예측모형으로 tabular format data(row와 column 형태의 table 형식)에 대한 예측 성능이 가장 높다고 알려진 알고리즘이다.






      이를 지원하는 주요 패키지로 LightGBM, CatBoost, XGBoost 가 있는데 이 책은 그중 XGBoost와 사이킷런을 이용하여 그레디언트 부스팅을 수행하는 방법을 설명하고 있다.






      번역은 유명한 박해선님이 맡아서 진행을 했고 그레디언트 부스팅에 대한 출간된 단행본이라 내용도 모델의 성능을 고민해보는 분들에게 좋은 지침이 될 만하다 생각한다.






      번역서에는 원서에 없는 LightGBM과 CatBoost 관련 내용도 부록에 수록해놨으니 XGBoost와의 차이나 개별 모듈에 대한 특징을 간단하게나마 살펴보고 비교해 볼 수 있을 꺼라 생각한다.






      흔하디 흔한 머신러닝/딥러닝 책에 식상함을 느낀다면 꼭한번 책겨볼만한 좋은 책이라 생각한다.






      ※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.


    • 



      딥러닝 관련 공부만 하다가 머신러닝 최신 기법들을 놓치고 있다는 생각이 들어 공부해야지 생각만 하고 미루고 있었다. 특히 XGBoost는 캐글 등 여러 공모전에서 제일 많이 쓰이는 알고리즘인데, 아직까지 잘 모르고 있었다. 그러던 중에 좋은 기회가 생겨 이 책을 보게 되었다.


       



      기본적으로 XGBoost는 그레디언트 부스팅으로부터 시작된다. 결정 트리는 잘 일반화되지 못하여 배깅과 부스팅을 통해 앙상블하여 문제를 해결하고자 하였다. 이러한 앙상블 모델 중에 가장 우수한 모델이 그레이디언트 부스팅이다. 이를 더 향상시킨 것이 XGBoost이다.


       



      책에서는 기본적인 결정 트리, 배깅, 부스팅의 개념을 친절하게 설명하고 실제 데이터에 적용하며 차근차근 XGBoost에 이르게끔 해준다. (코랩에서 실습이 가능하다.) 친절하게 개념 설명과 수식 설명도 되어 있고, 안의 하이퍼파라미터들도 잘 설명이 되어 있어 나에게는 많은 도움이 되었다. 캐글 마스터의 XGBoost 사용 시 유용한 스킬에 대해서도 배울 수 있어서 이런 점은 정말 좋았다.


       



      그렇지만 너무 자세하게 나와 있다는 생각도 조금 든다! 시간이 많이 있는 사람들에게는 완전 강추하는 책이지만 프로젝트에 많이 써서 궁금한 정도라면 필요한 부분만 골라서 읽는 것도 나쁘지 않은 것 같다.



      


    •  저도 데이콘에서 데이터가 많이 없는 경진대회의 경우 머신러닝 모델을 많이 사용합니다. 그중에서도 XGBoostLightGBMCatboost 등을 애용하고, 이들을 스태킹 하는 방법을 주로 사용합니다. 이 책도 XGBoost에 대해 중점적으로 다루고 있지만 새로운 특성을 만드는 피처 엔지니어링앙상블스태킹 등 캐글 대회에서 상위권을 노릴 수 있는 강력한 머신러닝 기법들을 소개하고 있습니다. 


       




       



      이 책은 그레이디언트 부스팅을 크게 업그레이드시킨 모델로 정확도와 속도를 달성하기 위해 계산량을 극대화한 XGBoost에 대해서 소개하고 있다. 캐글 대회에서 압도적으로 우승을 많이 한 모델로 아직까지도 사랑받고 있는 모델 중 하나이다.

       



      이 책의 핵심 주제는 XGBoost의 구조, 기능, 성능이지만 1장에서는 머신러닝을 위한 데이터 준비. 즉 데이터 랭글링에 대해서도 친절하게 설명해주고 있다.


       



      데이터 랭글링이란 머신러닝을 시작하기 전에 다양한 데이터 전처리 단계를 포함하는 광범위한 용어이다. 데이터를 로드하고, 전체 구조를 살피고누락된 값을 처리하고, 수치 특성으로 데이터를 변환하고, 훈련 세트와 테스트 세트로 나누고교차 검증을 수행하는 등 데이터 로딩, 정제, 분석, 조작이 모두 데이터 랭글링에 포함된다.


       



      이러한 데이터 랭글링 과정이 책의 전 범위에 걸쳐 사용되므로 꼭 익혀야 할 개념 중의 하나이다.


       




       



      3장에서는 XGBoost의 경쟁 도구이자 대표적인 앙상블 방법인 랜덤 포레스트에 대해 설명한다. 배깅과 부스팅에 대한 개념 설명부터 랜덤 포레스트의 성능을 높이기 위해 warm_start 매개변수로 n_estimators 를 조절하고 oob_score_ 점수를 사용해 오차를 측정하는 방법을 제시한다.


       




       



      본격적인 XGBoost에 대한 설명은 5장에서 시작된다.



      XGBoost는 속도에 주안점을 두어 설계되었는데, 다음과 같은 기능 덕분에 다른 앙상블 알고리즘에 비해 큰 장점을 가지고 있다.


      • 근사 분할 탐색 알고리즘

      • 희소성 고려 분할 탐색

      • 병렬 컴퓨팅

      • 캐시 고려 접근

      • 블록 압축과 샤딩



      이 외에도 XGBoost로 최상의 머신러닝을 만들기 위해 사용하는 파라미터 최적화와 수학 공식 등을 소개하고, XGBoost를 세상에 알리게 된 캐글 대회인 힉스 보손 (Higgs boson) 대회를 위한 모델을 만들 수 있다.


       




       



      9장에서는 XGBoost를 사용해 캐글 대회에서 우승한 캐글 마스터의 팁과 기법들을 배울 수 있다. 강력한 머신러닝 모델을 만드는 데 적용할 수 있는 기술인 Feature Engineering홀드 아웃 세트, VotingClassifier와 VotingRegressor를 사용해 상관관계가 낮은 머신러닝 앙상블을 만드는 방법, 최종 모델을 위해 스태킹을 사용하는 방법과 그 장점에 대해 배울 수 있다.


       




       


       



      10장에서는 튜닝보다는 프로세스에 중점을 두어 앞 장에서 배운 모든 것을 연결하여 제품으로 사용할 수 있는 강력한 머신러닝 모델을 만드는 새로운 방법을 배운다. NullValueImputer 클래스, ColumnTransformer 등 여러 종류의 누락된 값을 대체하는 변환기를 만드는 방법, 여러 종류의 특성으로 구성된 데이터를 원-핫 인코딩하는 방법, 이 모든 과정들을 scikit-learn의 Pipeline 모듈을 이용하여 전처리 과정과 모델링 과정들을 하나의 파이프라인으로 만드는 방법을 배운다.


       




       


      이 책을 보면 시중에 나온 캐글 상위권을 위한 팁들을 모아놓은 책들을 볼 필요가 없겠다고 느껴졌다. 


      대회를 참여하다 보면 그 정확도와 성능이 검증된 모델을 쓰기 마련이고 그 모델 중의 하나가 바로 XGBoost라고 생각한다.


       


      XGBoost의 배경부터 시작하여 주요 하이퍼 파라미터 튜닝 기법, gbtree, dart, dblinear, 랜덤 포레스트 등의 기본 학습기, 홀드 아웃 세트와 이 외에도 앙상블, 스태킹 등의 여러 중요한 기법들을 이 책에서 모두 다루고 있다. 


       


      마지막으로 전처리 과정과 모델링 과정들을 하나의 파이프라인으로 구성해서 재사용성까지 높일 수 있는 방법도 제시하고 있다. 


       


      추후 머신러닝을 이용하는 대회에 참여할 때, 이 책을 다시 한번 꺼내 볼 것이다. 


       


       



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

    • 달마다 그렇듯 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받았습니다.

      캐글에서 XGBoost를 사용한 모델을 사용한 팀들이 압도적으로 우승을 차지하더라.

      그래서 보니 성능도 좋아보이던데 우리도 써보면 어떨까?"



      나는 캐글에 관심은 예전부터 있지만, 아직 대회에 참가할 수준은 아니다.

      그래도 머신러닝/딥러닝 분야 기웃거리다 보면, 이책 저책에서 캐글에서 나온 대회나 데이터셋을 사용하는 경우도 많아서 언젠가는 한번 참가해볼 생각이다.

      그래서 XGBoost라는게 이렇게 책 한권에서 다룰만한거리가 있으면 어떤부분에서 성능이 좋은지 궁금해서 읽어봤다.

      일단은 그레디언트 부스팅을 개조한게 익스트림 그레디언트 부스팅, 즉 XGBoost 이다.

      그리고 역시나 속도가 빠르다고 한다.

      속도 빠르고 정확도 높으면 최고지 뭐.

      근데 가끔 드는 생각이 , 이런 책이나 여러 예제에서 모델 설명할때 사용하는 예제를 보면 데이터가 상당히 잘 되어있다. MNIST만 봐도 책에서 시키는대로만 몇줄 적어도 성능이 잘 나온다.

      이게 꿈과 희망을 주긴 하는데, 공부한 모델이나 알고리즘을 실제로 적용할 때 보면 바로 원하는 결과를 얻기가 힘들다.

      모델이 예제 데이터셋에 편향된 것일수도 있겠지만, 데이터 전처리를 사용자가 예제 데이터수준까지는 아니더라도 훌륭하게 하지 못했을 수도 있고, 단순히 모델 복붙만 해서 문제 해결상황과는 다른 설계가 된 것일수도 있다.

      그래서 모델의 추상적인 동작 방식만 보기보다는 수학적으로 깊이있게 이해해볼 필요가 있을 것 같다.

      그런 의미에서 XGBoost가 성능이 좋다고 구대로 사용하지말고, 이렇게 토픽에 대해 자세하고 다양하게 설명하는 책을 참고하면 좋을 것 같다!

      또 이 책이 맘에 드는게, 아까 표지에서도 말했듯 예제가 흔한 붓꽃인가 무슨 꽃이랑 레나 같은거나, MNIST 손글씨나 CIFAR, Fasion MNIST같은 이제 좀 지루해진 예제 말고, 진짜 과학자들이 쓰는거 같은 데이터셋을 쓴다.

      행성의 공전시 항성의 밝기변화를 이용한 외계행성 데이터셋이라던가, 힉스 보손 찾기 같은거.

      나중에 캐글에서 또 어떤 모델이나 알고리즘이 유행할지 모르겠지만, 좋은 장비가 생기고 실력이 늘어 도전하기까지에 읽어보기 좋은 책 같다!


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



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



        코리 웨이드 지음



        박해선 옮김


       



      photo_2022-05-29_08-32-29.jpg


       


       



      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 를 통하여 책 초입에 코딩 환경 설정에 대해 설명 하고 있습니다.


       



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



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


       



      photo_2022-05-29_20-49-00.jpg photo_2022-05-29_20-49-09.jpg


       



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


       



      photo_2022-05-29_20-49-03.jpg


       



      결론,



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



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



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



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



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



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



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


       


    • 


      XGBoost는 Kaggle 대회를 통해 명성이 높습니다.


       


      캐글 우승자들은 XGBoost를 사용해 좋은 성적을 거뒀습니다.


       


      캐글 대회의 데이터셋을 사용한 실전 예제도 많이 담겨있습니다.


       


      캐글은 구글의 자회사인데요.


      데이터 과학자나 기계학습 연구자들의 온라인 커뮤니티 활성화가 잘 되고 있습니다.


       


      머신러닝 최강자인 XGBoost 관련 책을 소개해드리려 합니다.


       


      소개해 드릴 책은 'XGBoost와 사이킷런을 활용한 그레이디언트 부스팅'입니다.


       


      XGBoost와 그레이디언트 부스팅를 어떻게 활용하는지 알아보겠습니다.


       


       



      2222.jpg


       


       


      1) 앙상블 모델


       


      앙상블에 모델을 포함할 땐 상관관계를 확인해야 합니다.


       


      상관관계가 높은 머신러닝 모델의 경우 앙상블에 포함하지 않는 것이 좋습니다.


       


      왜냐하면 분류를 할 때 동일한 예측의 경우 성능 향상이 없습니다.


       


      반대의 경우는 앙상블 모델을 돌릴 경우 향상된 성능을 보입니다.


       


      편향과 분산이 줄어들면 성능이 향상된다고 생각할 수 있는데요.


      줄더라도 앙상블 모델이 성능 향상이 되지 않는 경우도 있습니다.


       


       



      3333.jpg


       


       


      2) 그래이디언트 부스팅


      그레이디언트 부스팅을 아시나요?


      그레이디언트 부스팅은 이전 예측기가 만든 잔여 오차에 새로운 예측기를 학습시키는 방법입니다.


       


      그레이디언트 부스팅은 얕은 결정트리를 사용하는데요.


      이진 트리의 오차를 보완하는 형태로 앙상블을 할 수 있습니다.


       


      과대적합할 때 그레이디언트 부스팅은 강합니다.


       


      학습률을 증가시켜도 트리의 개수가 늘리면 조금 더 향상된 성능을 낼 수 있습니다.


       


       


       



      11111.jpg


       


       


      Ps


      코드랩과 주피터로 머신러닝 실습을 쉽게 할 수 있습니다.


       


      책의 저자는 머신러닝 관련 서적도 많이 썼습니다.


       


      이 책은 한국 독자를 위해 또 다른 유명한 그레이디언트 부스팅 라이브러리인 LightGBM, CatBoost가 포함되어 있습니다.


       


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


      


       





    •   



      한빛미디어의 "XGBoost와 사이킷런을 활용한 그레이디언트부스팅도서를 소개합니다.


       


       



      XGBoost01.png


       


       


       


       


       








































       


       



      XGBoost에 대한 글들을 우연히 보게 되어 관심을 가지던 차에 "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅" 리뷰기회를 얻어 읽게 되었습니다. 사실 부제에 해당하는 "캐글고수에게 배우는 실전 파이썬 머신러닝, ..."에 호기심을 가지게 된 것인데, XGBoost 기반으로 캐글 대회 우승을 차지했다는 내용들 때문이었습니다.


       


       



      XGBoost03.png


       


       


       









       



      XGBoost을 알려면 우선 부스팅이란 앙상블(Ensemble) 기법을 알아야 합니다. 부스팅은 몇 가지 모델을결합하여 정확한 모델을 만드는 방법으로, 각각의 예측 결과를 기반으로 강한 모델을 만든다고 볼 수 있습니다. 2장에서 4장까지는 XGBoost의이해를 위해서 "그레이디언트 부스팅", 그 전에 "배깅 앙상블과 랜덤 포레스트", 또다시 이를 알기 위해서 이전에 "결정 트리"를 알아야 하기에, 이를 역으로 설명하고 있습니다.


       









       



       


       



      ü  CHAPTER 2 결정 트리


       



      ü  CHAPTER 3 배깅과 랜덤 포레스트


       



      ü  CHAPTER 4 그레이디언트 부스팅에서 XGBoost까지


       



       


       



      4장을 마무리하면서 아래와 같은 글이 있습니다. XGBoost을 왜 배워야 하고, 적용해야 하는지, 예측 데이터셋으로 비교해보면 속도 차이가 엄청나다는 것을 알 수 있습니다.


       









       



       



      XGBoost04.png


       


       


       



       


       



      도서의 전체적인 구성은 PART 1에서 배깅과 부스팅을,PART 2에서 XGBoost 기본 이론을, PART 3는고급 XGBoost 기법들을 배울 수 있도록 구성하였습니다. 따라서 XGBoost 자체 뿐만 아니라, Part 1/2/3 과정을 통해서기초가 되는 결정트리, 부스팅, …등과 같은기본 이론을 쉽고차근차근 배울 수 있는 도서입니다.


       



      XGBoost05.png


       


       


       









       



       


       



      5장에서는 힉스 보손 대회를, 7장에서는외계 행성 탐사라는 주제를 다루는데, 도서가 이론 뿐만 아니라 실습에 대한 비중이 꽤 높다는 점입니다. 개인적으로 마음에 들었던 몇가지 부분이었는데, 7장의 경우 외계행성 데이터셋을 소개하면서 외계 행성 탐사 역사도 담고 있고, 데이터셋을 가지고 그래프와 분석하는 내용을담고 있습니다. 왜 책의 부제가 "캐글 고수에게배우는 실전 파이썬 머신러닝인 것인지 알 수 있습니다.


       



       



      XGBoost06.png


       


       









       


       



      디테일한 부가 설명 또한 본 도서가 이론을 다양한 소스로부터 배울 수 있도록 유도합니다.


       



      XGBoost07.png


       


       


       









       



       


       



      가장 마음에 들었던 내용인데, “역자노트를 통해 머신러닝 전문가인 역자의 풍부한 이론을 전달하기에, 본서보다가치가 높다고 생각합니다.


       



       



      XGBoost08.png


       


       


       









       



       


       


       



      역자의 도서를 몇권 가지고 있고, 이를 통해 머신러닝을 접하다 보니역자의 출간 도서에 관심이 많았습니다. 사실 본 도서 역시 저자보다 역자를 통해 리뷰 신청을 하게 되었죠. "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅라는도서 한권을 통해 사이킷런 뿐만 아니라 결정 트리나 부스팅과 XGBoost의 초//고급 기술을 익힐 수 있고, 개인적으로는캐글 도전을 다시 해야 겠다는 생각이 들더군요. ^___^


       



       


       



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


       



       


        






    • 이번 달에 리뷰하게 된 책은 이다. 다른 사람 책상 위에 이 책이 있는 걸 보고 "무슨 내용이지?" 하고 궁금했던 차라 반가웠다. 그리고 생계형 번역가꾼이라고 자칭하는 박해선 님이 번역한 책. 초판 1쇄. ^^


       


      서문에 "데이터 과학 전문가, 데이터 분석가, 빅 데이터를 빠르고 정확하게 처리하는 머신러닝 모델을 구축하려는 개발자를 대상으로 합니다. 파이썬에 익숙하고 선형 대수학의 기초를 알고 있으면 이 책을 읽는 데 도움이 될 것입니다." 라고 써있다. 즉, 왕초보를 위한 책은 아니라는 얘기다.


       


      먼저 밑바닥부터 그래이디언트 부스팅 모델을 만들어 보고 나서 빠르고 효율적이라고 하는 XGBoost 라이브러리의 속도감을 실감할 수 있게 해준다. 


      Part 1은 선형회귀, 로지스틱회귀, 결정트리(Decision Tree), 배깅, 랜덤 포레스트, 그레이디언트 부스팅을 다루고 있고, 


      Part 2에서  XGBoost를 소개한다. 모델을 만들고 튜닝하는 과정이 있다. 


      Part 3에서는 XGBoost에 있는 다양한 기본 학습기의 차이점에 대해서 알아보고 적용도 해본다. 선형 기본학습기인 gblinear, 결정트리의 변종으로 드롭아웃 기법을 사용하는 DART(Dropouts meet Multiple Additive Regression Trees), XGBoost 랜덤 포레스트를 소개하고 있다. 성능을 높이는 것은 어떤 경우든 지난한 튜닝의 과정이 필요하네. 기계가 학습을 하는 건지 내가 학습을 하는 건지 모를....(둘 다 학습을 하겠지) 


      마지막으로는 XGBoost를 사용해 캐글 대회에서 우승한 캐글 마스터들로 부터 배울 수 있는 노하우를 소개하고 있다. 역시나 새로운 특성을 만들어서 최적의 모델에 적용하는, (시간도 엄청 많이 걸리는데) 그냥 단순히 시간만으로는 해결되지 않는 과정이 있구나. 머신러닝 파이프라인을 구성하는 것까지 해서 책이 마무리된다.


       


      ​이전에 보았던 다른 책들 보다 한 단계 더 깊이 들어간 내용을 다루고 있나보다 생각했었지만, 읽다보니 Pandas로 데이터프레임을 처리하는 것이나 원핫인코딩과 같은 기초적인 개념들도 같이 다루고 있었다. 파이썬을 아는 정도라면 머신러닝 입문자도 읽을 수 있을 것 같다.


       


      ​이런 부분은 다른 책에서는 보지 못한 부분이라 재미있다.



      KakaoTalk_20220529_214740421.jpg KakaoTalk_20220529_214740421_01.jpg


       


      보면서 살짝 아쉬웠던 건 종이가 너무 얇다는 거... 형광펜이라도 그으면 뒷면에 비칠 것 같아서 그냥 연필만 쓰게 된다.  그래서 전체적으로 책이 얇고 가벼워졌다는 장점도 있겠지만... 



    • 다양하게 주어진 데이터 예제 덕분에 XGBoost 알고리즘의 활용도를 깊이있게 학습할 수 있도록 구성된 책으로 캐글 데이터를 활용하고 있어 추후 학습 연장선상에 캐글을 활용할 수 있도록 안배된 점이 특징이다.




      XGBoost 알고리즘을 다양한 데이터 별로 활용할 수 있게 구성된 점이 장점이며 특히 빠르게 알고리즘의 핵심을 익힐 수 있게 구성된 점이 장점인 책이다.빠른학습가능



      특히 캐글 경진대회에서 주로 다루는 데이터 셋들이 예제로 다뤄지고 있기에 실전에 가까운 데이터와 XGBoost 알고리즘의 시너지를 내는 방법을 쉽게 익힐 수 있으며 이 책에서 다루는 기본 과정을 충실히 익히고 나면 차후 보다 난이도 있는 캐글 경진대회를 스스로 학습해보며 XGBoost의 활용 능력을 크게 키울 수 있다.



      파트1에서는 XGBoost의 가장 기본적인 사용법을 빠르게 익힐 수 있다. XGBoost의 특징이나 활용법을 중심으로 다루고 있으면서도 데이터 분석에 자주 활용되는 널리 알려진 다른 유명 알고리즘 즉, 결정트리, 랜덤 포레스트, 배깅, 부스팅, 그레이디언트 부스팅들의 특징을 같이 살펴본다.



      각 분석 알고리즘의 원리가 무엇인지 간단한 수식으로 정리해보고 예제를 구현해 나가며 각 알고리즘의 장, 단점이 무엇인지 파악할 수 있음은 물론 각 알고리즘의 단점을 보완하기 위해 등장한 알고리즘이 무엇인지 발전 과정을 살피며 종국에 등장한 XGBoost가 왜 좋은 성능을 발휘하는지 왜 활용해야 하는지 근본적인 이해도를 높혀주는 구성이 마음에 들었다.



      파트2에서는 본격적으로 XGBoost를 다룬다. 알고리즘의 상세구조 및 특징, 수식, 하이퍼파라미터의 종류 및 활용 방법들을 심도 있게 다루고 있으며 특히 7장의 예제는 가장 핵심이 될만한 예제로 XGBoost를 충분히 학습해볼 수 있는 기회를 얻을 수 있어 반드시 익히고 실습해 볼 것을 권하고 싶다.하이퍼파라미터



      파트3는 XGBoost에서 활용하는 기본 학습기에 대해 보다 심도 있게 다루며 그 활용도를 극대화할 수 있는 방법을 얻을 수 있다. 앞 장에서 그레이디언트 부스팅 트리와 같은 가장 기본적인 학습기만을 다뤄왔다면 본 파트에서는 주어진 데이터의 특성을 파악해보고 선형, 다트, 랜덤포레스트 등 다양한 기본 학습기를 활용하며 XGBoost의 확장능력을 체험할 수 있도록 구성되어 있다.


      뿐만 아니라 차후 캐글의 심도있는 경진대회 데이터셋으로 스스로 학습 능력을 높혀나갈 수 있게 끔 평균 인코딩, 상관관계 낮은 앙상블 만들기, 베이스 모델의 예측을 입력으로 활용하는 스태킹 등의 기법을 활용할 기회가 주어진다.



      이는 캐글마스터들이 공개한 TIP이기도 하기에 실무에서도 높은 예측력을 가진 모델을 만드는 데 많은 도움이 될 수 있을거라 생각한다.또한, 모델을 배포하는 방법을 알려주고 있어 서빙이나 제품화에도 도움을 받을 수 있을 듯 하다.



      한국어판에만 공개된 부록은 여느 장 못지 않게 소중한 내용이 담겨있다. CatBoost, LightGBM과 같은 XGBoost와 비슷한 성능을 내며 널리 활용되는 경쟁 알고리즘들도 소개되어 있다.


      특히 CatBoost는 범주형 특성 데이터에 대한 인코딩을 자동으로 처리해주기에 처음 접했을 때 너무 편리하다 생각했는데 단 몇 페이지로 본 알고리즘의 핵심과 활용방법을 간결히 정리하고 있어 빠르게 익히는데 큰 도움이 된다.


      XGBoost와 활용법이 상당히 유사하기 때문에 저자가 본 도서를 통해 알려주는 기본기에 충실할 수 있다면 부록만으로도 쉽게 유사한 다른 알고리즘을 활용할 수 있을 것이다. 적은 시간을 투자하여 유사 알고리즘을 활용할 수 있도록 구성된 점이 크게 매력적인 부분으로 느껴졌다.



      그 외에도 전반적으로 힉스보손입자, 외계 행성 찾기 등 재미있는 캐글 데이터셋을 즐겨볼 수 있는 기회가 주어짐과 동시에 실습 예제가 풍부하여 흥미를 가지고 학습할 수 있다는 점이 특징이다.힉스보손



      XGBoost를 구현 시 고유의 방식이 있는가 하면 SKlearn API 방식도 존재하는데 두가지 방식이 존재하여 초보자는 헷갈릴 수 있는 요소가 된다. 하지만 본 도서에서 두가지 방식을 꼼꼼하게 설명하고 있어 XGGBoost를 활용하는데 발생할 수 있는 혼동을 줄여준다는 점도 장점이라 생각했다.


      물론 아쉬운 점도 몇가지 존재한다. 구체적으로 데이터의 구조에 따리 모델을 다양하게 설계하는데 약간 부족함이 있지 않나 싶다. 예를 들면 더미 데이터를 독립변수로 입력받아 종속변수를 분류하는 예제는 소개되어있지 않다.


      또한, 통계적 지식을 깊숙하게 다루진 않고 있어 내부의 깊이있는 이해 혹은 데이터 분석 자체의 능력을 키우기 위해 통계와 관련된 별도의 학습이 필요할 것이다. 7장에 불균형 데이터셋을 위한 F1 스코어나 재현도의 기본을 설명하는 수준 정도는 잘 정리하고 있으나, 독립변수 간 종속성을 파악하는 등 일반적인 데이터 분석에 활용되는 기본기들을 학습하진 않는다.


      8장과 같은 경우도 gbtree, dart, gblinear, 랜덤포레스트 등의 기본 학습기별 하이퍼파라미터 튜닝 등 활용 방법을 배우지만 어떤 데이터 셋이 주어졌을 때, 어떤 모델을 활용할 때 어떤 기본 학습기를 활용하는것이 유리한지와 같은 고수의 경험이나 모델 설계에 관한 부분이 조금 더 자세히 언급되었다면 XGBoost로 어지간한 데이터 분석은 거뜬히 해낼 수 있는 완벽한 구성이 되지 않았을까 약간의 아쉬움이 남는다.



      데이터 과학의 영역을 일반적으로 흔히 말하는 업무 도메인, IT, 통계 능력의 융합이라고 본다면 통계에 능숙하나 IT 활용력이 떨어지는 독자에게 제일 적합한 책이라는 생각이 든다. 매우 빠르게 XGBoost 알고리즘을 활용하고 API를 자유자재로 다룰 수 있을 것이다.


      또한, 데이터 분석의 초보자가 빠르게 앙상블의 생태계의 개괄을 이해하거나 XGBoost의 활용력 및 리터러시를 빠르게 키우는 것이 목적이라면 이 책은 주어진 시간 내 가장 큰 학습 효과를 안겨줄 수 있는 책이 될 것이라 생각한다.




    • https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=292185214 



       


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


      기본적인 머신러닝과 판다스부터 사용자 정의 변환기, 파이프라인과 희소 행렬로 새로운 데이터의 예측을 만드는 강력한 XGBoost 모델 튜닝까지 모두 다룬다. 또한 XGBoost의 탄생 배경과 XGBoost를


      www.aladin.co.kr








      01. 이 책을 고른 이유



      최근에는 딥러닝이 아닌 머신러닝에 대한 필요성이 생겼지만, 더이상 단순히 초급자용 책으로 이런저런 책에서 반복적으로 제시하는 내용 외 진짜 도움이 되는 책이 읽고 싶어졌다.



      Xgboost는 그 중에서 빼놓을 수 없는 방법론이고, 가장 즐겨 사용하는 라이브러리이기에 좀 더 세부적으로 익히고 싶다는 마음에 선택.






      02. 간단소개



      드디어 나왔다!
      우리가 원하던 그것!




      그렇다, 나왔다.



      우리가 원하던 그것.



      언제까지나 초심자, 초급자용 입문 도서만 주구장창 읽어대던 우리가 바라던 중급자 이상의, 실무에도 적용할 수 있는 책이다!



      이제는 누구나 다 알 것 같은 기본적인 설치와 머신러닝 소개는 최소화하고, 바로 트리 / 앙상블 / 그래디언트 / 부스팅 으로 넘어간다.



      또한 공식 문서를 봐도 이게 무슨 의미인지 파악하기 어려웠던 하이퍼 파라미터에 대한 설명 / 비교뿐 아니라 다르게 구현할 수 있는 방법까지도 소개한다!






      03. 이 책의 장/단점





      내용, 구성, 심지어 한국어판 부록까지도 훌륭하다!



      물론 제대로 xgboost를 사용하기 위해선 공식 문서를 참조해야 하며,



      영문으로 적힌 파라미터를 이해해야하는 것은 동일하다.



      또한 수많은 xgboost의 하이퍼 파라미터를 전부 설명하고 있지는 않으며, 



      각 파라미터의 상관관계라거나, 조합에 대해서 다루지는 않는다.



      이는 결국 실무의 영역에서 필요한 일이나, 이게 곧 이 책의 단점이 되지는 않는다.



      적어도 xgboost를 수차례 써본 사람이라도 보다 잘 xgboost의 개념을 이해하고,



      이를 기반으로 라이브러리를 구현하는 것에 큰 도움이 될 것이 분명하기 때문.



      만약 이 이상의 내용을 책으로 담거나 배우기란 어려울 것으로 보일 정도.






      04. 이 책의 구성 & 특징



      기본적인 구성은 트리 / 앙상블 / 그래디언트 / 부스팅과 관련된 라이브러리에 대해 소개하고, 그에 대한 기본 개념을 설명하며, 각 모델별 성능을 비교해가며 튜닝한다.



      이 과정에서 각 하이퍼 파라미터가 수행하는 기능을 통해 성능이 오르고 내리는 것, 그리고 다른 파라미터 혹은 모델과의 비교를 통해 보다 쉽게 각 방법론, 파라미터 조정의 효과에 대해 설명한다.



      최종적으로 본래라면 다루지 않았을 LightGBM이나, Catboost에 대해서도 한국어판 부록에서 소개하며, 이를 Xgboost 라이브러리를 통해 구현하는 방법을 같이 소개하며 유종의 미를 거둔다.



      위의 이유로 '머신러닝을 공부하는 사람''초심자만을 위한 책에 지친 사람''XGBoost 라이브러리를 더 잘 활용하고 싶은 사람'이라면 이 책을 강력 추천한다.







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


    • 본 포스터는 한빛미디어에서 [나는 리뷰어다]를 통해 책을 지원받아 작성한 리뷰 포스터입니다. 


       




       


      역자로 유명하신 박해선님의 최근 책이신 "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅" 입니다. 책 제목과 동일하게 모든 내용은 부스팅 트리 기반의 방법 설명과 XGBoost 위주의 이론 및 실습 내용, LightGBM과 Catboost 내용이 부록으로 설명되고 있습니다. 


       


      XGBoost와 LightGBM 논문을 보면 알겠지만 사실 굉장히 어렵습니다. 해당 책은 이론적인 부분에 대해서도 다루기는 하지만, 깊이는 그렇게 깊게까지는 다루지 않고 실질적으로 적용하는 사람들을 위해서 씌여진 책처럼 느껴졌습니다. 그래서, 해당 책을 읽고 XGBoost 를 적용할때 각 파라미터, 방법론들의 역할이 어떤 효과가 있는지에 대해서 알고 적용하기에는 좋아보였지만, 잘 적용되고 안되었을때 어떤 이유에 의해서, 어떤 원리에 의해서 안되었는지는 파악하기가 힘들 것 같습니다. (이론적 배경이 조금 약해보였습니다) 


       


      제가 정형데이터에 XGBoost와 LightGBM을 거의 5년가까이 돌려봐서 상대적으로 쉽게 느껴졌을 수도 있습니다. 개인적으로 XGBoost를 처음 공부할때 자료가 많이 없어서 공부하기 힘들었는데, 만일 그때 이 책이 있었으면 많은 도움이 되었을 것 같습니다. 하지만, 요새 XGBoost는 거의 안쓰고 LightGBM만 쓰는 추세인데 비슷한 부분이 많지만 엄연히 다른 알고리즘인데 트렌드에 좀 뒤쳐진 것은 아쉬운 점이었습니다. 




    • 머신러닝 알고리즘을 사용하다보면 보통 성능이 잘 나오는 트리계열의 알고리즘 위주로 사용하게 되는데 캐글이나 데이콘 대회를 볼 때도 트리 계열의 알고리즘들이 대체적으로 많이 사용되고 좋은 성능을 내는 편이다. 부스팅 계열 알고리즘은 여러 머신러닝 책에서도 다루기도 하지만 부스팅 계열의 알고리즘만을 다룬 책이라 부스팅 알고리즘을 제대로 배우고 싶다면 읽어보면 좋을 책이다.


      책을 읽기 위해 필요한 기술





      이 책을 읽기 위한 선수지식은 파이썬의 기본 문법과 행과 열에 대한 개념, 인덱싱 슬라이싱에 대한 이해인데 물론 다른 내용도 이해하고 있다면 더 좋겠지만 이 정도의 내용을 이해하고 있다면 만들어 보면서 필요한 내용들을 배울 수 있는 형태로 구성되어 있다. 그래서 가장 기본이 되는 결정트리 알고리즘부터 앙상블, 배깅에서 부스팅으로 이어지는 과정으로 설명하고 있다. 캐글에서 getting-started 대회 정도를 해봤다면 무리 없이 읽어볼 수 있지 않을까 싶다.


      옮긴이의 말





      옮긴이의 말이 부스팅 알고리즘을 너무 잘 설명하고 있어서 그간 배워왔던 방법의 오차를 잠시 되돌아 보기도 했는데 이 책의 역자 분은 번역 뿐만 아니라 책의 말미에 역자 부록을 대부분 추가해서 원서 그 이상의 책으로 번역을 해주신다. 이 역자분의 책을 읽을 때마다 배우고 싶은 모습이 많다.


      데이터 과학 전문가를 위한 XGBoost와 사이킷런 활용법





      이 책을 읽기 위한 최소한의 기술은 행과 열에 대한 개념, 슬라이싱, 함수작성, 메서드 호출 방법 정도라도 다루고 있는 내용은 실무를 위한 기본과 그 이상이다. 부록에서 다른 부스팅 계열의 알고리즘을 사용하며 스태킹 등의 기술을 소개하는 것도 인상적이다. 캐글이나 실무에서 좋은 스코어를 얻고자 한다면 이 책이 좋은 선택이 될 것이다.


      • 사례를 통한 사이킷런 API와 원본 파이썬 API 방식으로 XGBoost의 분류 모델과 회귀모델을 만드는 방법을 연습

      • XGBoost 하이퍼파라미터를 활용하여 성능개선, 누락된 값 수정 및 불균형 데이터 세트 적용

      • 기본 학습기 튜닝

      • 상관관계가 낮은 앙상블과 스태킹 모델 만들기

      • 모델 배포를 위해 희소행렬과 사용자 정의 변환기, 파이프라인 기술


      목차





      기본 결정트리를 이해하고 단계별로 앙상블과 배깅, 부스팅에 대한 개념을 이해하며, XGBoost의 수학적 이론, 모델 튜닝과 성능개선, 부록의 다른 부스팅 알고리즘까지 트리계열 알고리즘을 이해할 수 있는 체계적인 구성으로 되어 있다.


      한국어판 부록 다른 그레디언트 부스팅 라이브러리





      역자분이 번역한 책들의 대부분이 번역도 친절하지만 역자 분만의 한국어판 부록까지 있는데 XGBoost 외에도 다양한 경진대회에서 사용되고 있는 알고리즘을 소개하고 있다는 점이다. XGBoost와 함께 많이 사용되는 주요 부스팅 알고리즘과 사용법, 부록코드까지 제공하고 있다.


      LightGBM





      LightGBM 에 대한 소개와 함께 실습 예제도 함께 실려있다. 설명가능한인공지능(XAI)처럼 LightGBM의 리프노드에 대한 트리 시각화 예제가 있어서 인상적이었다.


      사이킷런의 히스토그램 기반 그레디언트 부스팅





      LightGBM에서 영향을 받은 히스토그램 기반 그레디언트 부스팅 구현에 대한 소개가 있고 누락된 값(결측치)를 따로 전처리 하지 않아도 된다는 특징이 있다. 자체적으로 특성 중요도를 제공하고 있지 않지만 permutation_importance 를 통해 실습 예제를 구성하여 어떤 피처가 중요한 역할을 하는지 시각화 해볼 수 있는 팁도 좋았다.


      CatBoost





      범주형 특성을 원-핫 형태로 변경하지 않아도 되는 범주형 데이터 처리가 편리한 Catboost 는 누락된 값을 처리하지 못하는 차이점 등을 설명하고 있으며 XGBoost와 비교하여 깊이별 성장 방식을 사용하지만 대칭적인 구조를 가지는 점, 깊이가 같은 노드는 모두 동일한 특성을 사용하여 분할하고 이를 통해 속도를 높이고 과대적합을 방지하는 설명이 있다. 또, 자체적으로 그리드서치와 랜덤서치를 제공하며, 부스팅 라운드에 따라 RMSE값을 비교해 볼 수 있는 예제를 제공하고 있다.


      트리계열 알고리즘을 단계별로 이해하고 체계적으로 사용하기 위해 이 만한 책이 또 있을까 싶다. 역자 분의 노고가 깃든 역서를 볼 때마다 배우고 싶은 점이 많다.


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


    • 머신러닝 알고리즘  XGBoost를 다루는 국내 최초의 번역서가 나와서 인기가 많은 책입니다.
      큰 분류에서 언급만 되고 있는 책은 몇가지 있지만, Desion Tree에 대해서 좀더 심도있게 다루고
      점차 기술적인 발전을 통해서 Gradient Booting까지 학습하기에 많은 내용이 상세히 설명되어 있습니다.
      위에서 언급한 XGBoost의 기술적인 포지션을 확인하고, 
      결정트리에 및 배깅, 부스팅 기법에 관심이 많은 독자분들이면 많은 도움을 받으실수 있습니다.
      ☞ Decision Tree (결정트리 머신러닝 알고리즘)을 학습 및 관심이 많은 독자분
      ☞ XGBoost를 조금더 세부적으로 학습하려고 하는 독자분
      ☞ XGBoost이후에 나온 다른 알고리즘 LightGBM, CatBoost기법에 대해서 관심 있는 독자분
      ☞ 캐글에서 XGBoost를 적용해보고 싶은 독자분
      책의 구성
      XGBoost에 대한 설명으로만 구성되어 있지 않고 결정트리에 대한 전반적인 부분이 Part1에 설명되어 있고,
      Part2,3에서는 심도있게 XGBoost에 대해서 설명이 됩니다.
      책의 흐름을 보면 결정트리의 흐름이 PART1에서 설명되어 지고
      PART2,3에서 XGBoost에  설명이 되어집니다.
      한국어판 부록에서만 추가된 내용이 있습니다.

      LightGBM, CatBoost에 대한 이론적인 부분과 예제코드를 통해서 기존 방식과 차이점을 제시하며

      활용가능하도록 언급되어 있습니다






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



      코리 웨이드



      수하과 예술분야 석사이고 버클리 코딩 아카데미의 설립자이자 이사로 전세계 10대들에게 머신러닝과 인공지능을 가르치고 있습니다. 또한 버클리 고등학교 독립 학습 프로그램의 수학 분야 의장으로서 프로그래밍과 고등수학을 가르치고 있습니다. 기초적인 자연어 처리를 가르치며 패스스트림과 데이터 과학 커리큘럼을 개발하고, 투워드 데이터 사이언스, 스프링보드, 미디엄에 통계학과 머신러닝 글을 기고합니다.






      본 도서는






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

























      이 책은 데이터 과학 전문가, 데이터 분석가, 빅 데이터를 빠르고 정확하게 처리하는 머신러닝 모델을 구축하려는 개발자를 대상으로 XGBoost의 개념과 하이퍼파라미터 튜닝까지 다루어준다.















      XGBoost를 다루어 줄 New Book!















       




       




       











       




      도입된 이유, 개념, 하이퍼파라미터 튜닝까지 다루어준다!











      무엇보다 박해선 선생님은 누구나 이해할 수 있도록 쉽게 설명해주신다.



      그냥 번역을 한 것이 아니라, 정말 쉽게 알려준다.






      박해선 선생님의 저자인, '혼자 공부하는 머신러닝과 딥러닝'의 판매량만 보더라도 알 수 있을 것이다.




















      마지막에는 캐글 마스터에게 배우는 XGBoost 활용법이다. 특성공학부터 시각화, EDA까지 함께 한다.





















      Kaggle, Dacon에서 필사를 하다보면 XGBoost, LightGBM과 같은 부스팅 계열의 모델로 높은 점수를 내는 것을 알았다.



      XGBoost가 무엇인가 해서 직접 찾아보았지만 번역하기가 힘들었다. 블로그도 보았지만 서로 다른 부분이 있어 뭐가 맞는지 헷갈린다.






      본 도서는 데이터 과학자, 데이터 분석가, 머신러닝 모델을 구축하려는 개발자에게 적합하다.



      파이썬에 익숙하고 선형 대수학의 기초를 알고 있다면 책을 읽는데 도움이 될 것이다.



      파이썬은 당연하고 선형 대수학에서 행렬을 잘 알고 있다면 이해하기 수월할 것이다.






      책 내용은 많이 어렵지 않았지만, 중후반에서는 어렵다.



      필자도 힌스 보손을 아직 읽지 않았다.














      힉스 보손











      XGBoost를 Kaggle 마스터에게 배워보는 A to Z 프로젝트


    •  


       




       



      목차
      1. 책 구성
      2. 장점/단점
      3. 마무리


      1. 책 구성



      서명 : XGBoost와 사이킷런을 활용한 그레이디언트 부스팅 캐글 고수에게 배우는 실전 파이썬 머신러닝, 코랩에서 실습 가능
      저자 : 코리 웨이드, 박해선 역
      출판사 : 한빛미디어
      페이지 수 : 380p
      구매링크 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5725043400




      용기내면 읽을 수 있는 두께


       


       



      2. 핵심


       






       


      XGBoost의 중고급으로 난이도 별 도전&이해를 할 수 있는 좋은 책이다.


       



      파이썬이나 머신러닝에 대한 이해가 있으면 좋고, 활용에 많은 내용이 담겨있었다. 특히, 초급자에게 필요한 내용이 많이 담겨있다. 책의 1/3정도는 머신러닝에 대한 개요가 담겨져있기에 XGBoost를 처음 접하는 사람도 잘 읽고, 코드를 따라나갈 수 있을 것같다.




      캐글 마스터에게 배우기란 9장이 참 좋았다. 캐글(https://www.kaggle.com/)이란, 데이터예측고 분석 대회 플랫폼이다. notebook이란 카테고리에서 의견을 나누고 더 좋은 선택을 할 수 있는 솔루션을 공유하고 있으므로 모델링을 하는 사람이 꼭 참고하고 참여했으면 한다. 국내에는 비슷한 플랫폼으로 데이콘(https://dacon.io/)이 있다. 캐글에 대해서 직접 격어보기전에 읽어본다면 노하우를 많이 받을 수 있을 것이다.


       



      3. 마무리



      페이스북에서 후기를 종종 보았다. 인터넷에서 후기가 종종 눈에 띄는만큼 이해하기 쉽게 작성된 글이다. 머신러닝에 대해서 살짝 더 자세히 들여다볼 수 있다.



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


    •  



      KakaoTalk_Photo_2022-05-28-21-21-22.jpg


       



      앙상블 기법은 여러 개의 모델의 결과를 모아 최종 결과를 산출하는 방법입니다.



      크게 배깅, 보팅 그리고 부스팅의 방법이 있습니다.



      XGBoost는 부스팅 계열의 방법인데, 오버피팅 등 여러가지 단점을 보안한 방법입니다.






      이 책은 결정트리, 배깅을 설명하고 그래디언트 부스팅 순으로 설명을 하고 있습니다.






      그리고 이론적인 설명을 하기전에 사이킷런으로 적용해보고 하이퍼파라미터를 설명하면서



      조금씩 이론적은 부분으로 진행하고 있습니다.






      이 책의 저자는 "실수가 발생했을 때 이를 만해할 방법이 얼마나 있으면 좋을까요, 마치 그래디언트부스팅이 이전의 실수를 보완하듯이 말이죠" 라고 말하고 있습니다.






      이 문장이 왜 우리가 XGBoost를 사용해야 하는지 잘 말해주는 것 같습니다.






      뜨문뜨문 알았던 여러가지 앙상블에 대한 내용을 이 책을 통해 체계적으로 다시 보게 되었습니다.









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


       


    • XGBoost와 사이킷런을 활용한 그레이디언트 부스팅 (책표지)


       



      > 책의 구성 및 내용



      이 책은 제목에 맞게 XGBoost  (그레디언트 부스팅 프레임워크 오픈소스 프로젝트)
      https://github.com/dmlc/xgboost에 대해
      왜 XGBoost를 사용하는지, 어떤 장점이 있는지에 대해 안내해주고 있습니다.
      일반적인 머신러닝의 회귀나 분류 등에 대한 자세한 설명보다는
      그레디언트 부스팅과 XGBoost 에 대한 설명이 초점을 두고 있어
      머신러닝에 대해 이미 알고있는 독자가 좀 더 쉽게 책을 읽을 수 있을거라 생각됩니다.



       


      GitHub - dmlc/xgboost: Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, S


      Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow - GitHub...


      github.com




       



      다양한 머신러닝 책을 쓰기도 하시고, 옮기기도 하신 박해선님께서 옮긴 책이여서 그런지
      예제소스 정리가 굉장히 잘정리되어 있어 각 챕터 실습하는데 굉장히 편했습니다.
      https://github.com/rickiepark/handson-gb



      책에서는 하이퍼파라미터 튜닝에 대해서도 많은 부분 할애하고 있는데
      각 파라미터에 대해 자세히 설명해주고 있어 
      성능향상을 고민하고 있는 독자들에게도 많은 도움이 될 것 같습니다.



      XGBoost 가 Kaggle 대회를 통해 명성을 얻은 만큼 
      책의 뒷부분에서는 Kaggle 대회에 대해서도 소개하고 있는데,
      기존에 Kaggle 이나 다른 머신러닝 대회에 관심있는 분들에게도 좋은 정보들이 많이 포함되어 있습니다.
      특히 Kaggle 팁으로 범주형데이터나, 누락 값에 대한 처리, 평균 인코딩 등
      개발자가 처음 Kaggle과 같은 대회를 접할 때 고려할 수 있는 다양한 팁이 있어서 좋았습니다. 



      Kaggle대회 XGBoost 우승 솔루션 : https://github.com/dmlc/xgboost/tree/master/demo#machine-learning-challenge-winning-solutions


       



      XGBoost 외에 그레디언트 부스팅 라이브러리 (LightGBM, CatBoost) 들도 마지막에 소개하고 있어
      그레디언드 부스팅 라이브러리에 대한 이해에 많은 도움이 되었습니다. 


       


       



      > 장점


      • 실습코드가 제공되고, Colab이나 jupyter를 통해 손쉽게 테스트가 가능하도록 구성되어 있습니다.

      • 코드를 통해 설명되고 있는 부분이 많아 읽기 편합니다.

      • 각 예시에 대한 출처들이 명확하게 기재되어 있어 관련 정보를 추가학습하기 편합니다.



      > 단점


      • 없음



      책읽기 필요사항


      머신러닝에 대한 기초, 파이썬/사이킷런/주피터 사용법을 미리 알고있으면 좋습니다.



      추천 독자



      XGBoost 에 대해 알고 싶은 개발자,
      회귀, 분류 문제를 XGBoost 를 통해 보다 빠르고 정확하게 풀고 싶은 개발자
      Kaggle 대회에 관심있는 머신러닝 개발자



      > 정보



      저자: 코리웨이드
      옮긴이 : 박해선
      출판사: 한빛미디어
      가격: 34,000원
      전체 페이지: 380페이지



      예제소스 : https://github.com/rickiepark/handson-gb



       


      GitHub - rickiepark/handson-gb: XGBoost와 사이킷런으로 배우는 그레이디언트 부스팅


      XGBoost와 사이킷런으로 배우는 그레이디언트 부스팅. Contribute to rickiepark/handson-gb development by creating an account on GitHub.


      github.com




       



       


       




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








    • 최근 한빛미디어의 책은 종이가 얇고 가볍다. 그래서인지 이 책은 380쪽 정도인데 200쪽정도의 두께와 가벼운무게가 들고 다니기 편하다.



      이 책의 저자는 코리웨이드님이고 역자는 박해선님으로 믿고보는 역자님 중에 한명답게 깔끔하고 일관된 실습예제가 따라하기 좋고 한국어판에서만 CatBoost와 LightGBM 이랑 사이킷런 부스팅 소개가 추가되었다고 한다. 원서는 대략 40달러로 환율이 올라 5만원이 넘는셈인데 내용도 많고 고급스러운 책을 3만원대로 구매할 수 있는 것에 감사하다.



      이 책의 내용은 머신러닝 실습책이다. 머신러닝을 설치하여 시작하고 실행하고 XGBoost를 사용하여 모델의 정확도를 향상하는 방법을 이해할 수 있게 잘 구성되어 있다. 또한 머신 러닝 파이프라인을 구축하고 하이퍼파라미터를 미세 조정하여 최적의 결과를 얻어내는 방법까지 알려준다. Bagging, Gradient Boosting, Random Forest의 기초가 될 수 있는 Decision Tree부터 자세하게 설명해주고 한국어로 잘 번역이 되어 있어서 큰 그림으로 이해하기 좋다.



      사실 내가 XGBoost를 처음 구경한 것은 6년전에 회사 맥북에 설치해서 모델구축을 한 번 해본 것이었다. 그 때 당시에는 여러가지 문제가 많아 3시간 가까이 헤맸었는데 지금은 너무 쉽게 설치되는 것이 놀라웠다. 물론 그 때보다 활용도는 많이 떨어졌지만 처음 접근하는 사람이 실습해보기에 매우 좋은 라이브러리라고 생각한다.



      이 책에서는 다양한 머신러닝 뿐만 아니라 Pandas 내용도 다루고 있고 참고할 만한 서적도 적절하게 추천해 주는 등 파이썬을 전혀 모르는 독자를 위해 친절하게 쓰인 책이다. 머신러닝이 무엇인지, 모델을 어떻게 개선해 나가는지, 파이프라인을 어떻게 구현하고, 불균형데이터세트를 어떻게 처리해야 하는지 등의 다양한 내용들을 쉽게 소개하고 있어서 수학식에 학을 떼고 수식만 파고 계신분들도 아주 재미있게 따라할 수 있는 책이라 많은 분들이 보면 좋을 거 같아 추천한다.






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








    • 요즘 개발자들은 익혀야 할 것들이 많다. 그중 하나가 기계학습(머신러닝과 딥러닝)이 아닐까? 예전에 비해 컴퓨팅 파워가 저렴해지면서 일반 개발자들도 기계학습의 기본 개념을 익히고 사용할 수 있게 되었다. 하지만 익히는 과정은 순탄하지만은 않다. 내 경우도  여러번 시도를 해보았지만, 수학식들에 파묻혀 내가 익히고싶던 주제를 잘 정복하지 못했다.


       


      이번에 살펴본 'XGBoost와 사이킷런을 활용한 그레이디언트 부스팅'의 가장 큰 장점은 잘 설계된 구성이다. 하나하나 예제를 따라가 보면서 지도학습 알고리즘의 개념과 다양한 모델이 나온 배경(개발자의 고민)을 이해할 수 있었다. 그래서 모처럼 머신러닝 책을 깔끔하게 완독했다.  아주 초심자용 책은 아니다. 기계학습에 대한 개략적 이해를 선행한 다음, 수학식에 파묻히기 보다는 이 책으로 예제를 통해 실용적인 관점으로 그레디언트 부스팅의 개념을 이해하는 것이 효과적이라 생각한다. 심화학습은 별개의 문제이다. 즉, 다르게 표현하자면 이 책은 지도학습분야에서 숲을 소개하는 책으로 느껴진다. 예제들은 널리 공개되어있는 데이터셋을 사용했는데, 데이터 자체의 특성이나 내용에 대한 소개는 조금 부족하다. 책이 전체적으로 지도학습 모델이 정확도를 높여가는 진화과정을 소개하는 형태로 구성되어 있다. 나에게는 이런 방식이 그동안 빠르게 발전해온 지도학습의 역사를 이해하는데 도움이 많이 되었다. 세세한 모델과 수식을 기대하는 독자들은 아쉬울 수 있겠다.


       


      원서의 경우 Packt에서 310쪽으로 출간했는데,  우리나라 버전은 박해선님이 매끄럽게 잘 번역하였다. 우리나라 버전은 380쪽으로 살짝 늘어났다. 하지만 Safari Book에서 제안하는 것처럼 약 6시간만에 읽을 수 있는 책은 아니다. 


       


      파이썬에 대한 기본 문법은 이해하고 있어야 읽기 수월하다. pandas나 numpy 패키지에 대해 간략하게 사용법을 소개하는 정도로 예제들이 구성된다. 이 부분이 부족한 사람들은 파이썬 책을 참고도서로 보면 좋겠다. 없어도 막히거나 할 수준은 아니다.


      나는 책에서 소개한 것처럼 아나콘다 버전을 사용하지 않고 직접 파이썬으로 필요한 패키지들을 설치하였다. 윈도우에서 실습해 보았는데, 내가 사용한 환경은 다음과 같다.


      • 파이썬 3.9.12

      • Numpy 1.22.3

      • SciPy 1.8.0

      • SciKit-Learn 1.1.0

      • XGBoost 1.5.2

      • Jupyter 1.0.0

      • Notebook 6.4.11

      • Pandas 1.1.4 


      PIP로 설치했는데, 별다른 이슈없이 잘 설치되었고, 예제 또한 책에서 소개된 대로 잘 진행되었다.


       


      지도학습을 프로젝트에 적용해 보고 싶은 개발자들에게 추천한다.



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


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


      캐글 초보의 험난탄 캐글 도전기



      한창 딥러닝에 대한 관심이 떠오를 무렵 다양한 커뮤니티를 돌아다니다 캐글에 대해 알게 되었다. 캐글에 대해 간단히 소개하자면, 구글의 자회사이며 데이터 과학자나 기계학습 연구자들의 온라인 커뮤니티이자 경쟁의 장이다. 3년쯤 전에 처음 캐글을 접하게 되면서 처음 데이터 분석에 발을 딛게 되었다. 


      대부분이 그렇지만, 캐글의 타이타닉 대회를 시작으로 향후에는 상금이 걸린 대회까지 입상을 하는 상상을 하며 도전해보았지만 생각보다 타이타닉 대회의 벽이 높게만 느껴졌다. 기계학습이나 데이터 분석에 대해 하나도 알지 못하는 상태로 도전하다 보니, "df.head()"를 통해 확인한 데이터 테이블의 벽은 높게만 느껴졌다.


      엄....


      도대체 SibSp라는 놈은 무엇이며, 어떤 데이터가 모델의 입력이 되어야 하고 어떤 데이터가 학습 라벨이 되어야 하는가, 도대체 Name, Cabin, Ticket은 어떤 용도로 사용하라고 넣어 놓은 것인가. 사실 데이터셋이나 대회에서 제공해주는 데이터 상세정보를 확인해 알 수 있기도 하고, 워낙 Titanic과 같이 유명한 대회의 경우에는 한국어로 된 유튜브나 블로그 자료를 통해 실습해보며 따라갈 수도 있었지만, 마음만 앞섰던 나는 빨랐던 마음만큼 포기도 빨랐었다.



      한 번의 좌절을 맛본 뒤 다시 생각날 때마다 틈틈이 도전해보고 있었지만, 여전히 밑바탕이 없었던 나는 단편적인 지식만 쌓아가며 작은 성장에만 만족해하며 가시적인 성과는 한 번도 얻어보지 못하였다. 이렇게 캐글을 깨작거리기만 하는 와중 "XGBoost라는 알고리즘이 쩔더라!" 라는 말은 들어보았지만, 실제로 왜 그런지에 대해는 알아볼 엄두도 내지 못하고 있던 와중 한빛 미디어의 나는 리뷰어다 이벤트를 통해 <XGBoost와 사이킷런을 활용한 그레이디언트 부스팅>을 리뷰할 기회가 생겨 뒤도 돌아보지 않고 신청해버렸다.


      인공지능 분야로 출발하기 위한 첫걸음




      이 책의 구성은 크게 3부분으로 나뉜다. 1부에서는 머신러닝의 개요에 대해 전반적으로 다루고 있다. 특히 데이터 분석의 기초가 되는 데이터 랭글링(데이터에 대한 이해도를 높이고, 학습에 필요한 데이터를 선택하고 불필요하거나 누락된 데이터를 처리하는 과정), 회귀 모델과 분류 모델에 대한 간단한 설명으로 출발하여 결정 트리(Decision Tree), 배깅과 랜덤 포레스트, 그레이디언트 부스팅에서 XGBoost까지 차근차근 짚어주듯이 넘어간다.


      2부에서는 본격적인 XGBoost에 대해 설명을 시작한다. XGBoost가 왜 유명해지기 시작했는지, 어떤 부분이 기존의 그레이디언트 부스팅과 차이가 나는지 설명해준다. 그리고 나서 XGBoost의 하이퍼파라미터에 대한 설명과 어떤 전략으로 튜닝을 할지 알려주고, 캐글의 외계행성 데이터셋을 활용해 실전 연습 과정을 보여준다.


      마지막 3부에서는 여러 학습기들이 작동하는 XGBoost 내부의 기본 학습기들에 대해 알아보는 내용과, 캐글 마스터의 데이터 분석과 모델링 과정을 담은 내용, 마지막으로는 XGBoost 모델을 배포하는 파이프라인을 알아보는 내용까지 담겨 있다.


      전반적인 책의 내용은 이제 막 데이터 사이언스 분야나 기계학습 분야에 입문자들이 높아만 보이던 캐글의 벽을 조금이라도 쉽게 넘어갈 수 있도록 구성되어 있어 책을 읽는 내내 다시 한번 캐글 대회를 도전해보고 싶다는 마음이 들도록 되어 있다. 물론 각 대회마다의 특성이 달라 딥러닝 네트워크까지 빠삭하게 알고 있어야 하거나, 데이터 분석만을 필요로 하는 대회도 있어서 이 책 한 권으로 캐글 마스터가 될 수 있지는 않겠지만, XGBoost와 사이킷런만 활용하여 리더보드에 이름을 올려보는 시도는 할 수 있을 것 같다.


      이 책의 장점과 단점


      앞서 말해온것 처럼 이 책은 캐글 초보자들이 중수까지 올라가기에 딱 좋은 발판으로 생각이 된다. 알고 있는 머신러닝 모델이 많지 않아 얼마나 깊이 있는지에 대해 알기는 어렵지만, 개인적인 인상으로는 하나의 내용을 깊게 파며 샅샅이 분석해보기보단 XGBoost와 사이킷런이라는 툴을 활용해 실제 캐글 대회에서는 어떻게 활용하면 좋을지에 대한 내용이 주를 이루고 있어 보다 실용적인 책이라는 느낌을 받았다.


      대체로 읽기 수월하고, 따라 치며 배우기 좋은 내용들로 가득 차 있어 만족스럽게 읽었다. 그럼에도 불구하고 개인적인 소소한 아쉬움을 하나 말하자면 모든 실습 내용에 전체 데이터에 대한 성능 분석은 담겨져 있지만 개별 데이터에 대한 결과 예시가 없는 점이 아쉬웠다. 물론 기계학습이라는 도메인의 특성상 그 결과를 시각적으로 담기는 어려울 수 있겠지만, 개별 데이터에 대한 시각화를 통해 내가 만든 모델이 특정 데이터에 대해선 이런 결과를 보인다는 것을 확인해보는 것 또한 실습 과정에서 필요한 경우라 생각되었지만 그러한 부분이 없었다.


      작은 아쉬움 하나만 빼자면, <XGBoost와 사이킷런을 활용한 그레이디언트 부스팅>은 XGBoost에 대해 알아보고 싶은 초보 캐글러라면 이 책을 통해 본격적인 리더보드 등반을 시도해 보는 것이 어떨까?

  • 내용이 없습니다.
  • 내용이 없습니다.
닫기

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