콘텐츠로 건너뛰기

회귀트리와 모델트리(Regression Tree and Model Tree)

이번 글에서는 회귀트리와 모델 트리에 대해 알아본다. 이름에서 알 수 있다시피 의사결정 나무(Decision Tree)와 회귀식을 섞은 모델이다. 회귀 트리는 언제 필요할까? 바로 아래와 같은 데이터가 있을 때다.

왼쪽 데이터는 전체 데이터를 회귀식의 입력값으로 사용했을 때 얻을 수 있는 회귀식이다. 데이터가 선형관계이나 회귀식과 데이터 포인트간의 오차가 꽤 크기 때문에 잘 적합한 회귀식이라고 보긴 어렵다. 회귀 트리는 이런 문제를 해결하기 위해 도입되었다. 오른쪽 그림은 동일 데이터를 초록색/주황색으로 나눠서 각각의 회귀식을 적합한 결과이다.

좀 더 현실적인 문제로 예시를 들자면, 왼쪽 그림은 자동차 중량에 따른 연료 소비량이라고 할 때 오른쪽 그림은 휘발유차(초록색), 경유차(주황색)로 자동차의 종류를 좀 더 세분화화한 데이터이다. 이렇게 어떤 데이터를 나눴을 때 좀 더 정확한 선형 모델을 얻을 수 있다면 회귀 트리 또는 모델 트리를 적용해보면 좋다.

■ 회귀 트리(Regression Tree)와 모델 트리(Model Tree)

그렇다면 회귀 트리와 모델 트리의 차이점을 뭘까? 모델 트리는 간단히 말해 회귀 트리의 고급 버전이라고 생각하면 된다. 회귀 트리의 경우 잎 노드가 상수인데에 반해 모델 트리는 잎 노드에 선형 함수가 들어가게 된다. 이게 무슨 소린고 하면… (의사결정 나무에 대해 좀 더 알고 싶다면 다음 글을 확인해보세요!)

의사결정 나무의 결과값이 연속형 변수(Continuous variable- 보통 실수값)이면 회귀 트리라고 하고, 의사결정 나무의 결과값이 처음 소개한 그림과 같이 어떤 함수일 경우 모델 트리라고 한다. 그림으로 회귀 트리와 모델 트리의 차이점을 보여주면 다음과 같다.

즉, 왼쪽 그림처럼 잎노드가 상수다?? = 회귀 트리, 오른쪽 그림처럼 잎노드가 함수면?? = 모델 트리!

■ 회귀 트리와 의사나무 결정의 차이점

회귀 트리는 해석하기 쉽다는 의사나무 결정의 장점을 그대로 갖고 있다. 그렇다면 의사나무 결정과는 어떤 차이가 있을까? 근본적인 차이점은 의사결정 나무는 분류에 사용되고, 회귀 트리는 예측에 사용된다.

회귀 트리기준의사결정 나무
예측목적분류
잎노드의 변동(분산/표준편차) 최소화나무 나누는 기준최대한 동종의 클래스(homogeneous class)가 되도록 – 즉, 불순도가 낮도록
RMSE가지치기 기준일반화 오차의 추정값 기준

■ 모델 트리 만드는 방법

모델 트리는 나누어진 데이터셋에 국소 회귀를 적용하면 된다. (국소 회귀에 알고 싶으시다면 다음 글을 참고해주세요.) 나무를 나누는 기준은 표준편차로하고, 종료 기준 역시 표준 편차를 기준으로 하거나 서브셋으로 나눠진 인스턴스의 개수 기준으로도 할 수 있다. 좀 더 알아보고 싶다면 다음 링크로 확인해보길 바란다.

“회귀트리와 모델트리(Regression Tree and Model Tree)”의 2개의 댓글

  1. 회귀모델 공부 중 좋은 글 발견해서 읽고갑니다 🙂
    덕분에 이해가 잘 되었습니다!
    한 가지 궁금한게 있는데, 의사결정나무와 회귀트리의 차이점 중 에서의 ‘일반화 오차의 추정값 기준’이 어떤건지 설명 부탁드려도 될까요? 엔트로피나 지니계수같이 불순도, 정보획득을 기준으로 나눈다는 것을 표현한 건가요? 단어의 개념이 헷갈려서 여쭤봅니다!

    1. 안녕하세요, 답변드린다고 하고 까먹고 있었네요 ㅠㅜ… 회귀 트리의 경우, 가지치기(pruning) 기준은 보통 cost-complexity를 최소화하는 쪽으로 정해집니다. 의사결정나무의 경우는 일반화 오차의 추정값으로 가지치기를 해서 모델의 성능을 높이는데요. 여기서 일반화 오차의 추정값이란 아직 보이지 않는 데이터에 대해 모델이 얼마나 잘 작동할지에 대한 근사치를 나타냅니다. 실제 일반화 오차는 직접 계산할 수 없으므로(보이지 않는 모든 데이터에 대한 모델의 성능을 알아야 하기 때문에) 사용 가능한 데이터를 사용하여 추정해야 합니다. 일반화 오차를 추정하는 일반적인 방법은 데이터를 여러 개의 폴드로 분할하고, 폴드의 하위 집합에 대해 모델을 학습시킨 다음, 나머지 폴드에 대해 모델을 검증하는 교차 검증을 사용합니다. 이 프로세스는 각 폴드에 대해 반복되며, 모든 폴드의 평균 성능이 일반화 오류의 추정치로 간주됩니다.

      의사결정나무에는 전체 성능에 가장 적게 기여하는 가지를 제거하여 부분을 가지 치기하여 진행합니다. 이렇게 하면 하위 나무가 만들어지는데, 교차 검증으로 각 하위 나무에 대한 일반화 오류를 추정합니다.각 하위 나무에 대해 오분류율, 정확도 또는 F1 점수와 같은 분류 오류 메트릭을 사용하여 유효성 검사 폴드의 평균 오류를 계산합니다. 교차 유효성 검사 오류가 가장 낮은 하위 나무를 최종적으로 가지치기할 나무로 선택합니다.

      의사결정 나무의 가지 치기 방법에는 이외에도 비용 복잡도 가지 치기, 오류 감소 가지 치기, 최소 오류 감소 가지 치기 또는 최소 설명 길이 가지 치기 등이 있고, 핵심 아이디어는 일반화 오차의 추정값에 미치는 영향을 최소화하면서 나무의 예측 정확도를 거의 향상시키지 않는 가지를 제거하는 것입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다