Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

의사결정나무에서 속성 테스트 조건을 표현하는 방법은 무엇일까?

의사결정나무 유도란 무엇인가?

의사결정나무 유도(decision tree induction)는 클래스 레이블이 붙어 있는 학습 데이터(training tuples)로부터 의사결정나무를 학습하는 과정입니다. 의사결정나무는 순차 다이어그램과 유사한 트리 구조로, 모든 내부 노드(non-leaf node)는 속성에 대한 검사(test)를 나타내고, 각 분기(branch)는 그 검사의 결과를 정의하며, 각 잎 노드(leaf node, 단말 노드)는 하나의 클래스 레이블을 결정합니다. 트리의 최상위에 위치한 노드를 루트 노드(root node)라고 합니다.

즉, 의사결정나무 유도는 플로우차트와 비슷한 구조를 생성합니다. 내부(비잎) 노드는 속성에 대한 검사를, 각 분기는 검사 결과에 해당하며, 외부(잎) 노드는 최종적인 클래스 예측을 나타냅니다.

각 노드에서 알고리즘은 데이터를 단일 클래스로 깔끔하게 나눌 수 있는 '최선의(best)' 속성을 선택합니다. 속성 부분집합 선택(attribute subset selection)에 의사결정나무 유도를 활용하는 경우에는 주어진 데이터로부터 트리가 생성됩니다.

이때 트리에 등장하지 않는 속성들은 관련이 없는(irrelevant) 것으로 간주되며, 트리에 실제로 나타난 속성들의 집합이 곧 축소된 속성 부분집합을 형성하게 됩니다. 의사결정나무 유도 알고리즘은 다양한 속성 유형에 대해 속성 테스트 조건과 그에 따른 결과를 정의하는 방식을 지원합니다. 아래에서 속성 유형별 표현 방법을 살펴보겠습니다.

1. 이진 속성(Binary Attribute)

이진 속성은 0 또는 1의 두 가지 상태만 가지는 명목 속성입니다. 일반적으로 0은 해당 속성이 없음(absence)을, 1은 있음(presence)을 나타냅니다. 만약 두 상태가 참(true)과 거짓(false)에 해당한다면 이를 불리언(Boolean) 속성이라고 부릅니다.

두 상태가 동등한 가치를 지니고 동일한 중요도를 가진다면 이를 대칭(symmetric) 이진 속성이라고 합니다. 이 경우 어떤 결과를 0으로, 어떤 결과를 1로 코딩할지에 대한 선호는 존재하지 않습니다. 대표적인 예로 성별(gender) 속성의 '남성(male)'과 '여성(female)' 상태를 들 수 있습니다.

반면 상태의 결과가 동등하게 중요하지 않다면 비대칭(asymmetric) 이진 속성이라고 합니다. 예를 들어 HIV 검사에서 나오는 양성(positive)과 음성(negative) 결과가 그렇습니다. 관례적으로는 더 중요한 결과(흔히 드물게 발생하는 경우)를 1(예: HIV 양성)로, 나머지를 0(예: HIV 음성)으로 코딩합니다.

2. 명목 속성(Nominal Attribute)

명목(nominal)은 '이름(name)'과 관련된다는 의미입니다. 명목 속성의 값은 기호(symbol)나 사물의 이름입니다. 각 값은 어떤 종류의 범주(category), 코드(code), 상태(state) 등을 나타내기 때문에 명목 속성을 범주형(categorical) 속성이라고도 합니다. 이러한 값들 사이에는 의미 있는 순서가 존재하지 않으며, 컴퓨터 과학에서는 이를 열거형(enumeration)이라고도 부릅니다.

명목 속성의 테스트 조건은 각 고유 값마다 하나씩 분기를 두는 다방향(multiway) 분할로 자연스럽게 표현됩니다.

3. 서수 속성(Ordinal Attribute)

서수 속성은 값들이 의미 있는 순서나 순위(ranking)를 가지지만, 연속된 값 사이의 크기 차이(magnitude)는 알 수 없는 속성입니다. 예를 들어 '소/중/대' 규모나 학점(A/B/C/D/F)처럼 순서는 분명하지만 간격은 정확히 정량화되지 않는 값들이 이에 해당합니다.

서수 속성은 이진(binary) 분할뿐 아니라 다방향(multiway) 분할도 가능합니다. 서수 속성 값들을 그룹화하여 묶을 수도 있는데, 이때 그룹화가 속성 값 본연의 순서 특성을 위반해서는 안 된다는 점이 중요합니다.

4. 수치 속성(Numeric Attribute)

수치 속성은 정량적(quantitative)인 속성으로, 실제로 측정 가능한 양(measurable quantity)을 정수 값이나 실수 값으로 표현합니다. 수치 속성은 구간 척도(interval-scaled) 또는 비율 척도(ratio-scaled)일 수 있습니다.

수치 속성의 테스트 조건은 일반적으로 이산화(discretization) 기법을 통해 표현되며, 임계값(threshold)을 기준으로 한 이진 분할 또는 여러 구간으로 나눈 다방향 분할 형태로 나타낼 수 있습니다.