Just Fighting

[개념 정리] 의사 결정 나무 본문

ML & DL

[개념 정리] 의사 결정 나무

yennle 2022. 5. 3. 00:45
728x90

의사결정나무는 나무를 이용해 의사결정을 한다.

 

의사결정나무는 아래 그림처럼 생겼다.

테스트를 위쪽에 놓고 해당 테스트로 발생 가능한 결과를 아래쪽에 놓는다.

하나의 테스트로 모두 판별되는 간단한 형태도 있지만

그렇지 않다면 또 다른 테스트를 통해 데이터 분류가 가능하다.

 

 

의사결정나무는 어떤 테스트를 선택하느냐에 따라 다양한 형태로 만들 수 있다.

다양한 테스트를 중에서 가장 성능이 좋은 테스트를 선택하는 것이 좋다.

이때 사용되는 개념이 엔트로피이다.

 

 

엔트로피 식

엔트로피는 불순도의 정도를 측정하며, 낮을수록 좋다.

이때, 불순도란 노드에 서로 다른 데이터가 얼마나 섞여있는지를 의미한다.

따라서 불순도가 낮을수록 데이터가 섞여있지 않다는 뜻이다.

아래 그래프에서 볼 수 있듯이 확률이 애매(?)할 때 엔트로피가 가장 높아지는 것을 볼 수 있다.

 

 

 

연습을 해보자!
아래 사진과 같은 데이터가 있다고 하자.

날씨, 바람, 온도, 습도를 이용해 어떤 테스트를 사용할지 정해보자.

 

 

먼저 날씨에 대해서 엔트로피를 구해보자.

데이터 속에 맑음4개가 되고, 그중에서 배드민턴을 친 경우가 2, 치지 않은 경우가 2번이다. 따라서 위의 식을 세울 수 있었고, 엔트로피가 1의 값을 가지게 된다.

 

맑음과 마찬가지로 흐림의 엔트로피를 구하면 3개의 흐림 데이터 중에서 배드민턴을 친 경우가 0, 치지 않은 경우가 3번이다. 이를 사용한 엔트로피는 0의 값을 가진다.

 

의 엔트로피도 이렇게 구할 수 있다.

 

 

그리고 이 엔트로피값을 이용해 정보 획득량을 구해 날씨 테스트의 성능 점수를 구한다.

정보획득량 식

Entropy(S)는 전체에 대한 엔트로피를 의미한다. 따라서 8개의 데이터 중에서 배드민턴을 친경우가 3번 치지 않은 경우가 5번인 것을 이용해 엔트로피를 구하면 된다.

그리고 뒤에 식은 위에서 구한 엔트로피 값과 각각의 확률을 곱해주면 된다.

맑음의 경우 8번중에 4번이고, 흐림은 8번중에 3, 비는 1번인 것을 이용해 앞에서 구한 엔트로피 값과 각각 곱해준다.

그 결과 정보획득량은 0.45가 나오게 되었다.

 

 

이런 방식으로 바람, 온도, 습도에 대해서도 IG값을 구해서 가장 높은 테스트를 선택한다.

그리고 정확하게 분류하지 못한다면 똑같이 반복해서 다음 테스트를 선택하면 된다.

 

 

참고 : 장철원, 「선형대수와 통계학으로 배우는 머신러닝 with 파이썬」, 비제이퍼블릭(2021)

728x90
Comments