미래에 무슨일이 일어날것인지 알고자 하는 모델
과거에 일어났던 일들에 대해 분석하는 모델
Decision Lists는 Seperate-and-Conquer 를 따른다.
결정트리는 Divide-and-Conquer를 따른다 했던것과 비교되는데,
의미를 해석하자면, 데이터를 걷어내면서 분류하기 때문
이다.
아래에는 Positive로 Labeling 되어있는 행과 Negative로 Labeling 되어있는 행이 존재함
해당 테이블에서 각 컬럼별 레코드별 취할 수 있는 값 각각을 Literal 이라 한다.
- 예를 들어 "Lenght = 3", "Beak = yes" 등을 Literal 이라고 함
과정 이해하기
- 1. Literal을 전부 나열함
- 2. 하나의 클래스(POS,NEG)값만을 가지는 Literal을 채택
- 3. 해당 Literal이 커버하는 데이터는 전부 걷어냄
- 4. 1~3 반복
해당 과정을 종합하면 아래와 같음
알고리즘으로 살펴보면 아래와같음
위 Decision Lists와 비슷하지만 다르다.
애초에 이름도 List가 아닌 Set을 사용한 이유는 순서가 없기 때문이다.
Decision Lists 같은 경우에 아래와 같이 조건문으로 연결
되어있는형태이다.
if Gills==yes:
Class = minus
elif Teeth==many:
Class = Plus
elif Length==4:
Class = minus
else:
Class = Plus
하지만 Unordered Rule Sets은 순서가 없으며
클래스별로 하나씩 집중해서 순차적으로 진행한다.
이 말의 의미는 Class = (Positive, Negative)
라면
1. Positive에 대해 Rule 순차적으로 생성
2. Negative에 대해 Rule 순차적으로 생성
함을 의미
if Length == 3:
Class = Plus
if (Gills==no) & (Length==5):
Class = Plus
if (Gills==no) & (Teeth==many):
CLass = Plus
if (GIlls==yes):
Class = Minus
if (Length==4) & (Teeth==few):
CLass = minus
주의할점은 Unordered Rule Sets는 Homegeneity를 최대화하는것이 아닌
학습하고자 하는 클래스의 Empirical Probability (Precision)을 최대화 한다.
아래그림에서 처음에 'Length=3'인 Literal을 택한거보다
'Gills=no' Literal에서 한번더 Literal을 추가한형태가 더많은 Positive를 걸러낼 수 있음.
위처럼 기존의 Greedy 방식 같은 문제점을 해결하기 위해 Beam Search와 같은 방식을 사용