[기계학습개론] Supervised learning technique - Decision tree & Ensemble


Decision Tree & Ensemble Deep Dive

Decision Tree (의사결정나무)의 기본 구조와 학습 방법

Decision Tree(결정 트리)는 이름 그대로 나무(tree) 형태의 구조를 가지는 분류 모델이다. 결정 트리 모델은 예/아니오 질문을 반복하며 데이터를 분할하는 방식으로 학습된다. 루트 노드(root node)에서 시작하여 각 내부 노드(internal node)에서는 하나의 특성(feature)에 대한 테스트(질문)가 이루어지고, 그 결과(True/False)에 따라 데이터가 가지(branch)처럼 둘로 갈라진다. 이렇게 분기가 계속되다가 더 이상 분할할 조건이 없거나 충분히 세분된 경우, 최종적인 잎 노드(leaf node)에서 하나의 클래스로 분류하거나 값(회귀의 경우)을 예측하게 된다.

예를 들어 몇 가지 동물을 구분하는 문제를 생각해보자. 첫 질문으로 "날개가 있나요?"라는 테스트를 하면, 동물들을 날개가 있는 경우와 없는 경우로 크게 둘로 나눌 수 있다. 날개가 있는 경우 다음 질문으로 "날 수 있나요?"를 물어보면 매와 펭귄을 구분할 수 있고, 날개가 없는 경우 "지느러미가 있나요?"를 물어보면 돌고래와 곰을 구분할 수 있다. 이러한 일련의 질문 과정을 결정 트리로 표현하면 아래 그림과 같다.

Tree structure

결정 트리는 이렇게 조건부 분할을 통해 데이터 공간을 구획화하면서 학습한다. 트리 학습을 위한 대표적인 알고리즘(ID3, C4.5, CART 등)은 대체로 탑다운(Top-Down) 방식의 탐욕적(greedy) 접근을 취한다. 먼저 모든 데이터가 포함된 루트 노드에서 출발하여, 어떤 특성으로 분할하면 가장 좋은지를 평가한 뒤 그 특성으로 데이터를 둘로 나눈다. 그런 다음, 분기된 각 부분 데이터 집합에 대해 다시 최적의 분할 특성을 찾아 하위 노드를 생성하고, 이를 각 노드별로 재귀적(recursive)으로 반복한다. 이렇게 하면 트리가 점점 자라며 마치 스무고개 게임을 하듯이 데이터가 단계적으로 분류되어 간다.


엔트로피와 정보 이득을 활용한 분할 기준

그렇다면 "가장 좋은 분할"이란 무엇을 의미할까? 이는 분류 문제에서 노드의 불순도(impurity)를 얼마나 감소시키는지로 결정된다. 불순도란 노드에 섞여있는 데이터들의 혼잡도를 의미하는데, 이를 계량화한 지표 중 하나가 엔트로피(entropy)다. 엔트로피 \(H \)는 노드에 속한 데이터들의 클래스 비율을 바탕으로 계산되며, 수식으로는 다음과 같다:

H(Node)=k=1Kpklog2pkH(\text{Node}) = -\sum_{k=1}^{K} p_k \log_2 p_k

여기서 \(p_k \)는 해당 노드에 속한 데이터 중 클래스 \(k \)에 속하는 비율이고, \(K \)는 클래스의 가짓수이다. 엔트로피 값은 데이터가 한 클래스로 순수하게 모여있으면 0이고, 여러 클래스가 섞여 있을수록 높아진다 (예를 들어 두 클래스가 50%씩 섞이면 엔트로피 = 1로 최대이다).

결정 트리는 노드를 분할함으로써 자식 노드들의 불확실성을 줄이고자 한다. 이를 정량적으로 평가하는 지표가 정보 이득(information gain)이다. 루트 노드에서 어떤 특성 X의 기준으로 데이터를 분리했다고 가정해 보자. 분할 전 루트의 엔트로피를 \(H_{parent} \)라 하고, 분할 후 만들어진 두 자식 노드의 엔트로피를 \(H_{left}, H_{right} \)라고 하자. 또한 분할로 나뉜 왼쪽 노드에 들어간 데이터 비율을 \(w_{left} \), 오른쪽 노드 비율을 \(w_{right} \)라고 할 때, 정보 이득 \(IG \)는 다음과 같이 정의된다:

