Notice
Recent Posts
Recent Comments
10-06 09:37
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

[ADP] 4장 데이터 분석 - 연관 분석 본문

AI/ADP

[ADP] 4장 데이터 분석 - 연관 분석

알 수 없는 사용자 2024. 8. 6. 15:34

 항목들 간에 조건-결과로 표현되는 패턴들을 발견하는 것을 연관 분석이라고 하며, 장바구니(market basket, 더 넓은 의미로 transaction이라고 해도 됨) 분석도 이러한 분석 기술을 이용한게 되겠다. 이런 분석을 잘한다면 마케팅에서 교차 판매나 다른 이벤트 등을 실행할 수 있을 것이다.

규칙에 있어서 기본 세가지 유형이 있다.

  • Useful: 유용한 정보와 실행 가능한 통찰을 제공하는 규칙
  • Trivial: 어떤 분야에 익숙한 사람이라면 이미 알고 있는 규칙
  • Inexplicable: 새로운 정보이지만 고객 행동에 대한 명확한 설명이 없는 규칙

이런 규칙들을 찾아내서 다음 측정 지표를 써서 분석을 한다.

 

측정지표

  • Support(지지도): 전체 transaction 중에 A item 이 발생할 비율 확률
    $Support(A) = P(A)$
    $Support(A \bigcup B) = Support(A ⇒ B) = P(A \bigcap B)$
    이게 Support 와 확률 P의 표기를 좀 통일시켰으면 좋겠는데 어디에서는 Support(A ∪ B) = P(A ∩ B)을 쓰고, 어디는 Support(A → B) = P(A ∪ B)를 쓴다. 근데 지금 이 표기를 전부 다 쓰고 있다는 것이다.
    이것에 대해 좀 더 자세히 아는 분은 댓글 부탁드립니다.
    여기에서는 notation을 $Support (A ⇒ B) = Support( A \bigcup B ) = P(A \bigcap B)$를 쓴다.
  • Confidence(신뢰도): 전체 transaction 중에 item A가 발생했을때 item B가 발생할 비율, 확률
    $Confidence(A ⇒ B) = \frac{Support(A \bigcup B)}{Support(A)}$
    조건부 확률과 같다.
  • Lift(향상도):
    $Lift(A ⇒ B) = \frac{P(B|A)}{P(B)} = \frac{P(A \bigcap B)}{P(A) P(B)} = \frac{Support(A \bigcup B)}{Support(A) \times Support(B)}$
    항목 간의 상관관계를 평가하는 지표
    1 초과: 두 품목이 서로 양의 상관관계
    1: 두 품목이 서로 독립
    1 미만: 두 품목이 서로 음의 상관관계
  • Conviction:
    $Conviction(A ⇒ B) = \frac{1 - Support(B)}{1 - Confidence(A ⇒ B} = \frac{P(A) P(Bᶜ)}{P(A \bigcup Bᶜ}$
    두 아이템이 의존적일때, 즉 종속적일 때, A가 B 없이 나타날 확률, 실제로 A와 B 없이 나타나는 빈도를 비교하는 지표

 

Apriori Algorithm

 최소 지지도를 갖는 연관규칙을 찾는 대표적인 방법중에 Apriori Algorithm이 있다. 최소 지지도 보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾게 된다.

  1. 최소 지지도를 설정
  2. 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾음
  3. 2에서 찾은 개별 품목만을 이용해 최소 지지도를 넘는 2가지 품목 집합을 찾음
  4. 위의 두 절차에서 찾은 품목 집합을 결합하여 최소 지지도를 넘는 3가지 품목 집합을 찾음
  5. 반복적으로 수행해서 최소 지지도가 넘는 빈발품목 집합을 찾음

 

장점

  • 탐색적 기법: if-then 형식의 조건 반응으로 표현되는 연관 분석의 결과를 이해하기 쉬움
  • 강력한 비목적성 분석기법: 분석 방향이나 목적이 특별하게 없는 경우 목적변수가 없으므로 유용함
  • 사용 편리한 분석 데이터의 형태: 거래 내용에 대한 데이터를 변환 없이 그대로 사용 가능
  • 계산의 용이성: 분석을 위한 계산이 간단

 

단점

  • 상당한 수의 계산과정: 품목 수가 증가하면 분석에 필요한 계산이 기하급수적으로 늘어남
    Use Taxonomy - 항목들을 일반화 시켜 조합의 수를 줄일 수 있음
    Use Pruning - 기준을 충족하지 않는 아이템이나 조합을 제거함
  • 적절한 품목의 결정: 너무 세분화된 품목을 가지고 연관규칙을 찾으려고 하면 의미없는 분석 결과가 나옴
  • 품목의 비율차이: 상대적으로 거래량이 적은 품목은 당연히 포함된 거래 수가 적으며, 규칙 발견시 제외되기가 쉬움

 

Process

  1. Transactions, minimum support 준비
  2. for( k = 1 ; k < n-1 ; k++)
    1. Transactions(T) 중에서 minimum support $s_min$ 을 넘으면서 항목이 k개인 것들을 찾음
    2. $C_k$에 대해 $L_k$을 다음과 같이 정의
      $L_1 = \{ c \in C_1 | support(c) ≥ s_{min} \}$
    3. $L_1 \times L_1$ 의 항목에 대해서 $s_min$을 넘기는 transaction에 대해 $C_{k+1}$를 생성
  3. end

과정 중간중간에 필요하지 않은 subset을 제거하는 것을 pruning이라고 함.

  1. minimum confidence 준비
  2. 나온 L 집합들에 대한 가능한 모든 rule 생성
    ex. L_3 = {{1, 2, 3}, {3, 6, 8}, {1, 4, 7}} 이라면,
    나올 수 있는 규칙 들은 {1, 2} ⇒ {3}, {1, 3} ⇒ {2}, {2, 3} ⇒ {1}, {3, 6} ⇒ {8}, {3, 8} ⇒ {6}, {6, 8} ⇒ {3}, {1, 4} ⇒ {7}, {1, 7} ⇒ {4}, {4, 7} ⇒ {1}
    여기서 {1} ⇒ {2, 3} 을 사용하지 않는 이유: confidence({1, 2} ⇒ {3}) ≥ confidence({1} ⇒ {2, 3}) 이기 때문에 가장 큰걸 보고 가장큰게 minimum confidence 를 넘지 않으면 전부 버리는 것이 더 빠르고 나음.
  3. 각 rule에 대한 신뢰도 Confidence 계산하여 minimum confidence를 넘기는 규칙만을 남김
  4. lift, conviction 를 통해 연관 규칙에 대한 평가 실행
Comments