서평

[나는리뷰어다] XGBoost와 사이킷런을 활용한 그레이디언트 부스팅

작삼심일 2022. 5. 21. 08:35

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

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

한창 딥러닝에 대한 관심이 떠오를 무렵 다양한 커뮤니티를 돌아다니다 캐글에 대해 알게 되었다. 캐글에 대해 간단히 소개하자면, 구글의 자회사이며 데이터 과학자나 기계학습 연구자들의 온라인 커뮤니티이자 경쟁의 장이다. 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에 대해 알아보고 싶은 초보 캐글러라면 이 책을 통해 본격적인 리더보드 등반을 시도해 보는 것이 어떨까?

 

 

728x90
반응형