Loading...
2021. 12. 11. 21:23

예시를 통해 이해하는 decision tree가 생성되는 원리

현재 딥러닝이 분류문제의 기본 상식으로 알려져있지만 이전에 고전적인 머신러닝에서는 decision tree를 이용하여 분류문제를 해결했습니다. decision tree는 주어진 dataset을 class별로 구별해나가는 하나의 tree를 생성하는 모형인데요. 어떤 식으로 구별해나가는지 그 원리를 예를 들어 설명하겠습니다. 주어진 dataset은 여러개의 feature를 가지고 있겠죠? 예를 들면 다음과 같은 dataset을 생각해봅시다. 현재 D1~D14까지 data를 outlook, temperature, humidity, wind라는 feature를 이용하여 target 변수인 play tennis의 yes or no 여부를 구분해야합니다. 현재 구분하기 전에 yes는 9개 있고 no는 5개 있습니다..

분위수 변환(quantile transformation)

1. quantile transformation의 이론적인 설명 주어진 데이터 $x _{1},x _{2} ,...,x _{n}$의 분포를 그려보니 다루기 힘들거나 마음에 안들어서 분포를 변환할 필요가 있다고 합시다. 주어진 데이터 $x _{1},x _{2} ,...,x _{n}$의 분포를 나타내는 누적확률분포함수 $F(x)$를 먼저 구해봅시다. 그런데 관측된 값으로는 이것을 구할 수 없으니 경험적 분포함수로 누적확률분포함수를 추정합니다. 주어진 데이터 $x _{i}$에 대하여 $F(X) \approx F(x _{i} )$로 추정했다고 합시다. 분포함수에 관한 theorem 1에서 "$X$의 누적확률분포함수가 $F(x)$라면 확률변수 $Y=F(X)$는 $U(0,1)$을 따른다”라고 했습니다. 이것이 무슨 ..

2021. 12. 6. 21:04

의사결정나무(decision tree)의 생성 원리

데이터가 무작위로 섞여있는 상태를 생각해봅시다. 이럴 때 우리는 무작위로 선을 그어 빨간색 데이터와 파란색 데이터를 구분하고자 합니다. 어떻게 그어야 가장 잘 분류를 했다고 말할 수 있을까요? 그러니까 빨간색과 파란색을 어떤 선을 그어서 구분을 해야 가장 잘 구분을 했다고 말할 수 있을까요? 직관적으로 한쪽 영역에는 순수하게 파란색만 존재하고 다른쪽 영역에는 순수하게 빨간색만 존재해야겠죠? 무작위로 섞여있는 불순물한 상태(impurity)에서 순수한 데이터들만 존재하도록 (purity) 영역을 구분하는 것이 데이터를 잘 분류한 것입니다. 다른 말로는 불확실하게 데이터가 섞여있는 상태에서 누구라도 확실하게 빨간색과 파란색을 알아볼 수 있도록 만드는 작업이 분류라는 것입니다. decision tree는 이러..

2021. 11. 3. 20:57

CatBoost 모형

그 이름 Cat가 categorical feature를 뜻하는데 categorical 변수에 최적화되어있다고 논문에서 주장하고 있습니다. “ Two critical algorithmic advances introduced in CatBoost are the implementation of ordered boosting, a permutation-driven alternative to the classic algorithm, and an innovative algorithm for processing categorical features “ 논문에서 언급하는 ordered boosting은 일반적인 boosting이 모든 데이터 row에 대해 gradient 업데이트 과정을 거쳤다면 Catboost는 다음..

Light GBM 모형

LightGBM은 그 이름 Light에서도 알 수 있듯이 computational cost를 줄이기 위해 여러 가지 고급기술?을 도입하였다고 합니다. 그 중 하나인 Gradient based one sided sampling에 대해 직관적으로 이해해봅시다. 위에서 gradient boosting 기법을 다시 한번 생각해보면 각 data row마다 residual을 계산하여 learning rate를 이용한 예측값을 갱신하는 과정이 있었습니다. 이것은 마치 data row가 가지는 gradient로부터 gradient descent를 하는 과정을 연상시키죠. 그런데 Gradient based one sided sampling은 이름에서도 알 수 있듯이 gradient를 기반으로 필요없는 데이터는 버리겠다는..

2021. 11. 2. 18:32

XGBoost 모델

1. XGBoost 모델 gradient boosting의 약점은 train data에 대해 한없이 loss인 residual을 줄여나가니까 overfitting되기 쉽다는 단점이 있습니다. 이런 단점을 인식하여 나온 방법이 XGBoost입니다. XGBoost는 실제 값과 예측 값의 차이를 일반적인 loss에 regularization term을 더하여 이것을 줄이는 방향으로 학습을 진행합니다. loss function도 단순한 MSE같은 차이뿐만 아니라 다양한 loss function을 사용하여 task에 따른 유연한 튜닝을 가능하게 하였다고 합니다. 2. parameter norm penalty parameter norm penalty 기법은 loss function에 norm penalty를 더하는..