반응형
연관규칙 분석은 자료에 존재하는 항목(item)들 간의 if-then 형식의 연관규칙을 찾는 방법으로서 비지도 학습법의 일종입니다. 상품의 구매, 서비스 등 일련의 거래 또는 사건들 간의 연관성에 대한 규칙을 발견하기 위해 적용되고, 특히 마케팅에서 고객이 동시에 구매한 장바구니 내의 상품들에 대한 관련성을 분석하는 장바구니 분석에 많이 적용이 됩니다.
연관규칙 적용 예
연관규칙의 적용 예는 다양합니다.
- 금융 : 금융서비스 내용으로 부터 대출과 같은 특정한 서비스를 받을 가능성이 높은 고객 탐색
- 병원 : 합병증 발생 예측
- 보험 : 보험사기 패턴 탐색, 특정 서비스 신청 예측 등
- 인터넷 쇼핑몰 : 상품 추천
- 텍스트마이닝 : 웹페이지 간의 링크에 대한 분석
연관규칙의 유형은 유용한 규칙, 자명한 규칙, 설명이 불가능한 규칙으로 나뉘어 질 수 있습니다. 유용한 규칙을 기업의 전략에 수립하여야 합니다. 유형의 예를 들어 보면
- 유용한 규칙 : 예) 목요일, 아기기저귀->맥주 라는 규칙이 나왔다면 아기가 있는 젊은 부부들이 주말에 맥주를 마시기 위해서 기저귀와 맥주를 구매한다는 것을 알 수 있었습니다. 묶음판매 또는 상품 진열 등을 고려해 볼 수 있습니다.
- 자명한 규칙 : 예) L 냉장고 구매 => LG 김치 냉장고
- 설명 불가능한 규칙 : 예) 새로 연 건축 자재점 => 변기 덮개
연관성 규칙의 평가기준
아래 표는 고객들의 장바구니 내용이고, 각 장바구니의 상품들에 대한 동시구매표를 표기한 것입니다.
연관 규칙 (A=>B)
- 지지도(Support) : 관련성이 있다고 판단되는 거래나 사건의 확률
- 신뢰도(Confidence) : 품목 A를 구매했을 경우 품목 B의 구매할 확률
- 향상도(Lift 또는 Improvement)
Lift > 1 면 두 품목이 서로 양의 상관관계
Lift = 1 면 두 품목이 서로 독릭적인 관계
Lift < 1 면 두 품목이 서로 음의 상관관계
예) 위의 식료품 거래내역에서 오렌지=>사이다 연관규칙을 확인해 봅니다.
지지도 : 2/5
신뢰도 : (2/5)/(4/5) = 2/4
향상도 : (2/4)/(3/5)
Apriori 알고리즘
1. 최소 지지도를 넘는 모든 빈발품목집합(Frequennt item set)을 생성합니다.
2. 빈발품목집합에서 최소 신뢰도를 넘는 모든 규칙을 생성합니다.
장바구니 분석
- 데이터 셑을 만듭니다.
#장바구니 분석
dataset = [['오렌지주스','사이다'],
['우유', '오렌지주스', '식기세척제'],
['오렌지주스', '세제'],
['오렌지주스', '식기세척제', '사이다'],
['식기세척제', '사이다']]
|
- 동시구매내역과 apriori 알고리즘 사용을 이해 아래의 모듈을 import합니다.
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
|
trn = TransactionEncoder()
trn_result = trn.fit(dataset).transform(dataset)
trn_result |
- trn_result array을 데이터 프레임으로 변환합니다.
import pandas as pd
df = pd.DataFrame(trn_result, columns = trn.columns_) #데이터 프레임으로 변환하고, 품목이 출력되도록 columns를 정의
df
|
- 최소지지도을 0.1로 지정하여 확인합니다. 오렌지 주스를 살 확률은 0.8이고, (오렌지주스와 사이다), (오렌지주스와 식기세척제)를 구매할 확률은 0.4입니다.
itemset = apriori(df, min_support=0.1, use_colnames=True)
itemset
|
- association_rules 모듈을 import하여, confidence가 0.3 이상인 것만 표시합니다.
from mlxtend.frequent_patterns import association_rules
association_rules(itemset, metric="confidence", min_threshold=0.3) #신로도가 0.3 이상만 표시
|
'데이터분석 > 추천시스템' 카테고리의 다른 글
협업 필터링 추천 시스템(Collaborative Filtering : CF) (0) | 2024.07.24 |
---|---|
추천시스템에 대한 이해 (0) | 2023.10.12 |