ex 어떤 제품들이 종종 함께 판매되는가? = 연관 규칙
프린터 구매 후 이어질 구매는 어떤 것인가? = 순차 패턴
데이터베이스 내에서 항목(item)들간의 관계 즉, 빈번하게 발생하는 패턴를 발견하기 위한 규칙 기반 학습(Rule-Based Learning) 방법이다.
이는 마케팅에서 고객들의 상품 구매 데이터를 이용하여 품목 간의 연관성을 알아본다는 의미에서 장바구니 분석(Market Basket Analysis) 이라고도 한다.
일반적으로 트랜잭션 내에서 또는 트랜잭션 전반에서 항목의 순서는 고려하지 않는다는 특징을 가진다.
아이템
: 가장 기본이 되는 단위로, 항목 및 상품을 의미트랜잭션
: 아이템 구매 로그 = 구매 내역아이템들 간의 Frequent patterns을 발견하기 위해서
💡 Frequent patterns
: 데이터베이스 내에서 빈번하게 발생하는 패턴 (아이템들의 집합)
X→Y with 최소 지지도를 만족하는 모든 연관규칙 X→Y들을 발견한 후 이들을 사용한다.
✅ 지지도 (Support)
✅ 신뢰도 (Confidence)
✅ 향상도 (Lift)
Lift > 1
: 양의 관계를 가진다Lift < 1
: 음의 관계를 가진다Lift = 1
: 아이템 X와 Y는 독립적이다Apriori, Eclat 및 FP-Growth 알고리즘은 잘 알려진 연관규칙 알고리즘이지만 빈발항목집합(frequent itemsets)을 마이닝하는 알고리즘이기 때문에 절반만 수행한다. 다음 단계는 데이터베이스에서 발견된 빈발항목집합에서 규칙을 생성하는 것이다.
최소 지지도(min support) 경계값 결정
→ 후보군(Candidate) 생성
→ 후보군에서 최소 지지도 경계값을 넘는 빈발항목집단을 추출
→ 위 과정을 반복하여 최종 빈발항목집합 생성
✔ 후보군 검증
한 아이템셋의 지지도가 최소 지지도보다 클 경우에만 frequent
❓ 만약 {beer, diaper, nuts} 집합이 frequent하다면?
→ {beer,diaper}, {beer,nuts}, {diaper, nuts} 모두 최소 지지도 넘는 frequent여야 함
❓ 만약 frequent하지 않은 아이템 셋이 있다면?
그 아이템셋으로 다른 집합이 생겨서는 안되니까 Apriori 가지치기 원리로 제거!
step 1. 결합 (Self joining)
itemset L1 = {abc, abd, acd, ace, bcd} 가 존재할 때,
결합을 통하여 (L1 * L1)
ex
abc, abd, acd, bcd로부터 abcd 생성
acd, ace, ade, cde로부터 acde 생성
❌ but, ade, cde가 L1에 포함되지 않으므로 acde는 제거 = 가지치기
연관 규칙에 시간의 개념을 더한 것!
따라서구매 순서가 중요
하다!
→ 이후에 이어질 구매는 어떤 것인가?
연관규칙분석이 '거래 중심'이라면, 순차패턴분석은 한 사람이 순차적으로 구매한 '상품 중심'이다.
Sequence의 집합이 주어졌을 때, 빈번히 발생하는 Sequence 집합을 찾는것
💡 Sequence
: 항목 집합을 순서로 나타낸 리스트
A sequence : < (ef) (ab) (df) c b > 라는 시퀀스가 주어졌을 때,
(ef) (ab) (df) c b 각 요소(element)는 서브 시퀀스이다.
한 요소 내의 아이템들은 (괄호 묶음) 순서를 고려하지 않는다!
정렬 및 빈발항목집합 도출
→ 시퀀스로 변환
→ 빈발 시퀀스 도출
→ 최대 시퀀스 탐색
순차 패턴의 기본특성은 Apriori와 동일하다.
ex
후보군 수를 계산한 후 최소 지지도 검증을 통해 후보군을 도출하는 과정을 반복하여
최종 후보군 시퀀스를 도출한다.