본문 바로가기

R프로그래밍,통계학

연관분석 - 개념과 R코드로 가시화 하기

반응형

연관규칙분석

-연관성분석은 흔히 장바구니분석(Market Basket Analysis) 또는 서열분석(Sequence Analysis)이라고 불린다.

(장바구니분석 : '장바구니에 무엇이 같이 들어 있는지에 대한 분석'
서열분석 : 'A를 산 다음에 B를 산다')

-기업의 데이터베이스에서 상품의 구매, 서비스 등 일련의 거래 또는 사건들 간의 규칙을 발견하기 위해 적용한다.

 

연관규칙의 형태

-조건과 반응의 형태(if then)로 이루어져 있다.

( Item set A) -> (Item set B)
If A then B : 만일 A가 일어나면 B가 일어난다.

아메리카노를 마시는 손님 중 10%가 브라우니를 먹는다.
샌드위치를 먹는 고객의 30%가 탄산수를 함꼐 마신다.

 

 

연관규칙의 측도

-산업의 특성에 따라 지지도, 신뢰도, 향상도 값을 잘 보고 규칙을 선택해야 한다.

 

1. 지지도(support)

:전체 거래 중 항목 A와 항목 B를 동시에 포함하는 거래의 비율로 정의한다.

 

지지도 =$$P(A \cap B) = \frac{A와 B가 동시에 포함된 거래수}{전체 거래수} = \frac{A \cap B}{전체}$$

 

 

 

2.신뢰도(confidence)

:항목 A를 포함한 거래 중에서 항목 A와 항목B가 같이 포함될 확률이다. 연관성의 정도를 파악할 수있다.

 

신뢰도 =$$\frac{P(A \cap B)}{P(A)} = \frac{A와 B가 동시에 포함된 거래수}{A를 포함하는 거래수} = \frac{지지도}{P(A)}$$

 

3.향상도(Lift)

:A가 구매되지 않았을 때 품목 B의 구매확률에 비해 A가 구매됐을 때 품목 B의 구매확률의 증가 비이다.

연관규칙 A -> B는 품목 A와 품목 B의 구매가 서로 관련이 없는 경우에 향상도가 1이 된다. 

 

향상도 =$$\frac{P(B | A)}{P(B)} = \frac{A와 B가 동시에 포함된 거래수}{A를 포함하는 거래수*B를 포함하는 거래수} = \frac{신뢰도}{P(B)}$$

 


R코드 실습

 

분석 대상 및 목적

-R에서 기본적으로 제공하는 데이터 집합인 Groceries 데이터 집합을 사용

-식료품간의 연관규칙을 도출하고, 규칙 품목 간의 관계를 가시화

분석 데이터 개요

-슈퍼마켓의 고객 구매 데이터로, 9835건의 거래에 169개 품목 데이터

-연관규칙 생성을 위한 최소 지지도 0.1 (%)

-연관규칙 생성을 위한 최소 신뢰도 50  (%)

-향상도 기준으로 상위 3개의 규칙 확인

 

 

 

Step1. 패키지를 설치하고 Groceries 데이터를 불러옵니다.

install.packages("arulesViz") 
library(arulesViz) 
data("Groceries") 
summary(Groceries) 

 

 

 

Step2. 최소 지지도 0.001, 최소신뢰도 0.5 이상의 연관규칙만을 생성하고 inspect() 함수를 통해 

라프트 기준으로 상위 3개의 생성된 규칙들을 확인합니다.

rules <- apriori(Groceries, parameter=list(support=0.001, confidence =0.5)) 
rules
inspect(head(sort(rules,by="lift"),3)) 

 

 

 

 

Step3.위의 기준(최소 지지도 0.001, 최소신뢰도 0.5 이상의 연관규칙)으로 plot을 그려봅니다.

plot(rules)
plot(rules,jitter=0)  # 점들이 겹쳐지지 않게 표현

 

 

 

Step4. 향상도 기준으로 상위 3개의 규칙들을 생성하여 subrules2에 할당하고

생성된 연관규칙을 그래프로 가시화 해봅니다.

subrules2 <- head(sort(rules, by="lift"),3) 
plot(subrules2, method = "graph", control = list(type = "item"))

 

 

 

 

#그래프 해석하기 및 다양한 옵션 참조

rfriend.tistory.com/193 

 

 

 

 

 

 

 

반응형