🌞 Statistics for AI

저번 포스팅에 이어서 XGBoost의 원리와 왜 확장성이 높은 알고리즘인가에 대해서 포스팅 하려고 합니다! 공식의 유도와 원리에 대한 이야기이기 때문에 전 포스팅을 보고 와주세요. XGBoost: A Scalable Tree Boosting System(Carlos & Tianqi. 2016) 리뷰 이번엔 XGBoost를 다루려고 합니다. 해당 논문을 읽고 정리한 내용이니 좀더 자세하고 이해하기 쉬운 설명은 다음 포스팅을 참고해주세요! 1️⃣ 서론 기계 학습과 데이터 기반 접근법이 많은 분 datanovice.tistory.com 📌 XGBoost 우선 XGBoost란 부스팅의 한 종류로 gradient boosting의 upgrade 버전으로 보시면 되겠습니다. Gradient Boosting과 같이 ..
이번엔 XGBoost를 다루려고 합니다. 해당 논문을 읽고 정리한 내용이니 좀더 자세하고 이해하기 쉬운 설명은 다음 포스팅을 참고해주세요! 1️⃣ 서론 기계 학습과 데이터 기반 접근법이 많은 분야에서 중요해지고 있다.(스팸 분류, 적절한 광고 노출, 사기 감지 등등) 이러한 성공적인 응용 프로그램을 이끄는 두가지 요소는 복잡한 데이터 종속성(상관)을 포착하는 효과적인 모델의 사용 대규모 데이터셋으로부터 관심있는 모델을 학습하는 확장가능한 학습 시스템 2015년 Kaglle의 29개 과제중 17개의 우승 솔루션이 XGBoost일 정도로 ML 및 데이터 마이닝 경쟁에서 큰 영향력을 발휘. 무엇보다도 오픈소스! XGBoost의 성공의 가장 중요한 요인은 모든 시나리오에서의 확장성(scalability)라고 하..
📌 Gradient Boosting Gradient Boosting은 Gradient descent와 boosting을 합친 것으로, 경사하강법과 부스팅 기법을 사용합니다. 경사하강법에서 loss인 $L(\theta)$를 최소화하기 위해 아래와 같은 방법으로 $\theta$를 업데이트 합니다. $$ \theta^{s+1} = \theta^s - \rho \dfrac{\partial}{\partial \theta} L(\theta) \big\lvert_{\theta^s} $$ 이 업데이트는 gradient인 $\nabla L(\theta^{s})$에 기반을 둡니다. 직관적이고 쉽게 봅시다. 📌 Why Gradient? 손실 함수(loss function)을 아래처럼 MSE(mean squre error)라..
오늘은 부스팅 중에 Adaboost에 대해서 알아볼까 합나디. 📌 Adaboost 특징 각 단계에서 새로운 모델을 학습하여 이전 단계의 모델의 단점을 보완 학습 오차(Training error)가 큰 관측치의 선택 확률(Weight, 가중치)을 높이고, 학습오차가 작은 관측치의 선택 확률을 낮춤. 즉, 오분류한 관측치에 보다 집중 앞 단계에서 조정된 확률(Weight, 가중치)를 기반으로 다음 단계에서 사용될 학습 데이터(training dataset)를 구성 다시 첫 단계로 돌아감 최종 결과물은 각 모델의 성능지표를 가중치로하여 결합(ensemble) 💻 Algorithm 이번엔 Adaboost의 알고리즘을 알아봅시다. 1. set $W_i = \frac1n, i =1,2,..., n$ (impose ..
📌 Variable importance measures.(요인 중요도) 단일 트리 모델의 경우 예측할 때 어떤 요인이 중요한지 쉽게 알 수 있습니다. 하지만, 여러 트리들을 묶어 사용하는 Bagging의 방법에서는 이러한 요인 중요도를 쉽게 얻을 수 없습니다. 예측 정확도가 높은 대신, 설명력이 떨어지는 것이죠. 설명력을 위해 어떤 변수가 중요한지 보는 방법을 2가지를 알아보고 후 포스팅에서 최근 유행하는 SHAP에 대해서 알아보려 합니다. ◼️ Mean Decrease Impurity(MDI) 회귀 트리의 경우, 주어진 예측 변수에 대한 분할로 인해 RSS(residual sum of squares)가 얼마나 감소되었는지를 모든 T개의 트리에 대해 평균화한 총량을 볼 수 있습니다. 쉽게 설명하면 어떠한..
앞서 1편과 2편을 보고와주세요. 적어도 1편은 봐주세요! 1. Bagging(배깅) : 왜 여러 모델을 쓰는가? 📌 Bagging(배깅) 배깅(Bagging)은 앙상블 학습 방법 중 하나입니다. 단일 모델, 즉 단 하나의 모델이 아닌 여러 개의 모델을 독립적으로 학습시킨 후에 결과를 투표 방식(Catrgorical 일 때) 혹은 평균으 datanovice.tistory.com 2. Bagging(배깅) : Out of bag error estimation 📌 Out of Bag(OOB) error estimation 앞서 배깅 1편을 보고와주세요. 1. Bagging(배깅) : 왜 여러 모델을 쓰는가? 📌 Bagging(배깅) 배깅(Bagging)은 앙상블 학습 방법 중 하나입니다. 단일 모델, 즉 단..
📌 Out of Bag(OOB) error estimation 앞서 배깅 1편을 보고와주세요. 1. Bagging(배깅) : 왜 여러 모델을 쓰는가? 📌 Bagging(배깅) 배깅(Bagging)은 앙상블 학습 방법 중 하나입니다. 단일 모델, 즉 단 하나의 모델이 아닌 여러 개의 모델을 독립적으로 학습시킨 후에 결과를 투표 방식(Catrgorical 일 때) 혹은 평균으 datanovice.tistory.com 1편에 이어서 설명하겠습니다. Bagging을 할 때, 부트스트랩으로 원 데이터 안에서 여러 하위 데이터들을 뽑아 낸다고 했습니다. 평균적으로, 각 부트스트랩 트리는 복원 추출이기 때문에 원 데이터의 2/3 정도를 사용합니다. 복원 추출에서 뽑히지 않은 나머지 1/3을 Out-of-Bag(OOB..
📌 Bagging(배깅) 배깅(Bagging)은 앙상블 학습 방법 중 하나입니다. 단일 모델, 즉 단 하나의 모델이 아닌 여러 개의 모델을 독립적으로 학습시킨 후에 결과를 투표 방식(Catrgorical 일 때) 혹은 평균으로(Continuous 일 때) 집계합니다. 쉽게 말하면 범주형 변수의 경우 10개의 모델 중에 8개 모델이 A로, 2개의 모델이 B로 예측하였을 경우, 투표방식으로 최종 A로 분류합니다. 연속형 변수의 경우 10개 모델의 결과를 평균을 내어 예측 값을 결정합니다. 이 bagging 방법은 다양한 모델을 학습하고 예측을 결합함으로써 모델의 분산을 줄이고, 예측 정확도를 향싱시킬 수 있습니다. 이름이 Bagging인데는 이유가 있습니다. 바로 Bootstrap aggregation(부트..
📌 PRUNING Tree 모델의 과적합을 막고 계산량을 줄이기 위해서 PRUNING이라는 것을 할 수 있습니다. Pruning은 가지치기라고 합니다. 하부 tree를 제거하여 깊이가 줄어드는 방법을 이용합니다. 아래와 같은 가정을 해봅시다. $T$ : 나무의 개수 $|T|$ : 나무의 터미널 노드 개수(맨 마지막 노드) $T_1, T_2, ..., T_k$ : 나무의 터미널 노드들 $r(T_i)$ : $T_i$노드에 할당된 class $L(i,j)$ : 손실 행렬 $P(T_i) = \sum_{j=1}^C \pi_jP(T_i,|j)$ : 여기서 $\pi_j$는 클래스 j에 대한 사전 확률 위 가정으로 $T_i$의 risk는 아래와 같습니다. $$ R(T_i) = \sum_{j=1}^C p(j|T_i)L(..
📌 Classification tree 기본적인 tree에 대해서는 아래 포스팅을 확인해주세요. 아래 내용과 이어서 설명할 것입니다. CART 1. 회귀나무(Regression tree)[재귀적 이진 분할 알고리즘] — 데이터 노트 📝 CART 1. 회귀나무(Regression tree)[재귀적 이진 분할 알고리즘] 📌 Regression Trees ML에 있어서 우리는 데이터를 사용하여 모델을 훈련시킵니다. 이 모델을 사용하여 새로운 데이터에 대한 예측을 하려하죠. 이때 예측하려는 데이터의 공간을 작은 부분들로 나 datanovice.tistory.com 기본적으로 회귀와 다르게 $Y$가 Categorical일 때 쓰는 '분류'입니다. 위 포스팅의 regression tree와 비슷한 맥락입니다. 차이..
Data_novice
'🌞 Statistics for AI' 카테고리의 글 목록 (5 Page)