07.AI

머신러닝 - 분류 - 앙상블 학습 - 의사결정 나무 (Decision Tree)

Mr. Slumber 2023. 11. 15. 06:52
728x90
반응형

연속형(통계,범주형(빈도)>분할,가지치기>회귀나무,분류나무
분리기준, 정지기준, 평가기준
형성:성장(목표변수 분포 순수도,불순도 + 정지규칙)
가지치기:사전,사후 가지치기, 추론규칙, 과적합 최소,깊이수준
타당성평가:이익,위험,비용 고려 도표 산정
해석:예측모형 산출, 세분화,분류,예측,변수선택,교호작용
알고리즘:ID3, C4.5, C5.0, CART
장점:해석용이(가시근거), 교호효과(변수상호작용),강건성(전처리,변환시간 단축)
단점:비연속성(앙상블),비안정성(앙상블,CV),복잡성(규칙),예측력(신경망,타통계기법), 표본크기 의존(충분한 데이터확보)
- 분류함수를 의사결정규칙으로 표현할 때 타원 (분기점), 직선 (가지), 사각형 (잎사귀)을 이용하여 나무형태로 그려서 분석하는 도구
- 가지 분할 시의 정지 규칙을 정하고, 가지 분할을 위한 변수 선택 (엔트로피, 지니, 분류 오류율 등을 이용 – 예시는 분류 오류율 이용)

 

 

 

회귀 및 분석 트리(Classification And Regression Tree, CART)는 두 트리를 아울러 일컫는 용어로, 레오 브레이만에 의해 처음 사용되었다. 회귀 트리와 분류 트리는 일정 부분 유사하지만, 입력 자료를 나누는 과정 등에서 차이점이 있다. 앙상블 방법이라고 불리는 아래와 같은 기법들은 입력된 자료로부터 한 개 이상의 결정 트리를 생성한다. 초기 앙상블 방법인 배깅(Bootstrap aggregating) 결정 트리는 반복적으로 교체 과정을 수행하는 것과 함께 훈련 데이터를 재 샘플링하고, 합의 예측을 위한 트리를 선택하는 것으로 다수의 의사 결정 트리를 생성한다.
  • 랜덤 포레스트 분류기에서는 분류 속도를 향상시키기 위해서 결정 트리들을 사용한다.
  • 부스트 트리는 회귀 분석과 분류 문제에 사용될 수 있다.
  • 회전 포레스트는 모든 결정 트리가 먼저 입력 트리 중 임의의 부분 집합에 대한 주성분 분석 (PCA)을 적용하여 훈련된다.
 
 
이 글에서는 일상에서 마주하는 의사 결정 문제 속에 내포되어 있는 주요 과정들을 시스템 및 제어 이론에 등장하는 개념들을 이용하여 설명한다. 이를 통해 의사 결정 문제를 체계적으로 이해해보고자 한다.
 
사람이 살아가며 마주하게 되는 가장 흔한 상황 중 하나는 의사 결정 문제(decision making problem)이다. 즉, 주어진 상황에서 어떤 기대 결과를 얻기 위하여 내가 취할 수 있는 선택지 중 하나를 결정하는 것이다. 국가의 경제 정책, 개인의 진로나 연애, 운동 경기, 재테크 등의 다양한 상황에서 매 순간마다 인간은 어떤 의사 결정을 하게 된다. 의사 결정 과정에서 우리는 어떤 것들을 본능적으로 고려하게 된다. 시스템 및 제어 이론에서는 그 어떤 것들을 체계적으로 정의한다.
 
주어진 상황에서 의사결정을 할 때 가장 먼저 하는 일은 주어진 상황을 적절히 인식하고 표현하는 것이다. 즉 주어진 상황에 대하여 내가 정할 수 있는 선택(입력값)과 결과(출력)가 무엇인지 그들 사이에 어떤 상관 관계가 있는지를 정의한다. 시스템 이론에서는 일반적으로 그 상관 관계를 미분 방정식 또는 차분 방정식 등의 수학식으로 표현한다. 우리가 일상의 의사 결정에서 수학적 모델링을 하지는 않더라도 논리적으로 상황에 대한 인식 및 분석을 가장 먼저 수행한다.
 
실제 시스템 이론에서는 선택을 결정(또는, 입력을 설계)하기 전에 가제어성(controllability) 이라는 성질이 성립하는지 확인한다. 가제어성이라는 것은 원하는 결과를 얻기 위한 선택(엄밀히는 선택들의 궤적)이 존재하는지에 대한 질문이다. 이는 직관적으로 이해가 가능한데 원하는 결과를 야기하는 선택이 존재하지 않는다면 의사 결정에 대한 고민 자체가 무의미해진다. 가제어성은 의사 결정 문제에 관한한 해결 가능성(solvability)이라고 생각할 수 있다. 원하는 결과를 얻기 위한 입력이 하나 이상 존재하는지 확인하는 과정이다.
 
가제어성이 확인되었다면 의사 결정 과정에서 다음 단계는 최적성(optimality)이다. 즉, 원하는 결과를 달성하는 복수의 결정이 있다면 어느 것을 선택할 것인지에 대한 생각을 해야 한다. 예를 들어, 서울에서 출발해서 부산에 가는 방법 선택 문제에서 내가 선택할 수 있는 것은 자동차, 기차, 비행기 등이다. 이 경우 어느 것을 선택해도 부산에 도달할 수 있으므로 다음 문제는 어느 것이 더 좋은 선택이냐 이다. 후보 선택들 중에서 정량적 기준으로 더 나음을 선택할 수 있으면 좋으므로 필요에 따라 성능 지표를 정의한다. 즉, 위의 예에서 부산으로 가는데 최단 시간 또는 최단 거리로 가고 싶다, 에너지를 최소로 소비하며 가고 싶다 등을 성능 지표로 설정하여 그 성능 지표를 최적화하는 선택을 할 수 있다. 이는 최적 제어(optimal control)에서 추구하는 입력 선택 논리이다. 일반적으로 이러한 성능 지표를 최적화하는 방식이 보통의 의사 결정에서 가장 중요하게 고려된다.
 
보통의 의사 결정에서 원하는 목적을 달성하는 결정을 취하는 것을 가장 우선적으로 고려한다. 그러나 의사 결정을 해야 하는 주어진 상황이 대부분의 경우 시계열적으로 과거 여러 정보들에 의존하는 동적 시스템이다. 따라서, 시스템 이론에서는 목적 달성을 위해 당장 가장 유익한 선택 보다는 목적 달성을 추구하면서도 주어진 상황의 안정성이 담보되도록 의사 결정을 한다. 예를 들어, 빙판 위에서 자동차 운전 중에 자동차의 방향이 직진 방향에서 우측으로 30도 틀어져 있다면 원하는 목적에 해당하는 직진 방향 0도로 만들기 위해서 핸들을 좌측으로 30도 만큼 돌리는 선택을 할 수 있는데 그렇게 되면 자동차 움직임은 더 불안정해진다. 자동차를 안정적으로 직진 방향으로 돌리기 위해서는 조금씩 핸들을 좌측으로 돌려야 함을 숙련된 운전자들은 알고 있다. 시스템 이론에서는 원하는 결과를 달성하는 선택을 결정할 때 시스템의 안정성(stability)도 함께 고려한다. 즉, 원하는 목적을 달성하는 것과 관련된 성능과 함께 그 목적 달성 과정에서 상황의 안정성도 함께 고려한다.
 
앞에서 언급한 개념들은 사실 제일 처음 수행한 주어진 상황에 대한 인식 및 표현이 정확하다는 가정 하에서 성립한다. 시스템 이론에서는 이를 모델의 정확성이라고 표현한다. 그러나 대부분의 실제 상황에서 상황을 정확히 인식하거나 표현하는 것은 불가능하다. 의사 결정을 해야 하는 상황을 인식하여 표현하는 상황(model)과 실제 상황(reality, 시스템 이론에서는 plant라고도 함) 사이에는 어느 정도의 차이가 존재한다. 그 차이를 불확실성(uncertainty)이라고 한다. 상황 인식이 정확할수록 불확실성의 크기는 작아진다. 시스템 이론에서는 불확실성 또한 적절히 표현하고 그 크기의 상하한을 가정하여 의사 결정을 한다. 앞에서 사용한 서울에서 부산에 가는 의사 결정 문제에서 고속도로 상의 교통사고 등은 미리 인지하기 어려운 불확실성에 해당한다. 그래서 우리는 보통 미지의 불확실성을 고려하여 원하는 시간에 도착하기 위하여 어느 정도 미리 출발하는 것이다.
 
다양한 의사 결정 문제에서 시스템 및 제어 이론에 등장하는 이러한 개념들을 체계적으로 잘 고려하면 나은 선택을 하는 횟수가 더 많아지리라 기대해 본다.
 

 

 

 

728x90