결정 트리 학습법
"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
결정 트리 학습법은 데이터 마이닝에서 사용되는 지도 학습 방법으로, 데이터를 분류하거나 예측하는 데 사용되는 트리 구조를 기반으로 한다. 분류 트리와 회귀 트리 두 가지 유형이 있으며, 분류 트리는 데이터를 클래스로 분류하고, 회귀 트리는 연속적인 값을 예측한다. 결정 트리는 ID3, C4.5, CART, CHAID 등 다양한 알고리즘을 통해 구성되며, 정보 획득량, 지니 불순도, 분산 감소 등의 분할 기준을 사용하여 트리를 분할한다. 앙상블 방법은 여러 개의 결정 트리를 결합하여 예측 성능을 향상시키며, 과적합, 특정 문제 학습의 어려움, 편향된 변수 선택 등의 한계를 가진다. 결정 그래프, 대체 검색 방법, 다양한 소프트웨어 패키지를 통해 구현될 수 있다.
더 읽어볼만한 페이지
- 결정 트리 - ID3 알고리즘
ID3 알고리즘은 존 로스 퀸란이 1979년에 개발한 의사 결정 트리 학습 알고리즘으로, 정보량의 기대값을 계산하여 트리의 노드를 생성하며, 학습 효율이 높지만 국소 최적해 문제와 과적합 가능성 등의 단점도 가진다. - 결정 트리 - 랜덤 포레스트
랜덤 포레스트는 결정 트리들을 앙상블하여 분류, 회귀, 검출 등에 활용되며, 랜덤화 기술로 일반화 성능을 향상시키는 기계 학습 알고리즘이다. - 분류 알고리즘 - 인공 신경망
- 분류 알고리즘 - 퍼셉트론
퍼셉트론은 프랭크 로젠블랫이 고안한 인공신경망 모델로, 입력 벡터에 가중치를 곱하고 편향을 더한 값을 활성화 함수에 통과시켜 이진 분류를 수행하는 선형 분류기 학습 알고리즘이며, 초기 신경망 연구의 중요한 모델로서 역사적 의미를 가진다.
결정 트리 학습법 |
---|
2. 역사
2. 1. 초기 발전 (1970년대 ~ 1980년대)
2. 2. 발전과 확장 (1990년대 ~ 현재)
3. 종류
데이터 마이닝에서 사용되는 결정 트리 분석법은 크게 두 종류가 있다.
- '''분류 트리''' 분석은 예측된 결과로 입력 데이터가 분류되는 클래스를 출력한다.
- '''회귀 트리''' 분석은 예측된 결과로 특정 의미를 지니는 실수 값을 출력한다. (예: 주택의 가격, 환자의 입원 기간)
분류 및 회귀 트리(Classification And Regression Tree, CART)는 두 트리를 아울러 일컫는 용어로, 레오 브레이만에 의해 처음 사용되었다.[6] 회귀 트리와 분류 트리는 일정 부분 유사하지만, 입력 자료를 나누는 과정 등에서 차이점이 있다.[6]
앙상블 방법이라고 불리는 아래와 같은 기법들은 입력된 자료로부터 한 개 이상의 결정 트리를 생성한다.
- 초기 앙상블 방법인 배깅(Bootstrap aggregating) 결정 트리는 반복적으로 교체 과정을 수행하는 것과 함께 훈련 데이터를 재 샘플링하고, 합의 예측을 위한 트리를 선택하는 것으로 다수의 의사 결정 트리를 생성한다.
- '''랜덤 포레스트''' 분류기에서는 분류 속도를 향상시키기 위해서 결정 트리들을 사용한다.
- '''부스트 트리'''는 회귀 분석과 분류 문제에 사용될 수 있다.[7][8]
- '''회전 포레스트'''는 모든 결정 트리가 먼저 입력 트리 중 임의의 부분 집합에 대한 주성분 분석 (PCA)을 적용하여 훈련된다.[12]
의사 결정 트리 학습은 클래스-라벨 훈련 쌍으로부터의 결정 트리에 의해 구성된다. 결정 트리의 각각의 노드는 서로 다른 특성을 가진다. 각각의 내부노드(또는 비 리프노드)는 속성에 대한 테스트를 나타내고, 각각의 가지는 테스트의 결과를 나타낸다. 그리고 각 리프노드(또는 터미널 노드)는 클래스의 라벨을 나타낸다. 마지막으로 트리의 최상위 노드는 루트 노드이다.
많은 특정 의사 결정 트리 알고리즘이 있지만 아래의 알고리즘은 그 중에서도 많이 사용되는 알고리즘을 나열한 것이다. 데이터마이닝에서 가장 많이 언급되고 사용되는 알고리즘은 C4.5 또는 C5.0이다. ID3 알고리즘을 보완하여 C4.5가 개발되었고, C4.5를 보완하여 C5.0이 개발된 것이므로 ID3, C4.5, C5.0 의 순서대로 학습해야 한다.
- ID3 (Iterative Dichotomiser 3)
- C4.5 (successor of ID3)
- C5.0 (successor of ID4)
- CART (Classification And Regression Tree)
- CHAID (CHi-squared Automatic Interaction Detector) : 이 알고리즘은 분류 트리를 계산할 때 다단계 분할을 수행한다.[17][18][19]
- MARS (Multivariate adaptive regression splines) : 더 많은 수치 데이터를 처리하기 위해 결정 트리를 사용한다.
- 조건부 추론 트리 (Conditional Inference Trees) : 과적합을 피하기 위해 여러 테스트에 대해 보정 분할 기준으로 비 - 파라미터 테스트를 사용하는 통계 기반의 방법이다. 이 방법은 편견 예측 선택 결과와 가지 치기가 필요하지 않다.[20][21]
ID3와 CART방법은 비슷한 시기인 1970년과 1980년 사이에 독립적으로 발명되었으며, 훈련 쌍에 대해 의사 결정 트리 학습을 위한 유사한 접근 방식을 사용한다. 위 알고리즘들 중에서 ID3, C4.5, C5.0 알고리즘들은 인공지능, 기계 학습 분야에서 개발되어 발전되어 왔다. 이에 반해, CART 및 CHAID 알고리즘은 통계학에 분야에서 개발된 알고리즘들이다. 인공지능, 기계 학습 계열의 알고리즘들은 엔트로피, 정보 이득 개념을 사용하여 분리기준을 결정하고, 통계학에 기초한 CART 및 CHAID 알고리즘들은 카이제곱 검정, T 검정, F 검정 등의 통계분석법을 사용한다.
3. 1. 분류 트리 (Classification Tree)
데이터 마이닝에서 사용되는 결정 트리 분석법 중 하나이다. 분류 트리 분석은 예측된 결과로 입력 데이터가 분류되는 클래스를 출력한다.[6] 레오 브레이만이 처음으로 사용한 용어인 분류 및 회귀 트리(CART)는 분류 트리와 회귀 트리를 모두 아우르는 말이다.[6] 회귀 트리와 분류 트리는 일정 부분 유사하지만, 입력 자료를 나누는 과정 등에서 차이점이 존재한다.[6]분류 트리는 입력 데이터가 어떤 클래스에 속하는지 예측하는 데 사용된다. 예를 들어, 환자의 데이터를 기반으로 특정 질병의 유무를 판단하거나, 고객의 구매 이력을 바탕으로 어떤 상품을 추천할지 결정하는 데 활용될 수 있다.
많이 사용되는 결정트리 알고리즘으로는 ID3, C4.5, CART, CHAID 등이 있다. ID3와 CART는 1970년대와 1980년대 사이에 독립적으로 발명되었으며, 훈련 쌍에 대해 의사 결정 트리 학습을 위한 유사한 접근 방식을 따른다.
3. 2. 회귀 트리 (Regression Tree)
데이터 마이닝에서 사용되는 결정 트리 분석법 중 하나인 회귀 트리 분석은 예측된 결과로 특정 의미를 지니는 실수 값을 출력한다.(예: 주택의 가격, 환자의 입원 기간)[6] 레오 브레이만이 처음 사용한 분류 및 회귀 트리(Classification And Regression Tree, CART)는 회귀 트리와 분류 트리를 모두 아우르는 용어다.[6] 회귀 트리와 분류 트리는 입력 자료를 나누는 과정 등에서 차이가 있다.부스팅 트리는 회귀 분석에 사용될 수 있다.[7][8] MARS는 더 많은 수치 데이터를 처리하기 위해 결정 트리를 사용한다.[17][18][19]
4. 주요 알고리즘 및 방법
결정 트리를 구성하는 알고리즘에는 주로 하향식 기법이 사용되며, 각 진행 단계에서는 주어진 데이터 집합을 가장 적합한 기준으로 분할하는 변수값이 선택된다.[49]
서로 다른 알고리즘들은 ”분할의 적합성"을 측정하는 각자의 기준이 있다. 이러한 기준들은 보통 부분 집합 안에서의 목표 변수의 동질성을 측정하며, 아래는 그 예시들이다. 이 기준들은 가능한 데이터 집합 분할의 경우의 수마다 적용되며, 그 결과 값들은 병합되어, 즉 평균 값이 계산되어, 데이터 집합의 분할이 얼마나 ”적합한지" 측정하는데 사용된다.
4. 1. 분할 기준 (Splitting Criteria)
결정 트리를 구성하는 알고리즘은 주로 하향식 기법을 사용하며, 각 단계에서 주어진 데이터 집합을 가장 적합한 기준으로 분할하는 변수값을 선택한다.[49] 서로 다른 알고리즘들은 ”분할의 적합성"을 측정하는 각자의 기준이 있다. 이러한 기준들은 보통 부분 집합 안에서의 목표 변수의 동질성을 측정하며, 아래는 그 예시들이다. 이 기준들은 가능한 데이터 집합 분할의 경우의 수마다 적용되며, 그 결과 값들은 병합되어(평균 계산), 데이터 집합의 분할이 얼마나 ”적합한지" 측정하는데 사용된다.결정 트리를 구성하는 알고리즘은 일반적으로 각 단계에서 항목 집합을 가장 잘 분할하는 변수를 선택하여 위에서 아래로 작동한다.[24] 서로 다른 알고리즘은 "최적"을 측정하기 위해 서로 다른 메트릭을 사용한다. 이는 일반적으로 하위 집합 내의 대상 변수의 동질성을 측정한다. 몇 가지 예가 아래에 나와 있다. 이러한 메트릭은 각 후보 하위 집합에 적용되며 결과 값은 결합(예: 평균)되어 분할의 품질을 측정한다. 기본 메트릭에 따라 결정 트리 학습을 위한 다양한 휴리스틱 알고리즘의 성능이 크게 달라질 수 있다.[25]
- '''지니 불순도 (Gini Impurity)'''
지니 불순도는 집합에 이질적인 것이 얼마나 섞였는지를 측정하는 지표이며 CART 알고리즘에서 사용한다. 어떤 집합에서 한 항목을 뽑아 무작위로 라벨을 추정할 때 틀릴 확률을 말한다. 집합에 있는 항목이 모두 같다면 지니 불순도는 최솟값(0)을 갖게 되며 이 집합은 완전히 순수하다고 할 수 있다.
항목의 집합에 대한 지니 불순도를 계산하기 위하여, 인 를 가정해보자, 그리고 를 로 표시된 집합 안의 항목의 부분이라고 했을 때,
:
로 나타낼 수 있다.
'''지니 불순도''', '''지니의 다양성 지수''',[26] 또는 생물 다양성 연구에서 '''지니-심슨 지수'''는 이탈리아 수학자 코라도 지니의 이름을 따서 명명되었으며 분류 트리를 위한 CART(분류 및 회귀 트리) 알고리즘에서 사용된다. 지니 불순도는 집합의 레이블 분포에 따라 무작위로, 독립적으로 레이블이 지정된 경우 집합의 임의로 선택된 요소가 잘못 레이블이 지정될 빈도를 측정한다. 노드의 모든 사례가 단일 대상 범주에 속할 때 최소값(0)에 도달한다.
개의 클래스와 상대 빈도 , 를 가진 항목 집합의 경우, 레이블 가 있는 항목을 선택할 확률은 이고, 해당 항목을 잘못 분류할 확률은 이다. 지니 불순도는 각 클래스 레이블에 대해 이러한 확률의 쌍별 곱을 합산하여 계산한다.
:
지니 불순도는 또한 정보 이론적 척도이며 변형 계수 를 갖는 찰리스 엔트로피에 해당하며, 이는 물리학에서 평형이 아닌, 비확장적, 소산적 및 양자 시스템의 정보 부족과 관련이 있다. 의 극한에서 일반적인 볼츠만-깁스 또는 섀넌 엔트로피를 회복한다. 이러한 의미에서 지니 불순도는 의사 결정 트리에 대한 일반적인 엔트로피 척도의 변형에 지나지 않는다.
- '''정보 획득량 (Information Gain)'''
ID3, C4.5 그리고 C5.0 트리 생성 알고리즘에서 정보 획득량이 사용되고 있다. 정보 획득량은 정보이론의 엔트로피 개념에 근거를 두고 있다.[27]
엔트로피는 다음과 같이 정의된다.
:
여기서 는 합이 1이고 트리의 분할로 인해 발생하는 자식 노드에 있는 각 클래스의 백분율을 나타내는 분수이다.[27]
:
의 가능한 값에 대한 평균,
:
여기서 엔트로피의 가중 합계는 다음과 같이 주어진다.
:
즉, 예상 정보 이득은 상호 정보이며, 이는 평균적으로 ''T''의 엔트로피 감소가 상호 정보임을 의미한다.
정보 이득은 트리를 구축하는 각 단계에서 어떤 특징으로 분할할지 결정하는 데 사용된다. 단순성이 가장 좋으므로 트리를 작게 유지하려고 한다. 이를 위해 각 단계에서 가장 일관된 자식 노드를 생성하는 분할을 선택해야 한다. 일반적으로 사용되는 일관성 척도는 정보라고 하며, 이는 비트 단위로 측정된다. 트리의 각 노드에 대해 정보 값은 "새로운 인스턴스가 해당 노드에 도달한 경우 예 또는 아니오로 분류되어야 하는지 지정하는 데 필요한 예상 정보량"을 나타낸다.[27]
4개의 속성(''outlook''(맑음, 흐림, 비), ''temperature''(더움, 보통, 시원함), ''humidity''(높음, 보통), ''windy''(참, 거짓))과 이진(예 또는 아니오) 목표 변수 ''play'' 및 14개의 데이터 포인트가 있는 예제 데이터 집합을 고려해 보자. 이 데이터에 대한 결정 트리를 구성하려면 네 가지 특징 중 하나를 기준으로 분할된 네 개의 각 트리의 정보 이득을 비교해야 한다. 정보 이득이 가장 높은 분할이 첫 번째 분할로 사용되고, 모든 자식 노드가 각 일관된 데이터를 갖거나 정보 이득이 0이 될 때까지 프로세스가 계속된다.
''windy''를 사용하여 분할의 정보 이득을 찾으려면 먼저 분할 전 데이터의 정보를 계산해야 한다. 원래 데이터에는 9개의 예와 5개의 아니오가 포함되어 있었다.
:
''windy'' 특징을 사용한 분할은 두 개의 자식 노드를 생성하며, 하나는 참 ''windy'' 값이고 다른 하나는 거짓 ''windy'' 값이다. 이 데이터 집합에는 참 ''windy'' 값을 가진 6개의 데이터 포인트가 있으며, 그 중 3개는 예의 ''play''(여기서 ''play''는 목표 변수) 값을 가지고 있고 3개는 아니오 값을 가지고 있다. 거짓 ''windy'' 값을 가진 나머지 8개의 데이터 포인트에는 2개의 아니오와 6개의 예가 포함되어 있다. ''windy''=true 노드의 정보는 위의 엔트로피 방정식을 사용하여 계산된다. 이 노드에는 예와 아니오의 수가 동일하므로 다음과 같다.
:
''windy''=false 노드의 경우 8개의 데이터 포인트, 6개의 예 및 2개의 아니오가 있었다. 따라서 다음과 같다.
:
분할의 정보를 찾으려면, 이러한 두 숫자의 가중 평균을 어느 노드에 얼마나 많은 관측치가 속했는지에 따라 구한다.
:
이제 ''windy'' 특징으로 분할하여 얻은 정보 이득을 계산할 수 있다.
:
트리를 구축하려면 각 가능한 첫 번째 분할의 정보 이득을 계산해야 한다. 가장 좋은 첫 번째 분할은 가장 많은 정보 이득을 제공하는 분할이다. 이 프로세스는 트리가 완료될 때까지 각 순수하지 않은 노드에 대해 반복된다. 이 예는 Witten et al.에 나타나는 예에서 적용되었다.[27]
정보 이득은 생물 다양성 연구에서 섀넌 지수로도 알려져 있다.
- '''분산 감소 (Variance Reduction)'''
CART에서 소개된[6] 분산 감소 기법은 목표 변수가 연속형인 경우(회귀 트리)에 자주 사용되며, 이는 다른 많은 지표를 사용하려면 먼저 이산화가 필요하다는 것을 의미한다. 노드 N의 분산 감소는 이 노드에서 분할로 인한 대상 변수 x의 분산의 총 감소로 정의된다.
: