본문 바로가기

Machine Learning/Business Analytics 2

(8)
4-9 : Ensemble Learning - CatBoost 자료 출처 catboost의 저자들은 categorical feature를 처리하는데 사용되는 target statistic이 target leakage와 prediction shift 문제가 발생하며 이를 각각 ordered target statistics와 ordered boosting을 사용함으로써 해결할 수 있다고 주장한다. 그럼 먼저 기존에 사용되던 target statistics(TS)에 대해서 알아보자. Categorical features in boosted tree Greedy TS without smoothing 각 카테고리에 대해서 expected target value를 계산하며 수식은 다음과 같다. i는 categorical feature이며 k는 training example i..
4-8 : Ensemble Learning - Light GBM 자료 출처 MS에서 개발되었고 XGBoost와 마찬가지로 Conventional GBM이 information gain을 계산하기 위한 split point를 모든 데이터 객체에 대해서 스캔하기 때문에 시간을 단축하기 위해서 고안되었다. Idea 데이터 객체의 수와 feature의 수를 줄이기 위함 Gradient-based One-Side Sampling (GOSS) 서로 다른 gradient를 갖는 데이터 객체는 information gain 계산에서 서로 다른 역할을 한다. 그러니까 각각 gradient가 다르다고 이해할 수 있다. gradient가 큰 객체는 유지하고 gradient가 작은 객체는 샘플링을 통해 무작위로 drop한다. Exclusive Feature Bundling (EFB) 상호..
4-7 : Ensemble Learning - XGBoost 자료출처 XGBoost는 기본적으로 GBM의 철학을 따라가되 어떻게하면 더 빠르고 대용량의 데이터에 대해서도 처리가 가능한지에 대한 고민에서 출발한 알고리즘이다. 이를 위해 근사 알고리즘을 사용하여 약간의 성능 저하가 있을 수도 있지만 대용량의 데이터를 다룰 수 있는 병렬처리 기법 등을 통해서 이러한 단점을 보완한다. 이 포스팅에서는 하드웨어적인 부분은 다루지 않고 꼭 이해해야할 알고리즘 관련한 부분만 다룬다. Split Finding Algorithm Basic exact greedy algorithm 의사결정나무에서 split을 위해 사용하는 알고리즘이다. 장점 모든 가능한 split point를 다 찾아보기 때문에 항상 최적의 split point를 찾는다. 단점 데이터가 너무 커서 메모리에 다 들..
4-6 : Ensemble Learning - Gradient Boosting Machine (GBM) 자료 출처 Gradient Boosting은 Gradient Descent 알고리즘과 Boosting이 결합된 알고리즘이다. Adaboost의 경우 forward stage-wise 방법으로 additive model을 만들고, 각 단계에서는 이전의 weak learner를 보완하는 새로운 weak learner를 제시하는 형태로 학습이 진행되었고, 잘 학습되지 않았던 shortcomings에 대해서는 다음 데이터셋에서 shortcomings의 weight을 조정하는 방법으로 모델을 학습시켰다. 반면에 Gradient Boosting에서는 shortcomings들이 gradient에 반영이 된다. 손실함수의 복잡도 측면에서 regression이 GBM 알고리즘을 직관적으로 이해하기 쉽기 때문에 regre..
4-5 : Ensemble Learning - Adaptive Boosting (AdaBoost) 자료 출처 Boosting : AdaBoost Idea strong model vs weak model random guessing보다 약간 더 좋은 성능을 가진 weak model을 정확한 strong model로 향상(boosting) 시킬 수 있다. boosting 과정을 간단히 살펴 보자면 다음과 같다. 학습 데이터 준비 weak model 생성 이전 weak model 어려워한 케이스들에 대해 학습 데이터의 샘플들의 가중치를 재조정 가중치가 재조정된 학습 데이터로 다음 weak model 생성 반복 여러 번 반복으로 만들어진 weak model들을 결합하여 하나의 strong model을 만듬 정리해보자면 각 라운드마다 새로운 모델을 훈련하여 순차적(sequential)으로 모델을 훈련한다. 각..
4-4 : Ensemble Learning - Random Forest 자료 출처 Random Forest 반드시 base learner를 decision tree로 하는 특별한 bagging 2가지 방법으로 앙상블의 다양성을 증가시킨다. bagging 무작위로 선택된 예측 변수들 : p개의 예측 변수가 있다면 (p > m)을 만족하는 m개의 변수만 선택 왼쪽은 bootstrap으로 생성된 i번 째 데이터셋이고 $x_1$ ~ $x_{25}$까지 25개의 변수를 갖고 있다. 오른쪽은 recursive partitioning을 표현한 것인데. 매 split point마다 random하게 선택된 변수들만 가지고 partitioning을 수행한다. 그러다보니 당연하게도 모든 변수를 다 사용했을 때 보다 information gain이 낮아질 수 있다. 그럼에도 왜 좋은지 의문이 들..
4-3 : Ensemble Learning - Bagging 자료 출처 Sampling without Replacement 앙상블의 key는 다양성인데 data의 다양성과 model의 다양성 2가지가 있다. Bagging은 전자를 목적으로 한다. k-fold data split 데이터를 k개의 fold로 나눈뒤 k개의 개별적인 모델을 각각 (k-1)개의 fold로 학습시킨다. 이론적으로는 개별 모델들이 독립적이라면 앙상블의 에러는 개별 모델들 보다 k배 만큼 작을 것이다. 하지만 어떤 $f_i$ 모델과 $f_j$ 모델을 고르더라도 무조건 (k-2) 개의 fold는 공통이다. 따라서 독립적이라고 보기 어렵다. 최종 output은 다음과 같다. k-fold 방식으로 학습하는 방법론은 잘 쓰이지 않는 사장된 방법론 이라고 한다. Bootstrap Aggregating ..
4-2 : Ensemble Learning - Bias-Variance Decomposition 자료 출처 서로 다른 모델들은 다른 클래스 바운더리나 fitted functions을 제공한다. 어떠한 single best model도 다른 알고리즘들에 비해서 우월하다는 결론을 내릴 수 없기 때문에 다양한 모델들이 기저가 된다. 이론 배경 데이터가 additive error를 가진 모델에서 나온다고 가정해보자 $F^*(x)$는 우리가 학습하려고 하는 target function이다. error들은 각각 독립적이고 동일한 분포에서 발생되었다. $F^*(x)$을 추정하기 위해 서로 다른 데이터셋들로 부터 만든 함수를 $\hat{F}_N(x)$이라 한다. $\hat{F}_N(x)$들을 average한 것이 $\bar{F}(x)$라 한다. 특정한 데이터 포인트에서 MSE 에러가 어떻게 발생하는지 알아보자 2..