장바구니 분석 또는 서열 분석이라고도 불러용
데이터베이스 내에서 상품의 구매, 조회 등 연속된 거래들 사이의 규칙을 발견하기 위해 사용합니당
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%
자 어느정도 정리됐으니 다음으로 갑니당!
setk-itemset : k개의 item으로 이뤄진 itemsettransaction data에서 itemset이 등장하는 횟수itemset이 전체 transaction data에 등장하는 비율support 값 이상의 itemsetInfrequent itemset은 반대로 유저가 지정한 최소 support보다 작은 itemsetFrequent 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가 연관성이 높고 유의미하다는 의미!
오늘은 여기까지 정리하겠습니당! 다음을 기대해주세요!