HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
장지원 페이지/
기계학습개론
기계학습개론
/
#09. Decision Tree

#09. Decision Tree

선택
mid
참고 자료
https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-4-%EA%B2%B0%EC%A0%95-%ED%8A%B8%EB%A6%ACDecision-Tree
텍스트
Mar 26, 2024
보편적으로 사용되는 분야 (정해진 것은 아님,classification model이 regression할 수 있도록 할 수 있다)
Classification
supervised
차수 (일주일 단위)
5-1.
📌
의사 결정 나무!
 

[Decision Tree]

Goal
1. 의사 결정 트리를 구성하는 것.
notion image
2. Tree를 바탕으로 “best attribute”를 찾는 것
Entropy
정보량, 엔트로피가 작아지는 방향으로 탐색을 진행한다.
엔트로피(information, 즉 정보량과 같은 말이라고 봐도 무방하다)는 다음과 같이 구할 수 있다.
notion image
📌
추가 tip
 
  • 앞에 (-)를 붙여주는 이유는 확률 값이 log에 들어가면 음수(1보다 작으므로)가 되기 때문이다.
  • all postive(=yes)이거나, all negative(=no)이면 엔트로피는 0이 된다.
  • 반반이라면 엔트로피는 1이된다.
 
example: 14개의 표본에서 9개의 pos, 5개의 neg가 있다면, 이 때 엔트로피는 0.940이 될 것이다.
Information Gain
Info gain은 original info에서 expected info를 빼주면 된다!
최종적으로 우리는 info gain이 가장 큰 것을 선택하면 된다.
 
밑의 예제를 통해서 더 자세히 알아보자.
📌
예제를 살펴보자!
우리가 볼 예제의 table은 밑과 같다.
notion image
 
Example 1
notion image
→
High 쪽의 entropy → -(3/7)log(3/7)-(4/7)log(4/7)
Normal 쪽의 entropy → -(6/7)log(6/7)-(1/7)log(1/7)
Expected entropy → (7/14)0.985+(7/14)0.592
(위에서 볼 수 있듯이, 가중을 곱해서 더해 준다)
Original entropy → -(9/14)log(9/14)-(5/14)log(5/14)
Info gain = 0.940 - ((7/14)0.985+(7/14)0.592) = 0.151이다

Example 1과 같은 방법을 사용해서 Outlook, Temperature, Wind의 info gain을 모두 구한다. 각각 0.246, 0.029, 0.048 나오게 되었고, 따라서 decision tree는 밑과 같이 Outlook부터 분기 하도록 만들어진다. 이후 각 attribute에서 이 과정을 계속 반복하여 Tree의 Node(pure 해질 때 까지=yes or no만 있을 때 까지)까지 간다. 그리고 all pos, all neg 되는 시점에 leaf를 만들어 둔다. 예를 들어서 overcast일 때는 항상 yes이기 때문에 yes로 표시해 둔다.
notion image
 
(위 예제는 discrete한 value에 대한 예제였지만, continuous한 value에 대해서도 같은 작업을 할 수 있다)
Pros Cons
Pros
  • Non-linear한 boundary를 만들어줄 수 있다.
Cons
  • 계산량이 많다.
  • Tree가 너무 깊으면 overfit될 수도 있다. → 따라서 tree가 overfit되지 않게 깊이를 조절해 주어야 한다.
    • Pruning이라는 가지치기 방식을 활용해서 tree의 가지를 줄여주기도 한다.
 
 

[Random Forest]

Random Forest
앙상블 메서드이다. (Bagging)
weak한 classsifier를 voting해서 구하자.