Loading...
2021. 12. 6. 21:04

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

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

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를 더하는..

2021. 11. 1. 19:25

Adaboost 모형

boosting 알고리즘 중에 여러개의 model을 만들어 voting시킨다는 것이 조금 이상하다는 생각이 들 수도 있을 것 같습니다. boosting에서 말한 알고리즘 중 두 번째 알고리즘이 Adaboost인데요. 조금 더 구체적이지만 아주 간단하게? 설명하자면 다음과 같습니다. 전체 train data에서 random하게 data를 뽑습니다. random하게 data를 뽑은 sample로 하나의 model A를 학습합니다. 참고로 Adaboost에서 사용한 model A는 random forest가 완전한 tree를 사용하던 것과는 조금 다르게 두 개의 leaf만 가지는(1번만 분기하는) stump라는 tree를 사용합니다. 학습한 A로 전체 train data에 대해 validation을 수행합니다..

2021. 10. 28. 19:48

random forest 모형

bagging방식에서 bootstrap sampling을 한 data set에 적합시키는 model이 decision tree이면 random forest 알고리즘이 됩니다. 그 이름이 forest인데 여러개의 tree들이 모이면 forest가 된다는 점에서 상당히 어울리는 이름이라고 할 수 있습니다. 몇가지 핵심 아이디어를 나열해보면 다음과 같습니다. bootstrap에 기반하므로 tree를 학습시키는 데이터는 동일한 데이터 row가 포함될 수 있습니다. 다음으로 데이터로부터 decision tree를 성장시킬 때 feature에 대해 information gain이 가장 큰 feature를 선택하여 성장시켰는데 random forest는 데이터의 모든 feature의 information gain을 ..

2021. 10. 27. 18:24

bagging이란?

1. bootstrap sampling 1-1) 주어진 하나의 data set에서 매 회 일부를 random sampling하여 여러 개의 data set을 구성하는 방법입니다. 예를 들어 100개의 data가 존재하는 하나의 data set이 있을 때 5번 30개씩 random dampling한다면 30개, 30개, 30개, 30개, 30개씩 데이터가 존재하는 총 5개의 dataset을 얻게 됩니다. 통계학적으로는 단 1set로 통계량을 추정하면 불확실하게 추정할 수 있는데 여러 set로 통계량을 추정하면 더욱 확실하게 추정할 수 있는 효과를 가집니다. 딥러닝에서는 데이터가 충분하지 않더라도 여러 데이터 set을 활용할 수 있으므로 ensemble효과를 가집니다. 1-2) 보통 여기까지는 다들 알고있지..