R - 연관분석.

🛟 Dive.·2024년 2월 24일

연관분석

1) "Groceries" dataset에 대한 연관분석 결과를 출력한 그래프 (324쪽의 그래프)를 이미지로 저장하고,

2) "Adult" dataset에 대한 연관분석 결과를 출력한 그래프를 이미지로 저장

flowchart TD
   A[1.데이터준비] --> B[패키지설치 및 로딩] --> C[3. 데이터 파일 읽기] --> D[4.데이터 현황 분석]
--> E[5.연관규칙 생성] --> F[6.결과 분석]

데이터 작성.

install.packages('arules')
install.packages('arulesViz')
library(arules)
library(arulesViz)

sales.csv 파일 읽기.

# 트랜잭션 클래스 형태의 데이터 파일.
trans = read.transactions(file.choose(), format = "basket", sep = ",")
trans

데이터 출력.

inspect(trans)

데이터 현황 분석.

itemFrequency(trans, type = "absolute")

itemFrequency(trans)

itemFrequencyPlot(trans, type = "absolute",
                  xlab = "상품 아이템",  ylab = "거래 빈도",
                  col = 1:5)

itemFrequencyPlot(trans, xlab = "상품아이템", ylab = "비율",
                  col = 1:5, topN = 5, family = "AppleGothic")

rules = apriori(trans, parameter = list(supp = 0.4, conf = 0.7, minlen = 2))

연관규칙.

inspect(rules)

규칙의 조건 검색.

rules2 = subset(rules, lift>1.0)
rules3 = sort(rules2, by = "lift", decreasing = TRUE)
inspect(rules3)

연관규칙의 그래프 출력.

plot(rules2, method = "graph",
     control = list(nodeCol = "green",edgeCol = "red", alpha = 1))

rules4 = apriori(trans,
                 parameter = list(supp = 0.4, conf = 0.7, minlen=2),
                 appearance = list(default = "rhs", lhs = "A"))

inspect(rules4)

특정 상품 아이템의 판매에 영향을 주는 상품 아이템.

rules5 = apriori(trans,
                 parameter = list(supp = 0.4, conf = 0.7, minlen = 2),
                 appearance = list(default = "lhs", rhs = "B"))

inspect(rules5)

rules6 = subset(rules5,lift>1.0)
inspect(rules6)

Groceries 상품 연관성 분석.

데이터 세트 읽기.

data("Groceries")
summary(Groceries)

inspect(Groceries[1:3])

inspect(Groceries[9834:9835])

데이터 현황.

itemFrequency(Groceries)

itemFrequencyPlot(Groceries,
                  xlab = "상품아이템", ylab = "비율", col = 1:5, topN = 10,family = "AppleGothic")

연관규칙 생성.

rules = apriori(Groceries,
                parameter = list(supp = 0.02, conf = 0.4, minlen = 2, maxlen = 3))

inspect(rules)

연관규칙의 그래프 출력.

특정 상품 아이템에 의해 영향을 받는 상품 아이템.

rules2 = apriori(Groceries,
                 parameter = list(supp = 0.02, conf = 0.4, minlen = 2, maxlen = 3),
                 appearance = list(default = "rhs", lhs = "root vegetables"))

inspect(rules2)

특정 상품 아이템의 판매에 영향을 주는 상품 아이템.

rules3 = apriori(Groceries,
                 parameter = list(supp = 0.02, conf = 0.4, minlen = 2, maxlen = 3),
                 appearance = list(default = "lhs", rhs = "other vegetables"))

inspect(rules3)

profile
Data Science. DevOps.

0개의 댓글