개발/잡다개발

연관규칙분석 Apriori Algorithm

개복치 개발자 2020. 7. 31. 13:01

 

연관규칙분석 알고리즘에 대해서 알아보겠습니다.

 

장바구니 알고리즘이라고도 하는데

 

예를 들면 기저귀를 산 사람(가정에 아이가 있는 사람이겠죠?)이 분유나, 아이용품 등을 살 확률이 높은 것인데, 이 것을 수치화해놓은 것입니다.

 

품목 X,Y가 있다고 할 때, 이 품목들에 대해서 전체 상품에서 수치화를 시켜서 나타낼 수 있는데, 지지도, 신뢰도, 향동도에 대해서 나타낼 수 있습니다.

 

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

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

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

 

저희는 지지도와 신뢰도만 알아보도록 하겠습니다.

 

예를 들면 아래와 같은 테이블이 있다고 생각해봅시다.

 

구매자 구매리스트
p1 A B C
p2 D A E
p3 A B F G
p4 F B E
p5 A C E
p6 C E H

 

이럴 때, 지지도는 몇일까요? 

 

총 구매자 6명 중, A B를 동시에 구매한 사람은 2명(p1,p3) 입니다.

 

이 때 지지도는 2/6 = 33.33%가 됩니다.

 

그렇다면 신뢰도는 몇일까요?

 

A와 B의 신뢰도가 다를 수 있기 때문에, 각각 구해봐야 합니다.

 

그러면 A를 산 사람이 B를 살 확률을 구해보면

 

A를 구매한 사람 4명(p1,p2,p3,p5)면 총 구매자 6으로 나누면 확률은 2/3가 됩니다.

 

그러면 확률 계산을 하면

 

A,B를 동시에 산 사람 / A를 산 사람

 

(1/3) / (2/3) = 50% 가 됩니다.

 

B를 구매한 사람이 A를 살 확률을 구해보면

 

(1/3) / (1/2) = 2/3 이 됩니다.

 

때문에, B를 산 사람은 A를 살 확률이 더 높습니다. A를 산 사람이 B를 살 확률보다.

 

구현을 한다면 아래와 같이

 

 

 

 

 

 

참고

[1] - https://medium.com/@unfinishedgod/%EC%97%B0%EA%B4%80%EA%B7%9C%EC%B9%99%EB%B6%84%EC%84%9D-apriori-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-in-r-236d12e3a74a

[2] - https://ordo.tistory.com/89

[3] - https://hezzong.tistory.com/entry/python-%EC%97%B0%EA%B4%80%EA%B7%9C%EC%B9%99%EB%B6%84%EC%84%9DA-Priori-Algorithm

 

 

'개발 > 잡다개발' 카테고리의 다른 글

파비콘 html적용 방법  (0) 2020.09.07
nginx uwsgi  (0) 2020.09.04
공분산 메모  (0) 2020.07.17
SNA 메모  (0) 2020.07.17
Word2Vec  (0) 2020.07.14