IG=Hparent(wleftHleft+wrightHright)IG = H_{parent} - \Big( w_{left} \cdot H_{left} + w_{right} \cdot H_{right} \Big)

즉, 분할 전후의 엔트로피 감소량이 곧 정보 이득이다. 정보 이득이 클수록 해당 분할이 노드의 혼잡도를 크게 줄였다는 뜻이므로, 트리 학습 알고리즘은 정보 이득이 가장 큰 특성과 기준을 선택하여 분기하게 된다. 정보 이득 외에도 지니 지수(Gini index) 등 불순도를 측정하는 다른 지표를 사용할 수도 있지만, 개념적으로는 비슷하게 노드 순도를 최대화하는 방향으로 학습이 진행된다.

자세한 계산 예제는 이전 글을 참고하자.


결정 트리가 형성하는 분류 경계

결정 트리는 학습 과정에서 특정 특성의 조건 (예: \(X_i \leq \theta \) )을 기준으로 데이터를 이분화하기 때문에, 결과적으로 데이터 공간에서 축에 평행한 분류 경계(decision boundary)를 만들어낸다. 예를 들어 두 개의 특성을 가진 데이터셋에서, 루트 노드가 특성 \(X_1 < 5 \)를 기준으로 분할했다면, 이는 \(X_1 = 5 \)라는 수직선(첫 번째 축에 수직인 경계)을 경계로 공간을 둘로 나눈 셈이다. 이어서 한쪽 영역에서 또 다른 특성 \(X_2 > 3 \)으로 분할했다면, 이번에는 수평선(두 번째 축에 평행한 경계)을 추가로 그어 공간을 더 세분화한다. 이처럼 결정 트리가 학습을 완료하면 입력 공간은 여러 직사각형(고차원에서는 직사각형의 일반화된 초직사각형) 영역들로 분할되고, 각 영역에는 해당 영역으로 분류된 클래스 레이블이 할당된다.

결정 트리가 만드는 분류 경계는 계단모양으로 꺾이는(axis-aligned stepwise) 형태를 띠는 것이 특징이다. 이는 트리가 각 특성을 개별적으로 고려하여 분할을 진행한 결과이며, 선형 분류기와 달리 비선형적인 복잡한 경계도 표현할 수 있다는 장점이 있다. 하지만 이 방식은 데이터의 실제 결정 경계가 대각선이나 곡선 형태일 경우에는 많은 분할이 필요할 수 있다. 아래 그림은 한 결정 트리가 2차원 공간에서 학습된 분류 경계를 보여주는 예시이다.

(왼쪽) 파랑색 원과 빨간색 삼각형 두 클래스로 이루어진 데이터셋에 대해 한 결정 트리가 학습한 분류 경계. 축에 평행한 직선들이 계단 형태의 경계를 구성하고 있다. (오른쪽) 해당 결정 트리의 일부 구조. 복잡한 트리일수록 분류 경계가 세밀해지지만, 작은 영역들이 군데군데 생겨난 것을 볼 수 있다.

위 그림의 왼쪽과 같이, 결정 트리가 충분히 깊어지면 훈련 데이터에 과도하게 맞춘 매우 복잡한 경계까지 만들어낼 수 있다. 예를 들어 소수의 이상치(outlier)를 정확히 분류하기 위해 아주 좁은 영역을 분할해내는 경우, 그 주변을 다른 클래스 영역이 둘러싸는 불규칙한 모양이 나타나기도 한다. 이러한 모습은 일반화 관점에서 바람직하지 않은 결정 경계이며, 모델이 훈련 데이터에 과적합(overfitting)된 신호일 수 있다. 과적합된 모델은 처음 보는 새로운 데이터에 대해서는 오류를 범할 가능성이 크기 때문이다. 이를 방지하기 위해서는 트리의 복잡도를 적절히 규제(regulate)해 줄 필요가 있다.


결정 트리의 과적합 문제와 가지치기 (Pruning)

