본문 바로가기
데이터/방통대 - 머신러닝

[내 머리로 머신러닝] 결정트리와 랜덤포레스트

by 단단_SINCE 2023 2024. 11. 28.

 

결정 트리와 랜덤 포레스트: 데이터 분석의 든든한 나무🌳

**결정 트리(Decision Tree)**와 이를 확장한 **랜덤 포레스트(Random Forest)**에 대해 알아보자. 


@ 그 유명한 타이타닉 결정트리

 

1. 결정 트리란?

결정 트리는 트리 모양으로 문제를 해결하는 알고리즘
예를 들어: 오늘 우산을 가져갈지 말지 결정할 때,

  • 날씨가 맑으면 → 우산 필요 없음
  • 날씨가 흐리면 → 우산 챙김
    이런 식으로 조건을 따라 내려가며 결정을 내린다.

결정 트리의 주요 개념

🌟 루트 노드(Root Node)

  • 트리의 출발점
  • 예를 들어 "날씨"라는 속성을 기준으로 시작한다고 해보자.

🌟 내부 노드(Internal Node)

  • 중간에 위치한 결정 요인들
  • 예: "날씨가 흐림"이면 다음 조건인 "비 올 확률"로 이동.

🌟 리프 노드(Leaf Node)

  • 최종 결과를 나타낸다
  • 예: "우산을 챙긴다" 또는 "우산을 챙기지 않는다".

🌟 지니 불순도(Gini Impurity)

  • 노드의 혼합 정도를 측정하는 값이다.
  • 데이터가 섞여 있으면 지니 불순도가 높고, 한쪽으로 치우쳐 있으면 낮다.

🌟 지니 평가지수(Gini Index)

  • 부모 노드와 자식 노드의 불순도를 비교해, 트리를 어떻게 나눌지 결정한다
  • 목표는 지니 평가지수를 최소화하는 방향으로 트리를 확장하는 것.

🌟 결정 트리의 장점

  • 결과가 트리 형태라 이해하기 쉽고 설명력이 뛰어남.
  • 분류와 회귀 문제 모두에 활용 가능.

🌟 결정 트리의 단점

  • 데이터를 너무 잘 학습해 **과다적합(Overfitting)**될 위험이 있음.
  • 노이즈가 많은 데이터에 취약함.

2. 랜덤 포레스트란?

랜덤 포레스트는 결정 트리의 단점을 보완하기 위해 등장한 알고리즘이에요.
한 개의 결정 트리가 아니라 여러 개의 트리를 묶어 문제를 해결해요.
이를 통해 과다적합 문제를 해결하고, 일반화 성능을 높이는 것이 목표

랜덤 포레스트의 주요 개념

🌟 배깅(Bagging)

  • (랜덤) 데이터를 여러 번 리샘플링해서 각기 다른 결정 트리를 학습하는 방법
  • 다양한 트리를 학습시켜 결과의 다양성을 확보한다

🌟 결합 방법

  • 분류 문제: 각 트리의 결과를 다수결(보팅)로 결정.
  • 회귀 문제: 각 트리의 예측값의 평균을 사용.

🌟 랜덤성(Randomness)

  • 트리를 학습할 때, 데이터를 무작위로 샘플링하고, 일부 속성만 선택해 학습
  • 이 과정에서 다양한 트리가 생성되고, 과다적합이 줄어든다.

🌟 장점

  • 과다적합 문제를 완화하고 일반화 성능이 뛰어남.
  • 복잡한 데이터에서도 높은 예측 성능을 보여줌.

🌟 단점

  • 많은 트리를 생성하다 보니 학습 시간이 길어질 수 있음.
  • 결과를 해석하기 어렵고, 결정 트리만큼 직관적이지 않음.

3. 결정 트리와 랜덤 포레스트의 차이점

특징 결정 트리 랜덤 포레스트

구조 하나의 트리 다수의 트리(앙상블)
과다적합 문제 노이즈에 민감해 과다적합 위험 있음 과다적합을 완화
속도 학습과 예측 속도가 빠름 학습 시간이 더 오래 걸림
결과 해석 트리 구조로 시각적 이해 가능 해석이 어렵고 직관적이지 않음

4. 요약하며

결정 트리와 랜덤 포레스트는 강력한 머신러닝 기법으로, 데이터를 분류하거나 예측할 때 많이 사용된다.

  • 결정 트리는 간단하고 직관적인 알고리즘으로 데이터의 분포를 이해하기에 적합하다.
  • 랜덤 포레스트는 더 정교하고 일반화된 예측을 원할 때 효과적

결정 트리와 랜덤 포레스트로 데이터 분석의 숲을 멋지게 탐험해 보자 😊