머신러닝 05. 비지도학습: 시차연관분석
Written on October 22nd , 2019 by MJ 목차
1. 데이터셋 로딩
(1) 순차연관성 관련 패키지 준비: arulesSequences
(2) 데이터셋 로딩
2. 순차트랜잭션에 대한 기술통계
(1) 트랜잭션 전체 내용 조회: inspect() / image() / View()
(2) 트랜잭션 내용 조회: itemInfo()
(3) 트랜잭션 기술통계: summary() / str()
(4) 빈발 항목 발생 빈도와 비율: itemFrequency()
(5) 빈발 항목 그래프: barplot() / itemFrequencyPlot()
(6) 워드클라우드를 이용한 그래프: wordcloud()
(7) 트랜잭션 항목 간 빈발관련성 교차분석: aruels::crossTable()
3. 데이터셋 시각화
(1) 히트맵: d3heatmap::d3heatmap()
4. 순차연관규칙 분석: arulesSequences
(1) arulsSequences::cspade()
(2) 순차연관규칙 기초통계량: summary()
(3) 순차연관규칙 전체 내용 조회: inspect()
5. 순차연관규칙 조건조회
(1) 순차연관규칙을 data.frame으로 전환 및 세부 내용 조회
(2) 단순 규칙 제외하고 2개 이상의 순차연관 규칙만 추출
(3) 특정조건 키워드 지정조회: %in%
(4) 부분일치 & 완전일치 키워드 지정조회: %pin% / %ain%
(5) 단순 규칙 제외하고 2개 이상의 순차연관 규칙만 추출
6. 순차연관규칙 상세화
(1) 신뢰도(confidence)와 향상도(lift) 수치출력: ruleInduction()
(2) 상세화 규칙 요약 및 세부 내용 파악
(3) 향상도 1순위, 신뢰도 2순위로 상세화 규칙 정렬
016
crossTable(raw) 이전까지는 개별 데이터를 보는 거고, 여기부터는 교차분석하기 시작하는 부분.
measure 옵션: lift, support, confidence 모두 가능.
rule에 어떤 내용들이 들어가 있는지 보자. cspade 알고리즘 안에, 순차가 있는 데이터를 넣고 설정. 실행하면 18개 규칙이 나옴. summary에 넣으면 규칙별로 파악 됨.
inspect 실행해서 나온 데이터는 중괄호를 중심으로 보면 된다. 중괄호가 한 쌍이 있는 건 의미가 없다. ({Art, Fashion}도 의미 없다.) 중괄호가 두 개 이상이 있는 게 우리가 찾는 순차 연관이다. 7번을 보면 중괄호가 2 번 나온다. 디자인 관련 서적을 산 후, 패션 잡화 관련 서적을 산다는 의미. 8번을 보면 디자인 서적 산 후 비즈니스 관련 서적과 패션 서적을 산다는 의미. 15번은 중괄호 3번 디자인 산 후 패션 산 후 아트 산다는 의미. labels 함수를 사용하면 화살표를 이용해 가독성을 높여 준다. (이거 산 다음 뭘 산다는 패턴이 더 잘 읽힘.)
support값 기준으로 만들어놨던 규칙에서, rule 에 들어있는 size나 length를 토대로, 찾아볼 수 있는 걸 봤다. support값 기준으로만 규칙이 정제 됐던 것이어서, ruleInduction함수를 이용해 confidence 기준을 첨가할 수 있다. confidence가 0.1 정도로 셋팅되니 규칙이 10개 정도로 줄었다. rule2를 데이터 프레임을 이용해 내용을 적절하게 볼 수 있다. rule2에는 lift값까지 같이 들어와 있다.
rule2.df 를 보면 support, confidence, lift 모두 있는데, lift값 기준으로 정렬 등 조건 제어해서 찾아볼 수 있다. 정렬 내용 조회 시 lift 값 1.0 이상인 것만 찾고 싶을 때, % 연산자가 안 되면 grep함수 사용 가능.
—————코딩——————————————————————————————————
1. 데이터셋 로딩
(1) 순차연관성 관련 패키지 준비: arulesSequences
● arules 패키지가 동시에 발생하는 사건을 분석하는 패키지라면, arulesSequence 패키지는 순차 연관 분석하는 알고리즘. 이거 R 사이트에서 CRAN, WINDOW, BASE, Previous Releases 들어가서 3.1.3 버전 깔아야 에러 안 생긴다.
(2) 데이터셋 로딩
2. 순차트랜잭션에 대한 기술통계
(1) 트랜잭션 전체 내용 조회: inspect() / image() / View()
(2) 트랜잭션 내용 조회: itemInfo()
(3) 트랜잭션 기술통계: summary() / str()
(4) 빈발 항목 발생 빈도와 비율: itemFrequency()
(5) 빈발 항목 그래프: barplot() / itemFrequencyPlot()
(6) 워드클라우드를 이용한 그래프: wordcloud()
(7) 트랜잭션 항목 간 빈발관련성 교차분석: aruels::crossTable()
options()$digits # 디폴트는 7자리로 설정되어 있음
options(digits = 3)
# - 다시 위쪽의 crossTable 관련구문을 실행해 digits 옵션조정 효과확인