결정 트리는 분할 규칙만 충분하다면 이론적으로 훈련 데이터를 100% 정확하게 분류할 수 있다. 리프 노드 하나에 단 한 개의 훈련 샘플만 남을 때까지 무분별하게 가지를 뻗어 나가면, 결국 모든 훈련 데이터를 완벽히 맞추는 트리가 만들어지는데, 이는 곧 모델이 데이터의 노이즈까지도 학습해버렸다는 뜻이다. 이렇게 복잡도가 지나치게 높은 트리는 훈련 세트에 대해서는 오차가 매우 낮지만, 새로운 데이터(테스트 세트)에 대해서는 오히려 성능이 저하되는 과적합 현상을 보인다.

과적합을 막기 위해 결정 트리 모델에서는 일반적으로 가지치기(pruning) 기법을 사용한다. 가지치기는 말 그대로 나무의 일부 가지를 잘라내어 트리의 복잡도를 줄이는 작업이다. 가지치기에는 트리 생성 과정을 일찍 중단하는 사전 가지치기(pre-pruning)와, 트리를 다 만든 후에 불필요한 가지를 제거하는 사후 가지치기(post-pruning) 두 가지 방법이 있다.

  • 사전 가지치기: 트리를 성장시키는 도중에 미리 정해둔 기준에 도달하면 더 이상의 분할을 멈춘다. 예를 들어 트리의 최대 깊이를 제한하거나, 리프 노드의 최소 데이터 수를 정해 그보다 적은 데이터만 남으면 분할을 중지하는 식이다. 사전 가지치기를 적용하면 모델이 지나치게 세밀해지기 전에 학습을 멈추므로 과적합을 어느 정도 방지할 수 있다. 다만 너무 엄격하게 분할을 제한하면 실제 복잡한 패턴을 잡아내지 못하는 과소적합(underfitting) 위험도 있다.

  • 사후 가지치기: 완전히 자란 트리에서 정보가 부족하거나 불필요한 가지들을 가지치기 단계에서 잘라낸다. 예를 들어 리프 노드 중에서도 정보 이득이 미미했던 분할이나 데이터가 아주 적게 남은 가지를 제거하고, 해당 노드들을 상위 노드로 통합한다. 이렇게 하면 트리가 단순화되어 일반화 성능이 향상될 수 있다. 사후 가지치기는 별도의 검증 세트(validation set)를 사용하여 가지치기 여부를 결정하거나, 최소오차 복잡도(pruning based on minimal cost-complexity) 등의 기준을 적용하여 수행한다.

현대의 머신러닝 라이브러리들은 주로 사전 가지치기 방식의 하이퍼파라미터(예: max_depth, min_samples_split 등)를 제공하여 트리의 복잡도를 제어한다. 이를 적절히 조절하거나 앙상블 기법을 활용하면, 결정 트리의 과적합 문제를 완화하면서도 높은 분류 성능을 얻을 수 있다.


앙상블 학습의 개념과 필요성

앙상블(Ensemble) 기법은 하나의 모델 대신 여러 모델의 예측을 결합하여 최종 예측을 만드는 방법론을 말한다. 직관적으로 생각해 보면, 어려운 문제를 풀 때 전문가 한 사람의 의견보다는 여러 사람의 의견을 모아 결정하는 편이 더 신뢰도가 높을 수 있다. 마찬가지로 머신러닝에서도 하나의 분류기가 내린 결정보다 여러 분류기의 집단 지성을 모은 결정이 더 정확하고 안정적일 수 있다. 특히 결정 트리 같은 모델은 훈련 데이터에 작은 변화가 있어도 결과 트리가 크게 바뀔 정도로 불안정한(variance가 높은) 특성이 있는데, 이때 여러 트리를 함께 사용하면 이러한 변동을 상쇄시켜 분산(variance)을 낮추는 효과가 있다.

앙상블 학습의 대표적인 목표는 개별 모델들이 갖는 오차를 상호 보완하여 더 나은 일반화 성능을 얻는 것이다. 개별 분류기들이 서로 다른 편향(bias)과 분산을 가지고 있다면, 이를 적절히 조합함으로써 단일 모델보다 더 낮은 총 오차를 달성할 수 있다. 요약하면, 앙상블은 "약한 학습기(weak learner)를 모아 강한 학습기(strong learner)를 만든다"는 개념으로 정리할 수 있다. 아래에서는 앙상블 방법 중 널리 쓰이는 배깅(Bagging)부스팅(Boosting) 기법 및 그 변형들에 대해 알아본다.


