Everything about Association Rule#2

be1le·2022년 5월 17일
0

ML

목록 보기
16/22
post-thumbnail

연관규칙분석(Apriori 알고리즘)

비지도 학습에 해당하는 연관규칙 분석에 Apriori 알고리즘을 소개 하도록 하겠다! 마케팅에서는 고객의 장바구니에 들어 있는 품목간의 관계를 알아본다는 의미에서 장바구니분석(market basket analysis)라고도 부른다. 이는 다음의 4개의 방법으로 활용 되고 있다.

  • 효율적인 상품 진열
  • 패키지 상품 개발
  • 교차판매 전략
  • 기획상품의 결정

연관규칙분석의 대표적 적용 사례는 다음과 같다.

  • 백화점, 호텔 등 서비스업에서 고객들의 특정 서비스를 받은 후 다음에 어떤 서비스를 원하는지 미리 알 수 있음.
  • 신용카드사나 은행에서는 고객들의 기존 금융서비스 내역으로부터 대출과 같은 특정한 서비스를 받을 가능성이 높은 고객을 찾을 수 있음
  • 의료보험이나 손해보험에서는 고객의 보험금 청구가 기존의 정상적인 청구와 다른 패턴을 보이는 경우 보험사기의 징조로 간주하여 추가적인 조사를 할 수 있음.
  • 인터넷 쇼핑몰에서 상품 추천
  • 텍스트마이닝에서 연관 키워드 또는 유사 문서 추출
  • 웹사이트의 접속자의 페이지간의 이동

연관규칙분석에서 측도

우선 품목 X, Y가 있다고 하자. 그럼 이는 X => Y에 대한 측도를 알 수 있다. 측도는 지지도 (Supprot) / 신뢰도 (Confidence) / 향상도 (Lift) 가 있다.

1.지지도 (Support): 전체 거래에서 X, Y를 동시에 포함한 거래 비율

  • P(X∩Y) = ( X,Y를 동시에 포함하는 거래수) / (전체 거래수)

2.신뢰도 (Confidence)(X => Y): X를 구입한 거래 중 Y를 같이 구입한 비율

  • P(Y|X) = P(X∩ Y) / P(X) = (X,Y를 동시에 포함하는 거래수) / (품목 X를 포함하는 거래수)

3.향상도 (Lift)(X => Y): X를 구매 했을 때 Y의 구매비율이 그러한 조건이 없는 경우에 비해 얼마나 커지는가를 나타내는 지표

  • P(Y|X) / P(Y)

연관규칙 분석측도 예시
-

위 테이블을 통해 구매자 P1~P6의 구매 리스트 A, B에 대한 지지도 / 신뢰도 / 향상도를 알아보도록 하자.

  • 지지도
    물품 A와 B를 동시에 구매한 구매자 가 몇인가? (P1, P3) = 2
    총 구매자는 몇인가? (P1 ~ P6) = 6
    즉, A와B의 지지도는 2/6 = 1/3 = 33.33% 정도가 된다.

  • 신뢰도
    신뢰도가 다를 수 있기 때문에, 신뢰도(A => B)와 신뢰도(B => A)를 나누어서 구해야 한다.
    신뢰도 (A = > B)
    물품 A를 구매한 구매자는 몇인가? (P1,P2,P3,P5) = 4
    총구매자는 몇인가? = 6
    즉, P(A)는 4/6 = 2/3이 된다. 이제 지지도 / P(A) 를 구해보자.
    신뢰도 (A => B) : (1/3) / (2/3) = 1/2 = 50% 가 된다.
    신뢰도 (B => A)
    물품 B를 구매한 구매자는 몇인가? (P1,P3,P4) = 3
    총구매자는 몇인가? = 6
    즉, P(B)는 3/6 = 1/2이 된다. 이제 지지도 / P(B) 를 구해보자.
    신뢰도 (B => A) : (1/3) / (1/2) = 2/3 = 66.66% 정도가 된다.
    이를 보았을때, 물품 A를 산사람은 B를 살 확률 보다는 B를 산 사람은 A를 살 확률이 더 높다는 것을 알 수가 있다.

  • 향상도
    P(A∩B) / [P(A)P(B)] = (1/3) / [(2/3)(1/2)] = 1/4 = 25% 가 나오게 된다.

Apriori 알고리즘

Apriori 알고리즘은 1993년 애가왈(Agarwal)과 스리칸트(Srikant)에 의해 제안됐다. 이 알고리즘은 트랜잭션 데이터를 다루기 위해 만들어졌으며, 각 트랜잭션은 아이템들의 집합이나 아이템 세트이다. 요약하자면, 이 알고리즘은 데이터 세트 내에서 최소 N번의 트랜잭션이 일어난 아이템 집합들을 발견한다.

profile
그저 그런 개발자가 되지 않겠습니다.

0개의 댓글