요즘 개발자들은 익혀야 할 것들이 많다. 그중 하나가 기계학습(머신러닝과 딥러닝)이 아닐까? 예전에 비해 컴퓨팅 파워가 저렴해지면서 일반 개발자들도 기계학습의 기본 개념을 익히고 사용할 수 있게 되었다. 하지만 익히는 과정은 순탄하지만은 않다. 내 경우도 여러번 시도를 해보았지만, 수학식들에 파묻혀 내가 익히고싶던 주제를 잘 정복하지 못했다.
이번에 살펴본 '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로 설치했는데, 별다른 이슈없이 잘 설치되었고, 예제 또한 책에서 소개된 대로 잘 진행되었다.
지도학습을 프로젝트에 적용해 보고 싶은 개발자들에게 추천한다.
종이질은 살짝 아쉽다. 빛 반사가 있는 지질이라. 스탠드 아래에서 보면 반사되어서 글이 잘 안보인다. ㅠㅠ
한 챕터씩 읽을때마다 개념들을 익히는 즐거움은 있지만... 기억에 남는 건 model 만들고 데이터셋을 split한 다음, model에 fit해서 테스트 데이터 넣어보고....평균 오차 뽑고.. 반복.