배깅과 랜덤 포레스트

배깅(Bagging)은 "Bootstrap Aggregating"의 줄임말로, 동일한 모델을 여러 개 훈련시키기 위해 부트스트랩 샘플링을 활용하는 앙상블 방법이다. 부트스트랩 샘플링이란 주어진 데이터에서 중복을 허용하여 무작위로 샘플을 뽑는 방법으로, 원본 데이터 크기와 동일하게 샘플을 뽑으면 약 63.2% 정도의 고유한 데이터가 포함되고 나머지는 중복으로 채워진다. 배깅에서는 이렇게 생성된 서로 다른 샘플 세트들(bootstrapped datasets)을 가지고 매번 같은 알고리즘(예: 결정 트리)을 학습시켜 여러 개의 분류기(hypotheses) \(h_1(x), h_2(x), \dots, h_T(x) \)를 얻는다. 예측 단계에서는 새로운 입력 \(x \)에 대해 모든 분류기의 예측을 계산한 후 다수결 투표(majority vote)를 통해 최종 클래스를 결정한다. 회귀 문제라면 단순 평균을 낼 수도 있다. 이 방식은 각 모델이 서로 다른 데이터로 학습되었기 때문에 일부 모델이 잘못 예측하더라도 다른 모델들이 올바르게 예측함으로써 오류가 상쇄되는 효과가 있다. 그 결과 단일 결정 트리에 비해 안정적이고 정확도 높은 예측이 가능해진다.

랜덤 포레스트(Random Forest)는 배깅의 대표적인 구현으로, 다수의 결정 트리를 앙상블한 모델을 가리킨다. 랜덤 포레스트는 1990년대 후반 Leo Breiman 등이 개발한 방법으로, 배깅을 기반으로 하면서 추가적으로 분할 시 특성 선택에 무작위성을 주는 것이 핵심이다. 구체적으로는 각 트리를 훈련할 때, 노드를 분할할 때마다 전체 특성 중 임의로 선택된 일부 특성만 고려하여 최적 분할을 찾도록 제한한다. 예를 들어 특성이 100개인 데이터라면 각 노드 분할 시 무작위로 10개 정도를 선택하고 그 중에서 분할 기준을 찾는 식이다. 이렇게 하면 트리들 사이의 상관관계(correlation)가 줄어들어, 단순 배깅보다 다양한 모양의 트리가 생성된다. 결국 앙상블된 트리들의 표결 결과는 개별 트리의 과적합을 상호 보완하여 더욱 우수한 성능을 낼 수 있다. 랜덤 포레스트는 구현상 각 트리를 깊게(과적합되게) 성장시킨 후 배깅으로 평균을 내도 과적합이 완화되는 경향이 있기 때문에, 보통 개별 트리에 가지치기를 적용하지 않고도 좋은 결과를 얻는다. 또한 훈련 과정에서 사용하지 않은 약 37%의 데이터(OOB, out-of-bag 데이터)를 활용해 별도의 검증 없이도 성능을 추정할 수 있는 장점도 있다.

랜덤 포레스트는 뛰어난 성능과 사용상의 편의성 때문에 머신러닝 분야에서 매우 널리 쓰이는 앙상블 알고리즘이다. 데이터의 스케일 조정이나 전처리에 민감하지 않고, 수백 개 이상의 특성도 효율적으로 다룰 수 있으며, 분류 뿐 아니라 회귀 문제에도 확장될 수 있다. 다만 결과가 여러 트리의 복잡한 조합으로 나오기 때문에, 해석력은 단순한 결정 트리에 비해 떨어지는 단점이 있다.


부스팅과 AdaBoost

