|
[나의 한줄 추천사] 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와 사이킷런을 활용한 그레이디언트 부스팅 대상: 머신러닝 입문자 2022년 지금은 인공지능이라는 키워드가 학계와 산업 분야 뿐만 아니라 대중에게도 꾸준히 노출되는 시기이다. 예전엔 상상도 하지 못한 다양한 작업들이 인공지능을 통해 이루어지고 있으며, 그 형태도 상품 추천 및 의사 결정의 수준을 넘어 이미지 생성, 자연어, 자동 코드 작성 등 창작의 영역에도 이미 깊숙히 스며들고 있다. 그에 따라 인공지능이 다루는 데이터의 형태도 점점 다양해지고 있다. 인공지능 모델을 사용할 때 가장 기본적인 데이터는 행과 열로 구성된 테이블 데이터 (tabular data)이다. 이미지 및 언어 등과 같이 복잡한 자료에 비해 테이블 데이터는 인공지능 모델을 구축하기에 매우 편리하다. 테이블 데이터는 기본적으로 행 (row)을 샘플, 열 (column)을 특성으로 가지는 1차원 벡터 자료이다. 이러한 테이블 자료를 모델링하는데 매우 좋은 성능을 내는 모델이 바로 Extreme gradient boost (XGBoost) 모델이다. 이 책에서는 누구나 XGBoost 모델을 사용할 수 있게 쉽게 안내하고 있다. 책의 목차는 다음과 같다. 이 책의 장점은 1장부터 곧바로 XGBoost를 활용하여 모델링을 시작한다는 것이다. 1장부터 먼저 XGBoost 적용 방법을 소개하고, 2-4장에서는 tree, bagging, random forest, boosting에 대한 간략한 설명과 Scikit-learn을 활용해서 모델링하는 예시를 보여준다. 같은 예시에 대해 여러 모델을 사용함으로써 직접적으로 성능을 비교하면서 간단한 모델 설명을 함께 하는 점은 입문자에게 큰 도움이 될 것이라 생각한다. 5장에서는 모델 최적화에 대한 수학적인 설명이 간단히 소개된다. 6장은 제공되는 함수에 대한 여러 파라미터에 대해 설명한다. 7장에서는 예시를 통해 over-, under-sampling 및 grid search등에 대해 소개하기 때문에 실전에서 필요한 부분에 대해 잘 소개한다. 나머지 장에서도 예시를 통해서 다양한 함수 및 파라미터에 대해 설명하고 있다. 파라미터를 변경함에 따른 성능 변화를 다뤄주고 있기 때문에, 직접적으로 예제를 따라서 모델링을 하지 않아도 책을 통해 대략적인 성능 차이를 예상할 수 있다는 것이 이 책의 장점이라 생각한다. XGBoost 함수에 대한 파라미터를 다양하게 설명하고 있어서, 기대했던 것보다 실전에서 큰 도움이 될 것으로 보인다. 머신러닝에 입문하는 사람과, 머신러닝 경험은 있지만 XGBoost를 본격적으로 사용하고 싶은 사람 모두에게 이 책을 추천한다. |
|
캐글이나 데이콘 같은 데이터 분석 대회에 나가면 일단 쉽게 보이는 모델들이 XGBoost와 cat boost, Light GBM과 같은 부스팅 기법들이다. 이 기법들은 있는 모델을 그대로 활용한다면 사용방법이 그닥 까다롭지도 않은데, 심지어 왜인지는 모르겠지만 성능도 제법 잘나오는 편이다. 따라서 많은 사람들이 사용하고 있고, 나 역시도 일단 뭔지는 몰라도 써보자라는 마음으로 이 모델을 종종 쓰곤 했다.
그러나 이런 식으로 해도 언제까지나 더 나은 성능을 기대할 수는 없다. 어느정도는 보장이 되겠으나, 그저 만들어져 있는 모델만 의존해서 아무 생각 없이 사용하는 방식은 일정 수준 이상의 성능을 보이기는 어렵다. 따라서 XGBoost가 도대체 뭔데?라는 생각에 이 책을 읽게 되었다.
여담이기는 하지만, 한빛미디어 책들은 어느정도 공통적인 책의 레이아웃을 가지고 있어서 처음보는 책이라도 익숙한 느낌이 드는 것 같은 장점이 있는 것 같다.
이 책은 파이썬과 선형대수의 기초가 있는 사람들에게 권장되는 책이다. 다만 선형대수의 경우 행렬의 행과 열을 알고 있다면 충분하다고 한다.
우선 모델의 예시를 보여주고, 그 후에 각 파라미터에 대해 소개되어져 있는데, 차차 읽어가며 이해해 보려 한다. * 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
|
|
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 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를 많이 안써보거나 제대로 써보고 싶은 분들에게 적극적으로 추천하는 책입니다. |
|
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
장점
단점
후기
|
|
인공지능 붐이 인지 제법 시간이 되어가는데 그 열기가 식을줄 모르는 것 같다, 덩달아 관련 책들이 서점에 도배하다 시피 진열되어 있다.
2018년, 2019년까지는 다양한 입문서 위주로 책들이 나왔던것 같고 2020년부터는 다양한 활용서, 중급이상의 고급 기술서 그리고 새로운 모델과 기술들에 대한 내용을 다루는 책들도 점차 많아지고 있다. 이제 우리가 하는 흔한 CNN, RNN 등등을 설명하는 책들보다는 최소 한단계 수준이 높아졌다고 봐야할듯 그만큼 관련 분야가 보편화되고 매우 빠르게 발전하고 있고 그 발전에 대한 내용을 책을로 엮어내는 경우가 많아졌다는 의미일테다... 그리고 인공지능에 필요한 수학들을 다루는 책들도 많아졌고...
그런의미에서 그레디언트 부스팅, 그중에서도 XGBoost를 설명하고 있는 재미난 책이 한권이 출판된 것 같다. ![]() ![]()
앙상블 알고리즘을 크게 배깅과 부스팅으로 나눌수 있는데 그레디언트 부스팅은 그중 부스팅 계열 앙상블 알고리즘이다. 그레디언트 부스팅 알고리즘은 회귀분석 또는 분류를 구행하는 예측모형으로 tabular format data(row와 column 형태의 table 형식)에 대한 예측 성능이 가장 높다고 알려진 알고리즘이다.
이를 지원하는 주요 패키지로 LightGBM, CatBoost, XGBoost 가 있는데 이 책은 그중 XGBoost와 사이킷런을 이용하여 그레디언트 부스팅을 수행하는 방법을 설명하고 있다.
번역은 유명한 박해선님이 맡아서 진행을 했고 그레디언트 부스팅에 대한 출간된 단행본이라 내용도 모델의 성능을 고민해보는 분들에게 좋은 지침이 될 만하다 생각한다.
번역서에는 원서에 없는 LightGBM과 CatBoost 관련 내용도 부록에 수록해놨으니 XGBoost와의 차이나 개별 모듈에 대한 특징을 간단하게나마 살펴보고 비교해 볼 수 있을 꺼라 생각한다.
흔하디 흔한 머신러닝/딥러닝 책에 식상함을 느낀다면 꼭한번 책겨볼만한 좋은 책이라 생각한다.
※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다. |
|
저도 데이콘에서 데이터가 많이 없는 경진대회의 경우 머신러닝 모델을 많이 사용합니다. 그중에서도 XGBoost, LightGBM, Catboost 등을 애용하고, 이들을 스태킹 하는 방법을 주로 사용합니다. 이 책도 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는 Kaggle 대회를 통해 명성이 높습니다.
캐글 우승자들은 XGBoost를 사용해 좋은 성적을 거뒀습니다.
캐글 대회의 데이터셋을 사용한 실전 예제도 많이 담겨있습니다.
캐글은 구글의 자회사인데요. 데이터 과학자나 기계학습 연구자들의 온라인 커뮤니티 활성화가 잘 되고 있습니다.
머신러닝 최강자인 XGBoost 관련 책을 소개해드리려 합니다.
소개해 드릴 책은 'XGBoost와 사이킷런을 활용한 그레이디언트 부스팅'입니다.
XGBoost와 그레이디언트 부스팅를 어떻게 활용하는지 알아보겠습니다.
1) 앙상블 상관관계 앙상블에 모델을 포함할 땐 상관관계를 확인해야 합니다.
상관관계가 높은 머신러닝 모델의 경우 앙상블에 포함하지 않는 것이 좋습니다.
왜냐하면 분류를 할 때 동일한 예측의 경우 성능 향상이 없습니다.
반대의 경우는 앙상블 모델을 돌릴 경우 향상된 성능을 보입니다.
편향과 분산이 줄어들면 성능이 향상된다고 생각할 수 있는데요. 줄더라도 앙상블 모델이 성능 향상이 되지 않는 경우도 있습니다.
2) 그래이디언트 부스팅 그레이디언트 부스팅을 아시나요? 그레이디언트 부스팅은 이전 예측기가 만든 잔여 오차에 새로운 예측기를 학습시키는 방법입니다.
그레이디언트 부스팅은 얕은 결정트리를 사용하는데요. 이진 트리의 오차를 보완하는 형태로 앙상블을 할 수 있습니다.
과대적합할 때 그레이디언트 부스팅은 강합니다.
학습률을 증가시켜도 트리의 개수가 늘리면 조금 더 향상된 성능을 낼 수 있습니다.
Ps 코드랩과 주피터로 머신러닝 실습을 쉽게 할 수 있습니다.
책의 저자는 머신러닝 관련 서적도 많이 썼습니다.
이 책은 한국 독자를 위해 또 다른 유명한 그레이디언트 부스팅 라이브러리인 LightGBM, CatBoost가 포함되어 있습니다.
"한빛미디어<나는리뷰어다>활동을위해서책을제공받아작성된서평입니다."
|
|
한빛미디어의 "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅” 도서를 소개합니다.
XGBoost에 대한 글들을 우연히 보게 되어 관심을 가지던 차에 "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅" 리뷰 기회를 얻어 읽게 되었습니다. 사실 부제에 해당하는 "캐글 고수에게 배우는 실전 파이썬 머신러닝, ..."에 호기심을 가지게 된 것인데, XGBoost 기반으로 캐글 대회 우승을 차지했다는 내용들 때문이었습니다.
XGBoost을 알려면 우선 부스팅이란 앙상블(Ensemble) 기법을 알아야 합니다. 부스팅은 몇 가지 모델을 결합하여 정확한 모델을 만드는 방법으로, 각각의 예측 결과를 기반으로 강한 모델을 만든다고 볼 수 있습니다. 2장에서 4장까지는 XGBoost의 이해를 위해서 "그레이디언트 부스팅"을, 그 전에 "배깅 앙상블과 랜덤 포레스트"를, 또다시 이를 알기 위해서 이전에 "결정 트리"를 알아야 하기에, 이를 역으로 설명하고 있습니다.
4장을 마무리하면서 아래와 같은 글이 있습니다. XGBoost을 왜 배워야 하고, 적용해야 하는지, 예측 데이터셋으로 비교해보면 속도 차이가 엄청나다는 것을 알 수 있습니다.
도서의 전체적인 구성은 PART 1에서 배깅과 부스팅을, PART 2에서 XGBoost 기본 이론을, PART 3는 고급 XGBoost 기법들을 배울 수 있도록 구성하였습니다. 따라서 XGBoost 자체 뿐만 아니라, Part 1/2/3 과정을 통해서 기초가 되는 결정트리, 부스팅, …등과 같은기본 이론을 쉽고 차근차근 배울 수 있는 도서입니다.
5장에서는 힉스 보손 대회를, 7장에서는 외계 행성 탐사라는 주제를 다루는데, 도서가 이론 뿐만 아니라 실습에 대한 비중이 꽤 높다는 점입니다. 개인적으로 마음에 들었던 몇가지 부분이었는데, 7장의 경우 외계 행성 데이터셋을 소개하면서 외계 행성 탐사 역사도 담고 있고, 데이터셋을 가지고 그래프와 분석하는 내용을 담고 있습니다. 왜 책의 부제가 "캐글 고수에게 배우는 실전 파이썬 머신러닝”인 것인지 알 수 있습니다.
디테일한 부가 설명 또한 본 도서가 이론을 다양한 소스로부터 배울 수 있도록 유도합니다.
가장 마음에 들었던 내용인데, “역자노트”를 통해 머신러닝 전문가인 역자의 풍부한 이론을 전달하기에, 본서보다 가치가 높다고 생각합니다.
역자의 도서를 몇권 가지고 있고, 이를 통해 머신러닝을 접하다 보니 역자의 출간 도서에 관심이 많았습니다. 사실 본 도서 역시 저자보다 역자를 통해 리뷰 신청을 하게 되었죠. "XGBoost와 사이킷런을 활용한 그레이디언트 부스팅”라는 도서 한권을 통해 사이킷런 뿐만 아니라 결정 트리나 부스팅과 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 로 설치하도록 하여야 합니다.
pip3 install xgboost --user 실행 하였을 시에, 아래의 오류 메시지가 발생 한다면.
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 각 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
|