품목정보
발행일 | 2022년 04월 08일 |
---|---|
쪽수, 무게, 크기 | 380쪽 | 652g | 183*235*15mm |
ISBN13 | 9791162245392 |
ISBN10 | 1162245395 |
발행일 | 2022년 04월 08일 |
---|---|
쪽수, 무게, 크기 | 380쪽 | 652g | 183*235*15mm |
ISBN13 | 9791162245392 |
ISBN10 | 1162245395 |
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 머신러닝 파이프라인 구성하기 10.5 마치며 APPENDIX A (한국어판 부록) 다른 그레이디언트 부스팅 라이브러리 A.1 LightGBM A.2 사이킷런의 히스토그램 기반 그레이디언트 부스팅 A.3 CatBoost |
[나의 한줄 추천사]
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 모델을 사용할 수 있게 쉽게 안내하고 있다.
책의 목차는 다음과 같다.
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를 본격적으로 사용하고 싶은 사람 모두에게 이 책을 추천한다.
요즘 대기업에서는 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장부터 학습하시는 것이 좋을것 같습니다.
개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 실습 예제 및 비즈니스 케이스가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.
저의 리뷰를 읽어주셔서 감사합니다. 다음에는 좀더 유용하고 좋은 책으로 더 나은 리뷰를 통해 여러분께 책을 소개시켜드릴 수 있도록 더 노력하겠습니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."