부스팅(Boosting)은 배깅과는 달리 순차적으로 모델들을 학습시키면서 잘못 예측하는 부분에 점차 집중하는 앙상블 방법이다. 부스팅의 아이디어는 초기에는 비교적 간단한 모델(약한 학습기)을 학습시키고, 이어지는 단계에서는 이전 모델이 실수한 부분을 보완하는 새로운 모델을 추가하는 것을 반복하여, 최종적으로는 모든 모델을 결합한 강력한 예측기를 만들어내는 것이다. 이렇게 단계적으로 진행되는 학습 과정에서 각 모델은 이전까지의 모델들이 만든 오류를 줄이는 방향으로 최적화된다.

가장 유명한 부스팅 알고리즘으로는 AdaBoost(Adaptive Boosting)가 있다. AdaBoost는 Freund와 Schapire가 제안한 알고리즘으로, 분류기들이 순차적으로 학습되는 동안 훈련 데이터 포인트들에 가중치(weight)를 부여하여 이전 모델이 틀린 샘플에 더 큰 가중치를 집중하는 방식을 취한다. AdaBoost의 동작을 간략히 살펴보면 다음과 같다:

  1. 초기 단계에서 모든 훈련 샘플에 대해 동일한 가중치를 할당한다.

  2. 첫 번째 약한 학습기 \(h_1(x) \)를 이 가중치를 반영한 데이터 분포하에서 학습시킨다. (가중치를 반영한 학습은 가중치에 비례하여 샘플을 복원추출하는 것과 유사하게 구현될 수 있다.)

  3. 모델 \(h_1 \)의 훈련 오류율 \(\epsilon_1 \)을 계산한다 (가중치가 부여된 데이터 분포에서의 오차).

  4. 모델의 성능에 따라 \(\alpha_1 = \frac{1}{2}\ln\frac{1-\epsilon_1}{\epsilon_1} \)와 같은 값을 계산하여 \(h_1 \)에 대한 신뢰도(α값)를 정한다. \(\epsilon_1 \)이 작을수록 \(\alpha_1 \)는 크게 설정되어 해당 모델의 영향력이 강해진다.

  5. 다음 학습을 위해 각 샘플의 가중치를 업데이트한다. \(h_1 \)가 맞게 분류한 샘플의 가중치는 감소시키고, 틀린 샘플의 가중치는 증가시켜서, 다음 모델 \(h_2(x) \)는 이전에 \(h_1 \)이 놓친 부분을 더 잘 학습할 수 있도록 한다.

  6. 두 번째 약한 학습기 \(h_2(x) \)를 새로운 가중치 분포하에서 학습하고, 같은 절차를 반복한다. 이렇게 t=1부터 T까지 총 T개의 약한 학습기를 순차적으로 훈련시킨다.

  7. 최종 분류기는 각 모델의 예측을 weighted vote로 합산해서 결정한다. 식으로 표현하면 최종 예측 \(H(x) \)는 \(\displaystyle \text{sign}\Big(\sum_{t=1}^{T} \alpha_t , h_t(x)\Big) \)으로 주어지며, 각 모델의 예측에 그 모델의 신뢰도 \(\alpha_t \)를 곱해 합산한 뒤 부호를 보면 된다.

이러한 방식으로 AdaBoost는 이전 모델들이 만든 오류에 점점 더 집중하면서도, 가장 최근 모델일수록 더 큰 가중치를 부여받아 최종 결정에 영향력을 행사하게 된다. 중요한 점은 개별 약한 모델들은 고성능일 필요가 없고 약 50% 이상의 정확도만 되면 충분하다. AdaBoost 앙상블은 이들을 모아 상당히 높은 정확도의 강한 분류기를 얻을 수 있음을 이론적으로 보장한다 (이것이 바로 "약한 학습기를 모아 강한 학습기를 만든다"는 부스팅의 모토다).

AdaBoost 이후에도 Gradient Boosting을 비롯한 다양한 부스팅 기법들이 개발되었다. Gradient Boosting (예: XGBoost, LightGBM 등)은 잔여 오차(residual error)에 대한 경사 하강법(gradient descent) 최적화를 통해 연속적으로 모델을 추가하는 방식으로, AdaBoost와 개념은 유사하지만 오차에 대한 접근 방법이 조금 다르다. 부스팅 계열 알고리즘들은 일반적으로 단일 결정 트리보다 성능이 뛰어나 많은 머신러닝 경진대회에서 우승을 차지했으며, 머신러닝 분류기 중 가장 성능이 좋은 기법 중 하나로 자리매김하고 있다. 단, 부스팅은 너무 많은 단계의 모델을 쌓으면 과적합이 발생할 수 있고, 또한 노이즈에 민감하다는 단점이 있다. 따라서 트리의 개수나 학습률(learning rate) 등의 하이퍼파라미터를 신중하게 조절해야 한다.


결정 트리와 앙상블 기법의 장단점 비교

앞서 살펴본 결정 트리 단일 모델과 앙상블 모델들은 각각 강점과 약점을 지닌다. 이를 정리하면 다음과 같다:

  • 결정 트리의 장점:

    • 이해와 해석이 매우 쉽다. 결정 트리는 명시적인 if-then 규칙들의 집합이므로 모델이 어떻게 결론을 내리는지 추적하기 쉬워 해석 가능성(interpretability)이 높다. 작은 트리는 인간이 일일이 들여다보며 설명하기에도 용이하다.

    • 전처리가 적게 필요하다. 데이터의 스케일(단위)에 영향을 받지 않고, 범주형 특징도 이진 분기로 자연스럽게 처리할 수 있다. 필요하면 결측값 처리나 변수 선택도 비교적 수월하다.

    • 비선형 관계도 학습할 수 있다. 트리는 비선형 및 상호작용 효과를 자동으로 탐지하여 분기하기 때문에, 데이터에 숨겨진 복잡한 패턴도 어느 정도 잡아낼 수 있다.

  • 결정 트리의 단점:

    • 과적합되기 쉽다. 앞서 논의한대로 결정 트리는 제한 없이 성장시키면 훈련 데이터에 지나치게 특화된 복잡한 모델이 되기 쉽다. 일반화를 위해 가지치기나 다른 규제가 필수적이다.

    • 작은 변화에도 민감하다. 데이터의 일부만 바뀌어도 분할 순서나 구조가 크게 달라질 수 있어 높은 분산(high variance) 특성을 보인다. 이는 곧 모델의 안정성이 떨어짐을 의미한다.

    • 최적의 트리를 찾기 어렵다. 분할을 위한 탐욕적 알고리즘은 완벽한 최적해를 보장하지 못하며, 전역 최적보다는 지역 최적에 머무를 가능성이 있다. 또한 일부 경우 매우 깊은 트리가 되면 해석력도 떨어진다.

  • 앙상블 모델의 장점:

    • 높은 예측 정확도를 달성한다. 다수의 모델을 결합함으로써 단일 모델보다 일반적으로 오류가 줄어들고 성능이 향상된다. 특히 배깅 기반 앙상블은 분산을 줄여 안정성을 높이고, 부스팅은 편향을 줄여 정확도를 끌어올리는 효과가 있다.

    • 복잡한 패턴 학습에 유리하다. 여러 모델의 힘을 합치므로, 하나의 간단한 모델로는 포착하기 힘든 복잡한 데이터 분포도 잘 근사할 수 있다. 결정 트리 앙상블은 이미지 분류를 제외한 구조화된 데이터(tabular data) 분야에서 사실상 표준이 될 정도로 좋은 성능을 보인다.

    • 과적합 완화 효과. 앙상블, 특히 배깅은 개별 모델의 과적합이 상호 상쇄되어 전체적으로는 과적합 위험이 줄어드는 경향이 있다. 따라서 단일 모델에 비해 더욱 안정적인 결과를 얻기 쉽다.

  • 앙상블 모델의 단점:

    • 해석이 어려움. 결괏값이 여러 모델의 투표나 가중합으로 나오기 때문에, 왜 그런 예측이 나왔는지 설명하기가 복잡하다. 예를 들어 랜덤 포레스트는 수백 그루의 트리를 사용하므로 개별 트리를 모두 이해하기 어렵다. (최근에는 SHAP 값 등의 기법으로 부분적인 해석을 시도하지만, 기본적으로 단일 트리만큼 직관적이지 않다.)

    • 계산 자원이 더 필요하다. 모델을 여러 개 돌려야 하므로 훈련이나 예측 시에 시간과 메모리 비용이 증가한다. 다만 트리 모델은 병렬화가 가능하여 큰 문제가 되지 않는 경우도 많다.

    • 너무 많은 모델 결합은 과적합을 다시 유발할 수도 있다. 특히 부스팅의 경우 모델을 계속 추가하면 결국 훈련 데이터에 완전히 맞춰져버릴 위험이 있다. 또한 이상치 데이터에 대한 과민 반응 등도 주의해야 한다.

