ice rabbit programming

[AI] 의사 결정 트리(1) - 회귀, 분류, 앙상블 본문

Development/Machine Learning

[AI] 의사 결정 트리(1) - 회귀, 분류, 앙상블

판교토끼 2021. 3. 12. 00:48

의사 결정 트리(Decision Tree)는 복잡하고 이해하기 어려운 모델들을 시각적으로 쉽게 이해할 수 있도록 해준다. 

이진 트리(Binary Tree)와 비슷한 컨셉으로 생각하면 되는데, root node부터 출발해서 질문에 따라 분기되어 terminal node까지 연결된다. root node에는 모든 데이터가, terminal node에는 예측값이 들어 있다.

의사 결정 트리는 회귀, 분류 모두에 적용이 가능하다.

의사 결정 트리 - 회귀

  • 위에서 아래로 갈수록 데이터의 구역을 나눈다.
  • 특정 구역에 데이터가 있으면, 그 데이터의 예측값은 해당 구역의 평균값이 된다.
  • 구역은 RSS(데이터 실제값과 예측값의 오차 제곱의 합)가 최소화 되는 구역을 선택

위에서부터 내려오면서 순간마다 최선의 선택(Greedy)을 하는 방식이다.

의사 결정 트리 - 분류

분류에서는 평균값을 쓰지 않으므로 회귀처럼 RSS를 사용할 수 없다. 여기서 나오는 개념이 불순도(Impurity)라는 것이다.

불순도(Impurity)는 다른 데이터가 섞여있는 정도이다. 예를 들어 A가 3개, B가 2개면 A가 4개 B가 1개일 때보다 불순도가 높다. 분류에서는 이 불순도가 최소화되는 구역으로 나눈다.

앙상블

의사 결정 트리는 트리의 depth가 깊어질수록 과적합 발생 가능성이 높아지게 된다. 단일 모델을 사용하면 과적합 발생 확률이 높으므로, 이를 해결하기 위해 여러 개의 의사 결정 트리를 사용하는 컨셉이다.

앙상블에는 크게 투표, Bagging, 부스팅 기법이 있다.

앙상블 - Voting(투표)

여러 모델의 예측 결과값을 활용한 투표를 통해 최종 예측값을 결정한다. 투표란 용어처럼 많이 선택된 값이 될 수도 있지만, 평균 등 여러 예측 결과값을 이용해서 최종 값을 구한다고 이해하면 된다. 회귀는 예측값의 평균, 분류는 다수결 혹은 확률의 평균 등을 채택할 수 있다.

앙상블 - Bagging(Bootstrap Aggregating)

복원 추출을 통해 랜덤 추출한 데이터 셋(set)을 생성하고, 각 데이터를 모델 학습하여 결합한 후에 학습된 보델의 예측 변수를 활용해 최종 모델을 생성한다.

* 복원 추출(Bootstrap) : 데이터를 추출한 후에, 제거하지 않고 복원한 후에 다시 데이터 셋을 추출.
<-> 페이스팅(Pasting), 비복원 추출과 반대되는 개념이다.

즉, 전체 데이터를 분할 -> 데이터 셋(set) 별로 모델 학습  -> 데이터 셋들을 통합의 과정을 거친다.

이를 통해 과적합을 방지할 수 있고, 복원 과정이 있으므로 불균형하거나 데이터 수가 적을 때 적용하면 좋다.