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

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

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

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을 ..