#3. 분류 트리, 트리 구조 모델, 분할정복법, 논리문
데이터세트 안에서 정보를 잘 전달하는 속성(:기준이 되어 데이터를 분류했을 때 부분집합의 타겟값이 동일한 비율이 높아짐)은 데이터세트 안에서 하나만 있는 것이 아니다. 여러 개의 속성을 기준으로 분류한다고 할 때, 어떤 순서로 해야할까? 이를 위해 알아야 하는 것이 다변량Multivariate 감독 세분화이다.
1. 분류 트리
분류 트리를 이용하면 데이터를 속성에 따라 세그먼트(알고자 하는 타겟변수의 값/계층)에 분류할 수 있다. 분류 트리에 입력된 데이터는 루트 노드(Root node, 시작점)에서부터 내부 노드Internal node 안에 설정된 속성에 따라 차례차례 분류되며, 최종적으로 단말 노드(Leaf node,타겟값)에 안착한다. 데이터의 속성에 의해 분류되므로 단말 노드를 제외한 노드를 결정 노드Decision node라고 부른다. 한 번 입력된 데이터는 언제나 특정 계층값에 도달하게 된다. 분류 트리는 트리 구조 모델 중 하나이다. 감독 세분화 기법들 중 트리 구조 모델은 이해하기도 쉽고 상대적으로 성능도 좋아서 널리 사용된다.
비즈니스 애플리케이션은 보통 '고객이 상품 A를 구매할 것이다, 구매하지 않을 것이다'와 같은 행동여부 그 자체보다는 '고객A가 상품B를 구매할 확률이 70%이다'와 같은 확률의 예측을 필요로 한다. 이때 이를 위해서 단말노드에는 '구매한다', '구매하지 않는다'와 같은 값이 아니라 확률, 측 수치형 값이 있어야 한다.
이제 트리 구조 모델을 만들어보자.
2. 분류 트리 유도 과정
트리 유도는 분할정복Divide-and-Conquer법을 사용한다. 맨 처음 분할할 때는 전체 데이터셋에 대해서 가장 순수한 부분집합들로 분할하는 변수를 찾는다. 그 뒤에는 동일한 과정을 하위 그룹 각각에 대해 적용하면 된다. 각각의 하위 그룹에 대해서 그 집합이 순수하지 않다면, 순도를 높이는(정보량을 증가시키는) 속성을 찾아 그것을 따라 또다시 분할하면 된다. 분할을 계속하다 모든 하위집합이 순수해지면(또는 더이상 적용할 속성이 없으면) 중단한다. 속성을 선택할 때는 현재 그룹에 국한해서 생각하면 된다. 분할을 반복할 때는 과적합에 유의해야 한다.
그룹 내 객체들의 동질성이 높을수록 엔트로피는 감소한다. 분류 트리의 분할 과정을 거치면, 단말 노드에 가까워질수록 하위 그룹들 내 객체들의 타겟값 일치 비율은 상승한다. 즉 엔트로피가 감소하는 것이다. 그렇기에 하위 노드로 갈수록 엔트로피가 감소한다고 생각하면 된다. 그렇다면 분기한 이후의 엔트로피는 어떻게 계산하는가? 부모 집합(전체 집합)의 엔트로피를 구하듯이, 분기한 이후에 생성된 자식 집합들의 엔트로피를 구한 후 각자의 비율(전체에 대한 하위 그룹의 비율)을 가중치로써 곱해주고 나서 모두 더하면 된다. 그렇게 하면 구해지는 것이 자식 집합의 엔트로피이고, 상위 그룹(부모집합)과의 차이를 계산하면 정보 증가량의 값을 얻게 된다.
3. 논리문으로 분류트리 읽기
데이터는 루트 노드에서부터 여러 속성 판별 과정을 거쳐 최종적으로 단말 노드에 도착한다. 분류 트리의 속성 판별의 과정은 논리곱(AND) 표현들이 결합한 것이라고 생각하면 된다. 각각의 세그먼트에 대해 논리문으로 표현하면 된다. 따라서 분류 트리의 논리문은 타겟값의 계층 개수만큼 작성된다.
IF(속성A) AND (속성B) THEN Class = C
'배우는 것 > Maching Learning' 카테고리의 다른 글
#6. 파이썬 기본지식 공부(1) (0) | 2021.12.21 |
---|---|
#5. 지도학습에서의 과적합화 (0) | 2021.12.20 |
#4. 얼렁뚱땅 주피터로 맛보기학습 (0) | 2021.12.19 |
#2. 감독 학습, 정보를 전달하는 속성, 엔트로피, 정보증가량(IG) (0) | 2021.12.17 |
#1. CRISP데이터 마이닝 프로세스, 사용 시나리오, 누설 (0) | 2021.12.17 |