결정 트리와 랜덤 포레스트: 데이터 분석의 든든한 나무🌳
**결정 트리(Decision Tree)**와 이를 확장한 **랜덤 포레스트(Random Forest)**에 대해 알아보자.

1. 결정 트리란?
결정 트리는 트리 모양으로 문제를 해결하는 알고리즘
예를 들어: 오늘 우산을 가져갈지 말지 결정할 때,
- 날씨가 맑으면 → 우산 필요 없음
- 날씨가 흐리면 → 우산 챙김
이런 식으로 조건을 따라 내려가며 결정을 내린다.
결정 트리의 주요 개념
🌟 루트 노드(Root Node)
- 트리의 출발점
- 예를 들어 "날씨"라는 속성을 기준으로 시작한다고 해보자.
🌟 내부 노드(Internal Node)
- 중간에 위치한 결정 요인들
- 예: "날씨가 흐림"이면 다음 조건인 "비 올 확률"로 이동.
🌟 리프 노드(Leaf Node)
- 최종 결과를 나타낸다
- 예: "우산을 챙긴다" 또는 "우산을 챙기지 않는다".
🌟 지니 불순도(Gini Impurity)
- 노드의 혼합 정도를 측정하는 값이다.
- 데이터가 섞여 있으면 지니 불순도가 높고, 한쪽으로 치우쳐 있으면 낮다.
🌟 지니 평가지수(Gini Index)
- 부모 노드와 자식 노드의 불순도를 비교해, 트리를 어떻게 나눌지 결정한다
- 목표는 지니 평가지수를 최소화하는 방향으로 트리를 확장하는 것.
🌟 결정 트리의 장점
- 결과가 트리 형태라 이해하기 쉽고 설명력이 뛰어남.
- 분류와 회귀 문제 모두에 활용 가능.
🌟 결정 트리의 단점
- 데이터를 너무 잘 학습해 **과다적합(Overfitting)**될 위험이 있음.
- 노이즈가 많은 데이터에 취약함.
2. 랜덤 포레스트란?
랜덤 포레스트는 결정 트리의 단점을 보완하기 위해 등장한 알고리즘이에요.
한 개의 결정 트리가 아니라 여러 개의 트리를 묶어 문제를 해결해요.
이를 통해 과다적합 문제를 해결하고, 일반화 성능을 높이는 것이 목표
랜덤 포레스트의 주요 개념
🌟 배깅(Bagging)
- (랜덤) 데이터를 여러 번 리샘플링해서 각기 다른 결정 트리를 학습하는 방법
- 다양한 트리를 학습시켜 결과의 다양성을 확보한다
🌟 결합 방법
- 분류 문제: 각 트리의 결과를 다수결(보팅)로 결정.
- 회귀 문제: 각 트리의 예측값의 평균을 사용.
🌟 랜덤성(Randomness)
- 트리를 학습할 때, 데이터를 무작위로 샘플링하고, 일부 속성만 선택해 학습
- 이 과정에서 다양한 트리가 생성되고, 과다적합이 줄어든다.
🌟 장점
- 과다적합 문제를 완화하고 일반화 성능이 뛰어남.
- 복잡한 데이터에서도 높은 예측 성능을 보여줌.
🌟 단점
- 많은 트리를 생성하다 보니 학습 시간이 길어질 수 있음.
- 결과를 해석하기 어렵고, 결정 트리만큼 직관적이지 않음.
3. 결정 트리와 랜덤 포레스트의 차이점
특징 결정 트리 랜덤 포레스트
구조 | 하나의 트리 | 다수의 트리(앙상블) |
과다적합 문제 | 노이즈에 민감해 과다적합 위험 있음 | 과다적합을 완화 |
속도 | 학습과 예측 속도가 빠름 | 학습 시간이 더 오래 걸림 |
결과 해석 | 트리 구조로 시각적 이해 가능 | 해석이 어렵고 직관적이지 않음 |
4. 요약하며
결정 트리와 랜덤 포레스트는 강력한 머신러닝 기법으로, 데이터를 분류하거나 예측할 때 많이 사용된다.
- 결정 트리는 간단하고 직관적인 알고리즘으로 데이터의 분포를 이해하기에 적합하다.
- 랜덤 포레스트는 더 정교하고 일반화된 예측을 원할 때 효과적
결정 트리와 랜덤 포레스트로 데이터 분석의 숲을 멋지게 탐험해 보자 😊
'데이터 > 방통대 - 머신러닝' 카테고리의 다른 글
[내 머리로 머신러닝] 분류 - 베이즈분류기, K-최근접이웃 분류기 (0) | 2024.12.07 |
---|---|
[내 머리로 머신러닝] 회귀 (2) | 2024.11.28 |
[내 머리로 머신러닝] 군집화 (2) | 2024.11.28 |
[내 머리로 머신러닝] 강화학습 (0) | 2024.11.25 |
[내 머리로 머신러닝] 자연어처리 (0) | 2024.11.25 |