본문으로 바로가기

Rule based learning 은 error 가 많기 때문에 현실에서 잘 적용되지 못한다.

그래서 대안으로 쓸수 있는것이 Decision Tree 이다.

 

Rule based learning 에서 보았던 아래의 Hypothesis가 있다고 생각해보자.

<Sunny, ?,?,?,?,?>

Sunny 만 되면 Enjoy sport 가 Yes 일 경우는 현실에서 거의 없다.

 

이것을 Decision Tree 로 표현 하면 아래와 같다.

"Sky 가 Sunny 이면 Enjoy Sport 가 Yes이고  Rainy 면 Enjoy Sport 가 No 이다." 와같은 Tree 형태로 표현할수 있다. 

이형태의 Tree를 하나의 Hypothesis 로 간주한다.

이것을 Decision Tree 라 한다.

 

아래의 Hypothesis 도 Decision Tree 로 표현해 보자.

아래와 같이 표현할수 있을것이다.

1. Rainy 이면 Enjoy Sport 가 No

2. Cold 이면 Enjoy Sport 가 No

3. Wind 가 light 이면 Enjoy Sport 가 No

4. Wind 가 Strong 이면 Enjoy Sport 가 Yes

 

또다른 예제를 살펴보자. 

신용평가 데이터셋을 통해 고객의 신용등급을평가하는 예제이다. (Credit Approval Dataset)

아래는 Attribute라는것이 있다. 개별 고객에 대해 신용평가했던 기반자료를 15가지 (A1~A15) 기준으로 나눈 Code book 이라한다.

예를 들면 한 은행직원이 Code book 의 여러 기준중에 A1 하나만 이용해서 판별한다고 생각해보자.

a 는 예를 들면 항상 negative 결과를 준다고 생각을했을때 , A1의 a일 경우에 112 의 Case는 맞고 98 case는 틀리다.

b 도 예를 들면 항상 negative 결과를 준다고 생각을했을때 , A1의 b일 경우에 262 의 Case는 맞고 206 case는 틀리다.

(?는 데이터가 없다는 의미다.)

 

또다른 은행직원은 A9를 이용해서 신용등급을 판별한다고 생각해보자.

A9은 307개의 positive case, 383개의 negative case를 들고 있다. 

 

A9이 t(True) 일 경우 항상 positive로 결론을 내린다고 하면 284 case는 맞고 77 case는 틀리다.

A9이 f(false)라고 판정된 경우 negative로 결론을 내린다고 하면 306 case는 맞고 23 case 는 틀리다.

 

위의 예제 처럼 어떤 특성을 기준으로 판별하냐에 따라 성능이 많이 달라진다.

하나의 특성만 활용하면 에러가 있는 케이스가 많이 생길수 있다.