보편적으로 사용되는 분야 (정해진 것은 아님,classification model이 regression할 수 있도록 할 수 있다)
Classification
supervised
차수 (일주일 단위)
5-1.
📌
의사 결정 나무!
[Decision Tree]
Goal
1. 의사 결정 트리를 구성하는 것.
2. Tree를 바탕으로 “best attribute”를 찾는 것
Entropy
정보량, 엔트로피가 작아지는 방향으로 탐색을 진행한다.
엔트로피(information, 즉 정보량과 같은 말이라고 봐도 무방하다)는 다음과 같이 구할 수 있다.
📌
추가 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은 밑과 같다.
Example 1
→
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로 표시해 둔다.
(위 예제는 discrete한 value에 대한 예제였지만, continuous한 value에 대해서도 같은 작업을 할 수 있다)
Pros Cons
Pros
Non-linear한 boundary를 만들어줄 수 있다.
Cons
계산량이 많다.
Tree가 너무 깊으면 overfit될 수도 있다. → 따라서 tree가 overfit되지 않게 깊이를 조절해 주어야 한다.