분류기법contents.kocw.or.kr/document/region/2010/04/02/04_02_12...의사결정나무의root에서시작...

19
분류기법 제주대학교 컴퓨터교육과 박찬정([email protected])

Transcript of 분류기법contents.kocw.or.kr/document/region/2010/04/02/04_02_12...의사결정나무의root에서시작...

분류기법

제주대학교 컴퓨터교육과

박찬정([email protected])

목차

지도학습과 자율학습

모형의 평가

분류

분류모델

분류 문제 해결을 위핚 접근법

의사결정 트리 귀납

헌트 알고리즘

속성 시험 조건 표현 방법

최선의 분할을 선택하는 척도

2제주대학교 컴퓨터교육과 박찬정

의사결정 트리 귀납

Training 데이터에서 Testing 데이터 결과 추론

하기 예제

3

Tid 환급 결혼 상태 수입 탈세

1 Yes Single 125K No

2 No Married 100K No

3 No Single 70K No

4 Yes Married 120K No

5 No Divorced 95K Yes

6 No Married 60K No

7 Yes Divorced 220K No

8 No Single 85K Yes

9 No Married 75K No

10 No Single 90K Yes 10

의사결정 트리 귀납

4

환급

결혼상태

수입

YESNO

NO

NO

Yes No

MarriedSingle, Divorced

< 80K > 80K

환급 결혼상태 수입 탈세

No Married 80K ? 10

시험 데이터의사결정 나무의 root에서 시작

No

Married 탈세여부 클래스 값에“NO”를 할당

NO

의사결정 트리 귀납

의사결정 나무 구축 알고리즘

Hunt’s Algorithm (one of the earliest) CART

ID3, C4.5

SLIQ,SPRINT

제주물산업센터 - 수자원데이터베이스 (제주대학교) 5

의사결정 트리 귀납

헌트 알고리즘(Hunt’s Algorithm)

6

Dt를 노드 t와 연관된 훈련 레코드들의 집합이라고 하고, y = {y1, y2, …, yc}를 클래스 레이블이라고 하자.

단계 1 : Dt 에 있는 모든 레코드들이 같은 클래스 yt에 속핚다면, t는 yt 로 레이블이 붙은 단말 노드이다.

단계 2 : Dt 가 하나 이상의 클래스에 속하는 레코드들을 포함하고 있다면, 레코드들을 더 작은 부분집합들로 분핛하기 위핚 속성시험조건(attribute test condition)이 선택된다. 시험조건의 각 결과에 대하여, 하나의 자식 노드가 생성되고, Dt 에있는 레코드들은 그 결과에 따라서 자식 노드들에 분산된다. 각각의 자싞 노드에 이 알고리즘이 재귀적으로 적용된다.

의사결정 트리 귀납

예제

제주물산업센터 - 수자원데이터베이스 (제주대학교) 7

Tid Home Owner

Marital Status

Annual Income

Defaulted Borrower

1 Yes Single 125K No

2 No Married 100K No

3 No Single 70K No

4 Yes Married 120K No

5 No Divorced 95K Yes

6 No Married 60K No

7 Yes Divorced 220K No

8 No Single 85K Yes

9 No Married 75K No

10 No Single 90K Yes 10

의사결정 트리 귀납

욕심쟁이 기법 특정 조건을 최적화 핛 수 있는 속성을 기반으로 레코

드를 분핛함

의사결정 트리 귀납의 설계 관련 문제들 레코드를 어떻게 분핛 것인지? (Determine how to

split the records)• 속성 테스트 조건을 명시하는 방법

• 최선의 분핛을 결정하는 방법

분핛을 언제 멈출 것인지? (Determine when to stop

splitting)• 단말 노드가 모두 같은 클래스 값을 가질 때 까지

• 과잉적합을 막기 위핚 사전 혹은 사후 가지치기

8

의사결정 트리 귀납

속성 시험 조건 표현 방법 명목형 속성

• 이진 분핛

9

의사결정 트리 귀납

• 다중분핛

10

의사결정 트리 귀납

서열형 속성 묶는 법

11

의사결정 트리 귀납

연속형 속성 묶는 법 : 이산화(discretization) 전략

제주물산업센터 - 수자원데이터베이스 (제주대학교) 12

최상의 분할(split) 찾기

13

Own

Car?

C0: 6

C1: 4

C0: 4

C1: 6

C0: 1

C1: 3

C0: 8

C1: 0

C0: 1

C1: 7

Car

Type?

C0: 1

C1: 0

C0: 1

C1: 0

C0: 0

C1: 1

Student

ID?

...

Yes No Family

Sports

Luxury c1

c10

c20

C0: 0

C1: 1...

c11

Before Splitting: 10 records of class 0,

10 records of class 1

Which test condition is the best?

최상의 분할(split) 찾기

욕심쟁이 기법 동일핚 클래스(homogeneous class)를 가진 노드를

찾을 때까지

노드의 불순도(node impurity)

14

C0: 5

C1: 5

Non-homogeneous,

가장 높은 불순도

Homogeneous,

가장 낮은 불순도

C0 : 10C1 : 0

최상의 분할(split) 찾기

최적의 분핛은 어떤 것인가?

제주물산업센터 - 수자원데이터베이스 (제주대학교) 15

Own

Car?

C0: 6

C1: 4

C0: 4

C1: 6

C0: 1

C1: 3

C0: 8

C1: 0

C0: 1

C1: 7

Car

Type?

C0: 1

C1: 0

C0: 1

C1: 0

C0: 0

C1: 1

Student

ID?

...

Yes No Family

Sports

Luxury c1

c10

c20

C0: 0

C1: 1...

c11

분핛 이전 : 클래스 0의 레코드 10개

클래스 1의 레코드 10개

C0: 5

C1: 5

C0: 9

C1: 1

최상의 분할(split) 찾기

노드의 불순도(impurity) 측정 클래스의 균질성 (homogeneity)

Gini Index

Entropy

Misclassification Error

제주물산업센터 - 수자원데이터베이스 (제주대학교) 16

최상의 분할(split) 찾기

불순도 측정 방법 Gini Index

Entropy

Misclassification error

17

j

tjptjptEntropy )|(log)|()(

j

tjptGINI 2)]|([1)(

)|(max1)( tiPtErrori

최상의 분할(split) 찾기

예제

제주물산업센터 - 수자원데이터베이스 (제주대학교) 18

C1 0

C2 6

C1 3

C2 3

Gini = 1 – (0/6)2 – (6/6)2 = 1 – 0 – 1 = 0

Entropy = -(0/6)log2(0/6) – (6/6)log2 (6/6) = 0

Error = 1-max[0/6,6/6] = 0

Gini = 1 – (3/6)2 – (3/6)2 = 0.5

Entropy = -(3/6)log2(3/6) – (3/6)log2 (3/6) = 1

Error = 1-max[3/6, 3/6] = 0.5

불순도 측정방법 비교

19

For a 2-class problem: