[인공지능개론] information based learning - ID3 algorithm 예시

 

ID3 알고리즘으로 식생 분포 예측하기

서론

이전 포스팅에서는 ID3 알고리즘의 개념과 작동 방식에 대해 자세히 알아보았다. 이번에는 실제 예제를 통해 ID3 알고리즘을 더욱 깊이 이해해보자. 'Predicting Vegetation Distributions' 예제는 생태학적 모델링에서 토지의 식생 유형을 예측하는 문제를 다룬다. 이 문제는 대규모, 고해상도 토지 조사가 비용이 많이 들기 때문에 소규모 조사 결과를 사용하여 예측 모델을 만드는 것이 목표이다.

데이터셋 설명

vegetation classification dataset example

'Predicting Vegetation Distributions' 예제에서 사용되는 데이터셋은 다음과 같은 3가지 설명 변수를 포함한다.

  • STREAM: 지역에 하천이 있는지 여부를 나타내는 이진 변수
  • SLOPE: 지역의 경사를 나타내는 변수로, 'flat', 'moderate', 'steep' 세 가지 값을 가질 수 있다.
  • ELEVATION: 지역의 고도를 나타내는 변수로, 'low', 'medium', 'high', 'highest' 네 가지 값을 가질 수 있다.

예측해야 할 목표 변수는 VEGETATION이며, 'chaparral', 'riparian', 'conifer' 세 가지 값을 가질 수 있다.

ID3 알고리즘 적용

ID3 알고리즘을 적용하여 결정 트리를 생성하는 과정은 다음과 같다.

  1. 정보 이득 계산: 각 설명 변수에 대한 정보 이득을 계산한다.
  2. 루트 노드 선택: 정보 이득이 가장 높은 설명 변수를 루트 노드로 선택한다.
  3. 데이터 분할: 루트 노드에서 선택된 설명 변수를 기준으로 데이터를 분할한다.
  4. 자식 노드 생성: 분할된 데이터셋에 대해 1~3단계를 재귀적으로 반복하여 자식 노드를 생성한다.
  5. 종료 조건: 모든 잎 노드가 순수해질 때까지 4단계를 반복한다.

정보 이득 계산

먼저 전체 데이터셋의 엔트로피를 계산한다.

H(VEGETATION, D) = 1.5567 bits

다음으로 각 설명 변수에 대한 정보 이득을 계산한다. (계산법은 이전글 참조)

  • STREAM: 0.3060
  • SLOPE: 0.5774
  • ELEVATION: 0.8774

ELEVATION 변수의 정보 이득이 가장 높으므로, ELEVATION을 루트 노드로 선택한다.

데이터 분할

ELEVATION 변수를 기준으로 데이터를 분할하면 다음과 같은 4개의 부분 집합이 생성된다.

  • ELEVATION = low: {2}
  • ELEVATION = medium: {3, 4}
  • ELEVATION = high: {1, 5, 7}
  • ELEVATION = highest: {6}

자식 노드 생성

각 부분 집합에 대해 1~3단계를 재귀적으로 반복하여 자식 노드를 생성한다. 예를 들어, ELEVATION = medium 부분 집합에 대해서는 STREAM 변수의 정보 이득이 1.0으로 가장 높으므로 STREAM을 자식 노드로 선택한다.

종료 조건

모든 잎 노드가 순수해질 때까지 자식 노드 생성 과정을 반복한다. 최종적으로 생성된 결정 트리는 다음과 같다.

ELEVATION
  - low: riparian
  - medium:
    - STREAM = true: riparian
    - STREAM = false: chaparral
  - high:
    - SLOPE = flat: conifer
    - SLOPE = moderate, steep: chaparral
  - highest: conifer
decision tree

결론

ID3 알고리즘은 정보 이득을 기반으로 결정 트리를 생성하는 효율적인 알고리즘이다. 오늘은 'Predicting Vegetation Distributions' 예제를 통해 ID3 알고리즘의 작동 방식을 자세히 살펴보았다. 다음에는 다시 새로운 주제, similarity based learning에 대해 알아보고자 한다.

추천글 : 

[인공지능개론] information based learning - ID3 algorithm의 개념
(https://hyeonb.blogspot.com/2024/10/information-based-learning-id3-algorithm.html)

[인공지능개론] information based learning - Decision tree
(https://hyeonb.blogspot.com/2024/10/information-based-learning-decision-tree.html)

[인공지능개론] information based learning - Shannon's entropy model
(https://hyeonb.blogspot.com/2024/10/information-based-learning-shannons.html)

hyeon_B

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

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2