Data Analysis

R/머신러닝 & 딥러닝

[R] 연관분석 실습 (2) 시각화

Holy_Water 2022. 11. 14. 16:00

arules패키지에서 제공되는 내장 데이터 Adult를 이용하여 연관규칙을 생성하고 유사한 연관규칙끼리 네트워크 형태로 시각화

 

실습 (Adult 데이터 셋 가져오기)

data(Adult)
Adult

 

실습 (AdultUCI 데이터 셋 보기)

data("AdultUCI")
str(AdultUCI)

 

실습 (Adult 데이터 셋의 요약통계량 보기)

 

1단계: data.frame형식으로 보기

adult <- as(Adult, "data.frame")
str(adult)
head(adult)

 

2단계: 요약통계량

summary(Adult)

 

실습 (지지도 10%와 신뢰도 80%가 적용된 연관규칙 발견)

ar <- apriori(Adult, parameter = list(supp = 0.1, conf = 0.8))

 

실습 (다양한 신뢰도와 지지도를 적용한 예)

 

1단계: 지지도를 20%로 높인 경우 1,306개 규칙 발견

ar1 <- apriori(Adult, parameter = list(supp = 0.2))

 

2단계: 지지도를 20%, 신뢰도 95%로 높인 경우 348개 규칙 발견

ar2 <- apriori(Adult, parameter = list(supp = 0.2, conf = 0.95))

 

3단계: 지지도를 30%, 신뢰도 95%로 높인 경우 124개 규칙 발견

ar3 <- apriori(Adult, parameter = list(supp = 0.3, conf = 0.95))

 

4단계: 지지도를 35%, 신뢰도 95%로 높인 경우 67개 규칙 발견

ar4 <- apriori(Adult, parameter = list(supp = 0.35, conf = 0.95))

 

5단계: 지지도를 40%, 신뢰도 95%로 높인 경우 36개 규칙 발견

ar5 <- apriori(Adult, parameter = list(supp = 0.4, conf = 0.95))

 

실습 (규칙 결과 보기)

1단계: 상위 6개 규칙 보기

inspect(head(ar5))

 

2단계: confidence(신뢰도)기준 내림차순 정렬 상위 6개 출력

inspect(head(sort(ar5, decreasing = T, by = "confidence")))

 

3단계: lift(향상도)기준 내림차순 정렬 상위 6개 출력

inspect(head(sort(ar5, by = "lift")))

 

실습 (연관규칙 시각화)

 

1단계 패키지 설치

install.packages("arulesViz")
library(arulesViz)

arulesViz패키지

 

2단계: 연관규칙 시각화

plot(ar3, method = "graph", control = list(type = "items"))

지지도, 신뢰도 조정 필요

 

 

실습 (Groceries 데이터 셋으로 연관분석)

arules패키지에서 제공되는 Groceries 데이터 셋 사용

 

1단계: Groceries 데이터 셋 가져오기

data("Groceries")
str(Groceries)
Groceries

 

2단계: 데이터프레임으로 형 변환

Groceries.df <- as(Groceries, "data.frame")
head(Groceries.df)

 

3단계: 지지도 0.001, 신뢰도 0.8 적용 규칙 발견

rules <- apriori(Groceries, parameter = list(supp = 0.001, conf = 0.8))

 

4단계: 규칙을 구성하는 왼쪽(LHS) -> 오른쪽(RHS)의 item 빈도수 보기 규칙의 표현 A(LHS) -> B(RHS)

plot(rules, method = "grouped")

 

실습 (최대 길이가 3 이하인 규칙 생성)

rules <- apriori(Groceries, 
 parameter = list(supp = 0.001, conf = 0.80, maxlen = 3))

규칙을 구성하는 LHS와 RHS 길이를 합쳐서 3이하의 길이를 갖는 규칙 생성

 

실습 (Confidence(신뢰도)기준 내림차순으로 규칙 정렬)

rules <- sort(rules, decreasing = T, by = "confidence")
inspect(rules)

 

실습 (발견된 규칙 시각화)

library(arulesViz)
plot(rules, method = "graph")