스터디노트 5월 12일

Jenny·2024년 5월 14일

연관규칙분석을 통한 장바구니 분석

목차

  • 문제상황 요약
  • Process

문제상황 요약

: A마트의 매대 진열을 다시 기획하는 중에 서로 잘 팔리는 상품에 대하여 가까이 진열하려고 한다. 고객의 구매데이터(POS)를 활용해서 같이 잘 팔리는 상품을 확인하고 레이아웃을 기획한다.

Process 01 구매 데이터 전처리 및 탐색

  • Data 전처리
    1) Data shape 확인
    2) Data type 확인
    3) Null값 확인
    4) Outlier 확인
  • Data 확인 및 전처리
df.head()

  • TransactionEncoder를 활용하여 모든 List 값을 unique하게 row와 col으로 만든다

Process 02 구매규칙 탐색

  • Apriori 를 사용하여 규칙탐색
    - 연관규칙 : 비지도학습, 대규모 거래 데이터로부터 함께 구매될 규칙 학습. 추천 시스템. 특정 사건이 발생하였을 때 함께 빈번하게 발생하는 사건의 규칙
    • Apriori : 최소지지도(support) 이상을 갖는 항목 집합을 통해 규칙을 생성하는 알고리즘
    • 장단점 : 많은 연관규칙들을 발견할 수 있지만 비즈니스 측면에서 의미있는 규칙을 발견하기 어려움
    • 사용예 : 마트에서 장바구니 분석을 통한 상품추천 및 진열
    • 작용원리 : 전체 Data set에서 최소지지도 이상을 만족하는 빈발 항목의 집합을 생성하고 새로운 빈발 항목이 생기지 않을 때까지 반복한 후 이를 활용하여 연관규칙을 생성한다.
from mlxtend.frequent_patterns import apriori, association_rules
frequent_itemset = aprior (te_df, min_support=0.005, max_len=3, use_colnames=True)
frequent_itemset.sort_values ('support', ascending=False, inplace=True)
# 특정 규칙을 찾고 싶을 때
frequent_itemset [frequent_itemset['itemset'] == frozenset (('bacon', 'asparagus'))]
# 생성된 rules의 추가 지표들에 대한 탐색을 위해 metric과 threshold 설정
association_rules_df = association_rules (frequent_itemset, metric='confidence', min_threshold=0.005)

Proecss 03 유의미한 구매규칙 도출

  • Support/Confidence/Lift 개념이해
    - Support : 지지도. 전체 거래항목 중 해당 규칙이 나올 확률
    • Confidence : 신뢰도. 조건부확률. A의 거래 중에서 B가 포함된 거래의 확률
    • Lift : 향상도. 임의로 B가 나올 확률 대비 A, B가 같이 나올 확률.
# Lift가 1 이상인 유의미한 규칙만 탐색
rules = association_rules (frequent_itemset, metric='lift', min_threshold=1).sort_values(by = ['lift',  'confidence','support'], ascending=False)

이 글은 제로베이스 데이터 분석 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
I like to movie movie

0개의 댓글