연관 규칙(Association Rule)이란?
•
연관 규칙이란 특정 사건들이 동시에 발생하는 빈도로 상호 연관성을 표현하는 규칙
•
빈발 아이템 집합으로 모든 데이터 집합에서 공통적으로 나타나는 아이템을 관찰
◦
아이템 간의 관계를 if..then으로 나타냄
◦
{peanut butter, jelly} → {bread}
•
유형
◦
장바구니 분석: A를 산 사람이 B도 같이 산다
◦
서열 분석: A를 사고나서 B를 산다
•
예
◦
암 데이터 분석에서 단백질 서열과 자주 발견되는 흥미로운 DNA의 패턴 찾기
◦
구매 패턴 분석하기
{버거} → {감자튀김}, {샐러드} → {과일}, {버거, 감자튀김} → {콜라}
◦
사기 신용카드나 보험과 복합해 발생하는 의료 청구 발견하기
◦
휴대폰 서비스를 정지하거나 케이블 텔레비전 패키지를 업그레이드하려는 행위의 사전 조합 식별하기
◦
영화 추천
가능한 추천 항목: {Movie1} → {Movie2}, {Movie2} → {Movie4}, {Movie1} → {Movie3}
지지도( Support)
•
전체 거래항목 중 상품 A와 상품 B를 동시에 포함하여 거래하는 비율
support(A, B) = P(A ∩ B)
신뢰도(Confidence)
•
상품 A를 포함하는 거래 중 A와 B가 동시에 거래되는 비중
•
상품 A를 구매했을 때, 상품 B를 구매할 확률이 어느 정도 되는지를 확인
•
confidence(A → B) = P(A ∩ B)/P(A)
향상도(Lift)
A가 주어지지 않았을 때 B의 확률 대비, A가 주어졌을 때 B의 확률 증가 비율
lift(A → B) = P(A ∩ B)/P(A) ⋅ P(B) = P(B|A)/P(B)
A와 B가 동시에 일어난 횟수 / A, B가 독립된 사건일 때, A, B가 동시에 일어날 확률
Lift = 1 : 서로 관련 없는 경우(두 품목이 서로 독립관계)
Lift > 1 : 두 품목이 양의 상관관계
Lift < 1 : 두 품목이 음의 상관관계
연관규칙분석 사례 1
A 구두와 B 바지의 연관규칙 분석
분석 결과 활용
•
A 구두를 구매한 고객에게 B바지를 추천
•
B바지의 마케팅 대상을 선정할 때, A구두를 구매한 고객을 선정
•
A 구두와 B바지를 패키지 상품으로 구성
연관규칙분석 사례 2
30대와 사망과의 연관규칙(타이타닉 데이터)
해석
•
30대이면서 사망한 케이스는 전체 데이터 중 20% 차지함
•
30대 중 33%의 탑승객이 사망함
•
30대와 사망와의 지지도는 0.83으로 1보다 작기 때문에 음의 상관관계임, 즉 30대와 사망률은 반비례
Apriori 알고리즘
•
빈발항목집합(frequent item sets, 최소지지도 이상을 갖는 항목집합) 만을 고려하여 데이터 간 연관관계를 밝히기 위한 방법
◦
모든 가능한 항목집합의 개수를 줄임
◦
아이템 수가 증가할수록 모든 경우의 수에 대해 지지도, 신뢰도, 향상도를 계산하는 것이 어려우므로, 이를 개선하기 위해 빈발 집합 (frequent item sets)만을 고려하여 연관규칙을 생성
◦
최소지지도 요건을 만족하지 못하는 아이템 집합의 규칙은 계산하지 않음
◦
컨텐츠 기반 추천 (contents-based recommendation)의 기본)
•
효율적인 연관규칙 탐색을 위한 수단
◦
거래에서 나타나는 모든 항목들의 가능한 부분집합의 개수나 연관규칙의 개수가 item 이 증가할 때마다 지수적으로 증가
◦
한 항목이 자주 발생한다면, 이 항목집합의 모든 부분집합 역시 자주 발생하는 빈발항목집합임
◦
한 항목이 자주 발생하지 않는다면, 이 항목집합을 포함하는 모든 집합은 자주 발생하지 않는 비빈발항목집합임
장점
•
매우 대량의 거래 데이터와 작동이 이상적으로 적합하다
•
쉽게 이해할 수 있는 결과를 내놓는다
•
‘데이터 마이닝’에 유용하고 데이터베이스 안에 예상하지 못한 지식을 발견한다
단점
•
작은 데이터셋에 유용하지 않다
•
상식과 통찰력을 구별해야 한다
•
무작위 패턴에서 거짓된 결과를 끄집어내기 쉽다
Apriori 알고리즘 적용 사례
다음 구매 내역을 분석하여 가장 연관성이 높은 항목을 Apriori 알고리즘으로 도출하시오
1.
최소 지지도 요건 설정: 0.2로 설정
2.
최소 지지도 요건 만족하지 못하는 요소 제거
•
라면: 0.8, 달걀: 0.5, 콜라: 0.5, 햇반: 0.3, 참치캔: 0.2, 양파: 0.1
•
양파 (0.1)는 최소지지도 요건을 만족하지 못하므로 제외
3.
최소 지지도 요건을 만족하는 2개짜리 아이템 집합 생성
•
구분라면달걀콜라햇반참치캔라면0.40.40.20.2달걀0.300.2콜라00.1햇반0참치캔
4.
최소 지지도 요건(0.2) 만족하지 못하는 요소 제거
•
(달걀, 햇반), (콜라, 햇반), (콜라, 참치캔), (햇반, 참치캔)
5.
상기 과정 반복
•
최소 지지도 요건 (0.2)을 나타내는 아이템 집합이 없을 때 까지 아이템 집합의 크기를 1씩 증가
6.
상위 연관 규칙 도출
•
{참치캔}→{달걀, 라면} : 지지도(0.2), 신뢰도(0.1), 향상도(2.5)
•
참치캔을 구매하는 소비자는 달걀과 라면을 동시에 살 확률이 높다