장바구니 분석
또는 서열 분석
이라고도 불러용
데이터베이스 내에서 상품의 구매, 조회 등 연속된 거래들 사이의 규칙
을 발견하기 위해 사용합니당
Example
1.맥주
와기저귀
를 같이 구매하는 빈도는?
2.컴퓨터
를 산 고객이 다음에 가장 많이 사는 상품은?
주어진 거래Transaction
데이터에 대해서 하나의 상품 등장 시 다른 상품이 같이 등장하는 규칙을 찾는 것입니다.
Transcation | Items |
---|---|
1 | {빵, 우유} |
2 | {빵, 기저귀, 맥주, 계란} |
3 | {우유, 기저귀, 맥주, 콜라} |
4 | {빵, 우유, 기저귀, 맥주} |
5 | {빵, 우유, 기저귀, 콜라} |
인과 관계
가 아닌 연관 규칙
입니다. '반드시'가 아닌 그럴 확률에 높다고 보면 됩니당.우선 해당 알고리즘에서 사용되는 몇 용어가 있습니당. 이것부터 정리해보졉
규칙
: IF condition THEN result {A} {B} 형식으로 표현
연관 규칙
: 특정 사건 발생 시 함께 빈번하게frequently
발생하는 또 다른 사건의 규칙을 의미
IF part = antecedent
, THEN part = consequent
itemset
= antecedent
와 consequent
를 이루는 상품의 set
(antecedent
와 consequent
는 서로소disjoint
를 만족)
Example)
antecedent
: {빵, 버터},consequent
: {우유}confident factor
= 90%
자 어느정도 정리됐으니 다음으로 갑니당!
set
k-itemset
: k개의 item으로 이뤄진 itemset
transaction
data에서 itemset이 등장하는 횟수itemset
이 전체 transaction data
에 등장하는 비율support
값 이상의 itemset
Infrequent itemset
은 반대로 유저가 지정한 최소 support
보다 작은 itemset
Frequent itemset
들 사이의 연관 규칙
을 만들기 위해선 척도measurement
가 필요합니당. 그게 제목에서 언급된 support
, confidence
, lift
입니당!
itemset
X, Y를 모두 포함하는 transaction
의 비율transaction
에 대한 itemset
의 확률값support
는 '빈도가 높거나, 구성 비율이 높은' 좋은 규칙을 찾거나, 불필요한 연산을 줄일 때 사용됩니다.
transaction
가운데 Y도 포함하는 transaction
비율(조건부 확률)confidence
가 높을 수록 유용!
lift
가 1 X, Y는 독립lift
가 1 보다 큶 두 상품의 양의 상관관계를 가짐, 1 보다 작음 음의 상관관계를 가짐
요 알고리즘은 일반적으로 confidence
로 정렬하고, lift
로 cutoff하는 방식으로 Top K을 설정한다고 합니당!
위에 언급된 방식에 대한 예시를 살짝 정리해보면,
Transcation | Items |
---|---|
1 | {맥주, 우유} |
2 | {빵, 기저귀, 맥주, 계란} |
3 | {우유, 기저귀, 맥주, 콜라} |
4 | {빵, 우유, 기저귀, 맥주} |
5 | {빵, 우유, 기저귀, 콜라, 계란} |
{빵(X)} {계란(Y)}
support
confidence
lift
이렇게 됩니당!
가능한 itemset
에 대해서 rule
은 기하급수적으로 많아진다고 합니당. 따라서 유의미한 rule
만 사용하도록 해야 합니당
사용법
1. 최소한의support
, 최소한의condfidence
로 의미 없는rule
을 screen out!
전체transcation
중에서 너무 적게 등장하거나, 조건부확률이 아주 낮은rule
필터링
2.lift
값으로 내림차순 정렬을 하여 의미 있는rule
을 평가
lift
가 크다는 것은rule
을 구상하는antecedent
와consequent
가 연관성이 높고 유의미하다는 의미!
오늘은 여기까지 정리하겠습니당! 다음을 기대해주세요!