요약하면, 결정 트리는 단독으로도 유용하지만 성능을 극대화하려면 앙상블을 사용하는 것이 유리한 경우가 많다. 반면에 결과의 투명성이나 훈련 비용 측면에서는 단순한 결정 트리가 더 나을 수 있다. 결국 문제의 성격과 요구사항에 따라 단일 트리 vs 앙상블을 선택하게 된다.


머신러닝 분류 알고리즘에서의 위치와 활용 맥락

결정 트리와 앙상블 기법은 머신러닝의 분류 영역에서 매우 중요한 위치를 차지한다. 결정 트리는 비선형 분류기의 대표 주자로, 통계적 가정에 크게 의존하지 않고도 데이터에서 직접 규칙을 학습할 수 있는 유연한 방법이다. 이는 선형 모델(로지스틱 회귀 등)이나 커널 기반 모델(SVM 등)과 대비되는 트리 기반 학습의 강점으로, 특히 범주형 데이터나 복잡한 조건부 논리가 있는 문제에서 두각을 나타낸다. 예를 들어 의료 진단이나 고객 세분화처럼 설명력이 요구되는 분류 문제에서 결정 트리는 그 결정 경로를 제시해주기 때문에 유용하다.

앙상블 기법은 현대 머신러닝 대회나 산업 응용에서 사실상의 기본 전략으로 여겨질 만큼 널리 활용된다. 랜덤 포레스트는 간단한 파라미터 튜닝만으로도 강력한 성능을 내며, 특징 선택이나 결측치 처리에도 강건하기 때문에 데이터 사이언스 실무에서 자주 사용된다. 부스팅 계열 알고리즘 (예: XGBoost)은 캐글(Kaggle)과 같은 경진대회에서 우승을 휩쓴 경험이 많아, 복잡한 분류 문제에 도전할 때 거의 빠지지 않고 등장하는 모델이다. 특히 탐색적 데이터 분석 단계에서 여러 모델을 빨리 시험해볼 때도 트리 기반 앙상블은 유용한 baseline으로 활용된다.

결정 트리와 앙상블은 서로 보완적인 관계로 볼 수도 있다. 결정 트리는 단순하고 해석 가능하기 때문에 개념 증명(proof of concept)이나 특성 중요도(feature importance) 파악 등에 좋고, 앙상블은 실제 예측 성능을 끌어올려 프로덕션 환경에 투입하기 좋다. 둘 다 머신러닝의 지도학습(Supervised Learning) 분류 영역에서 기본적으로 알아두어야 할 알고리즘이며, 나아가 회귀 문제에서도 비슷한 아이디어로 응용할 수 있다.



추천글:

[기계학습개론] Supervised learning technique - Support Vector Machine


hyeon_B

안녕하세요! AI 기술을 이용해 더 나은 세상을 만들어 나가고 싶은 과기원생 Hyeon이라고 합니다. 저는 앞으로 인공지능 시대에는 지식을 '활용'하는 능력이 중요해질 것이라고 생각합니다. 대부분의 일들은 인공지능이 뛰어난 모습을 보이지만, 인공지능은 데이터로 부터 연관관계를 학습하기 때문에 지식들을 새로 통합해서 활용하는 능력이 부족합니다. 인공지능이 뉴턴 전에 만들어졌다면 사과가 떨어지는 이유에 대답하지 못했을 것이고, 아인슈타인 전에 만들어졌다면 중력이 어떻게 생기는지 설명하지 못했을 것입니다. 따라서 앞으로 우리는 '본질'을 탐구하고 그 본질로부터 다른 곳에 적용하며 인공지능을 현명하게 활용해야 할 것입니다. 함께 인공지능 시대를 준비합시다!

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2