본문 바로가기
Archive/데이터 분석 관련

[Data] 연관규칙분석이란?

by 다람이도토리 2021. 10. 14.

연관규칙분석이란?

[출처]
해당 링크를 통해 공부 및 실습해보았습니다.
https://zephyrus1111.tistory.com/119

도입

어떤 가게 하나를 생각해보자. 이 가게에서 약 50 종류의 물건을 판매하고 있다고 가정하자.
가게의 매출을 효율적으로 올리기 위해, 마케팅 등을 실시하고 싶은데 어떤 물건들끼리 묶어서 판매하거나 홍보해야 가장 효율적인지에 대해 답해보고 싶다.

이를 위해서는 사람들이 어떤 물건들을 샀는지 조사해보려고 한다. A물건과 B물건을 유의미하게 같이 많이 살 수록, 두 물건을 묶어주는 것이 좋을 것이다.

이에 대한 통계적 분석을 내려주는 것이 바로 연관규칙분석(Association Rule Analysis.)이다. 다른 말로는 장바구니분석이라고도 한다. 위의 상황에 딱 맞는 어휘 선택인 것 같다.

연관 규칙 분석 측도

위의 상황을 해석하기 위한 상황을 만들어 보고자 한다.

User_Name Item
A 삼겹살, 쌈장, 버섯
B 삼겹살, 쌈장, 두부, 된장
C 두부, 된장, 모기약, 버섯
D 쌈장, 모기약, 된장, 버섯, 두부
E 삼겹살, 버섯, 피망, 모기약

user 5명에 대한 구매 이력을 다음과 같이 남겼다.

[1] 신뢰도(Confidence)

신뢰도는 아이템 X를 샀을 때, 얼마나 아이템 Y도 같이 샀는지에 대한 비율이다.

즉 이는 조건부 확률로 표현인 P(Y|X)을 통해 구할 수 있을 것이다.

예를들어, 삼겹살을 샀을 때 버섯과 두부의 구매 비율을 생각하면

P(두부|삼겹살) = 1/3
P(버섯|삼겹살) = 2/3

으로 (삼겹살, 두부)의 신뢰도 보다는 (삼겹살, 버섯)의 신뢰도가 더 높음을 볼 수 있다.

[2] 지지도(Support)

지지도는 X와 Y를 동시에 포함하는 비율을 의미한다. 즉 P(X ∩ Y)에 해당될 것이다.

예를 들어, 두부에 대해 고려하면

지지도(두부, 된장) = 3/5
지지도(두부, 버섯) = 2/5

으로 두부를 살때 보통 버섯보다는 된장을 세트로 사는 경향이 더 있을것이다라고 추정할 수 있다.

[3] 향상도(Lift), 레버리지(Leverage)

위의 상황에서 추가로 User F는 피망과 모기약을 샀다고 가정해보자.
P(피망|삼겹살) = 1/3인 시점에서 삼겹살의 구매가 피망에 정말 영향이 있는지를 생각해보면
P(피망) = 1/3으로, 삼겹살의 구매와 피망의 구매는 서로 연관이 없이 독립적이다는 것을 알 수 있다.

즉,  Item Y의 구매 가능성 P(Y)가 Item X에 얼마나 영향을 받을 것인지에 대해 고려해볼 수 있다.
독립 여부는 레버리지를 통해서도 볼 수 있다.! P(X∩Y)-P(X)P(Y)로 측정할 수 있다. 

Lift의 값에 따른 분석
Lift 는 P(Y|X) / P(Y)로 정의된다.
(1) Lift = 1 -> X와 Y는 독립이다.
(2) Lift > 1  X가 Y의 발생에 양의 영향을 미친 것이므로, 양의 상관관계를 예측할 수 있다. 
(3) Lift < 1 X와 Y의 음의 상관관계를 예측할 수 있다.

 

실습코드

https://github.com/SeongwonTak/TIL_swtak/blob/master/DataScience/211014_Apriori%20algorithm.ipynb

 

GitHub - SeongwonTak/TIL_swtak: Today, I learned.

Today, I learned. Contribute to SeongwonTak/TIL_swtak development by creating an account on GitHub.

github.com