-
[R샘플] 연관분석(eclat, apriori)R분석/함수 2023. 1. 26. 18:48728x90
텍스트마이닝에서 자주 활용하는 연관분석에 대한 R 코드 샘플입니다.
arules 패키지의 eclat, apriori 함수를 사용합니다.
연관분석에서 사용되는 용어는 다음과 같습니다.
A ⇒ B : A가 나타나면 B가 나타난다.
lhs(left hand side) : 선행
rhs(right hand side) : 후행
support(지지도) : A, B의 연관성 (전체 횟수에 대한 A, B가 함께 나타난 횟수)
confidence(신뢰도) : A, B의 인과성. A가 나타났을 때 B가 나타남. (A가 포함된 횟수에 대한 A, B가 동시에 나타난 횟수)
lift(향상도) : 무심코(아무 관계없이 그냥) B가 나타날 때에 비해 A가 나타난 후 B가 나타날 가능성library(arules) rm(list=ls()) nums = read.csv("data/nums.csv") nums_only = nums[,c(6:12)] nums_only$X1 = as.character(nums_only$X1) nums_only$X2 = as.character(nums_only$X2) nums_only$X3 = as.character(nums_only$X3) nums_only$X4 = as.character(nums_only$X4) nums_only$X5 = as.character(nums_only$X5) nums_only$X6 = as.character(nums_only$X6) nums_only$B1 = as.character(nums_only$B1) nums_list= list() for(i in 1:nrow(nums_only)) { tmp = c(nums_only[i,]$X1, nums_only[i,]$X2, nums_only[i,]$X3, nums_only[i,]$X4, nums_only[i,]$X5, nums_only[i,]$X6, nums_only[i,]$B1) nums_list = append(nums_list, list(tmp)) } wordtran = as(nums_list, "transactions") wordtable = crossTable(wordtran) # A => B : A 이면 B 이다. # lhs(left hand side) : 선행 # rhs(right hand side) : 후행 # support(지지도) : A, B 의 연관성 측정, (A, B가 함께 나타난 횟수 / 전체 횟수) # confidence(신뢰도) : A, B의 인과성 측정, A 나타났을 때 B가 나타남. (A, B가 동시에 나타난 횟수 / A가 포함된 횟수) # coverage : # lift(향상도) : 무심코(아무 관계없이 그냥) B가 나타날 때에 비해 A가 나타난 후 B가 나타날 가능성 transrules = eclat(wordtran, parameter = list(supp=0.008, minlen=3)) transrules = head(sort(transrules, by="support"), 1000) inspect(transrules) # apriori 연관규칙분석 transrules2 = apriori(wordtran, parameter = list(supp=0.003, minlen=3)) transrules2 = head(sort(transrules2, by="support"), 1000) inspect(transrules2)
샘플에 사용된 로또 당첨 번호 파일은 아래 링크를 참고해주세요.
https://lion2ryan.tistory.com/23
로또 복권 역대 당첨 번호 목록 (1051회)
로또 복권 역대 당첨 번호 목록입니다. 23년 1월 21일, 1051회까지 데이터입니다.
lion2ryan.tistory.com
728x90'R분석 > 함수' 카테고리의 다른 글
[R] 패키지 오프라인 설치 (0) 2023.03.30 [R] st_read() 한글 깨짐 (0) 2023.03.23 [R 샘플] shp 활용 (0) 2023.02.08 [R, Python 샘플] 엑셀 csv파일 한글 깨짐 현상 (0) 2023.02.02 [R샘플] 내추럴브레이크(Jenks Natural Breaks) (1) 2023.01.19