연관분석 (Association).

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

알기쉬운 경영학 Ch.12 중소기업의 경영과 창업 유한대학교.
ER Schema (추가)
[별첨] 특허 DB 구축 및 토픽 모델링 수행 과정 Flowchart, File List
의사 결정 트리(decision tree)
원정초등학교 5학년1반 48번 윤민정.
*노동문제 * -비정규직 유효림 박지희 전향숙 황연두.
(Classification – Advanced Techniques)
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 연관 규칙 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
식물보호기사 DVD 20문제.
식물보호기사 DVD 20문제.
식물보호기사 DVD 20문제.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
Machine Learning Network Data Science Lab Seunghun Lee, KangHee Lee
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
병렬소프트웨어설계 Han-joon Kim
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
미래 예측 3가지 방법론.
연관관계 분석을 통한 스마트폰과 기능의 융합 분석 서강대학교 경영전문대학원 노미정, 김진화, 이재범.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
Chapter 02 순환 (Recursion).
6장 그룹 함수.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
For/While Syntax & Practice!!
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
DK-128 ADC 실습 아이티즌 기술연구소
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
KHS JDBC Programming 4 KHS
프로그래밍 랩 – 7주 리스트.
PySpark Review 박영택.
1.4 중첩된 한정기호 (Nested Quantifiers) 이산수학 (Discrete Mathematics)
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
자바 5.0 프로그래밍.
프로그래밍 개요
JDBC Lecture 004 By MINIO.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
Chapter4. 연관성 분석.
정보 추출기술 (Data Mining Techniques ) : An Overview
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
연산자 (Operator).
소프트웨어시스템 실습 머신러닝(2) 학기.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
BIC 사례 1 연관규칙과 분류모형을 결합한 상품 추천 시스템: G 인터넷 쇼핑몰 사례
Database Management System
2015 한국연구재단 글로벌박사 양성사업 변경사항 안내
CHAP 21. 전화, SMS, 주소록.
Canary value 스택 가드(Stack Guard).
브레인 스토밍 주제 : 환경오염 9조 Gladiator 조장 : 황병민 조원 : 홍현표, 황성박, 황용주.
Week 3-2: 데이터분포 3_2장_1(백분율:Percentile)에서 동영상 1,2
데이터 동적 할당 Collection class.
Excel 일차 강사 : 박영민.
오라클 11g 보안.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
데이터 종류와 전처리 (Data Types and Preprocessing)
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
(Association Rules Mining)
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
제 4 장 Record.
9장. spss statistics 20의 데이터 변수계산
 6장. SQL 쿼리.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
C++ Espresso 제15장 STL 알고리즘.
식물보호기사 DVD 20문제.
6 객체.
식물보호기사 DVD 20문제.
Presentation transcript:

연관분석 (Association)

연관분석 알고리즘 Apriori 알고리즘

연관규칙 마이닝 (Association Mining) Basket (Transaction) data 측정치 (X -> Y) Support (지지도) : 전체 레코드에서 상품 X, Y에 대한 거래를 모두 포함하는 비율 => Supp(X, Y) Confidence (신뢰도) : 상품 X를 구매한 거래가 발생했을 경우 그 거래가 상품 Y를 포함하는 조건부 확률 => Conf (X->Y) = Supp(X,Y)/Supp(X) Lift (향상도) : 상품 X를 구매한 경우, 그 거래가 상품 Y를 포함하는 경우와 상품 Y가 상품 X에 관계없이 구매된 경우의 비율 => Lift (X->Y)=Supp(X,Y)/(Supp(X)∙Supp(Y)) = Conf(X->Y)/Supp(Y) 측정치 예 {Milk, Diaper} => Beer : Supp=2/5, Conf=2/3, Lift=(2/3)/(3/5)=1.1167 Transaction ID Iterms 1 Chips, Milk 2 Chips, Diaper, Beer, Cornflakes 3 Milk, Diaper, Beer, Pepsi 4 Chips, Milk, Diaper, Beer 5 Chips, Milk, Diaper, pepsi

연관분석 데이터 전처리 DVD 대여 데이터 transaction 테이블의 구성 library(arules); library(arulesViz) dvd <- read.csv("dvdtrans.csv", header = TRUE, as.is = TRUE); dvd dvd.list <- split(dvd$Item, dvd$ID); dvd.list dvd.trans <- as(dvd.list, "transactions") ID Items 1 Sixth Sense, LOTR1, Harry Potter1, Green Mile, LOTR2 2 Gladiator, Patriot, Braveheart 3 LOTR1, LOTR2 4 Gladiator, Patriot, Sixth Sense 5 ... transaction 테이블의 구성

연관분석 Transaction 테이블의 시각화 image(dvd.trans)

연관분석 Apriori 알고리즘의 적용 연관규칙 개수를 조절 또는 의미 있는 연관규칙을 선별하기 위해 support, confidence 값을 입력 dvd.rules <- apriori(dvd.trans, parameter = list(support = 0.2, confidence = 0.6)) inspect(dvd.rules)

연관분석 연관규칙의 시각화 plot(dvd.rules) plot(dvd.rules, measure=c("confidence", "lift"))

연관분석 연관규칙의 시각화 연관규칙의 개수 plot(dvd.rules, method = "grouped") 원의 크기 : Support 색상 진하기: Lift

연관규칙의 중심에Gladiator, 6th Sense, Patriot 이 있음 연관분석 연관규칙의 시각화 plot(dvd.rules, method = "graph") Item Set 연관규칙의 중심에Gladiator, 6th Sense, Patriot 이 있음

연관분석 연관규칙의 시각화 plot(dvd.rules, method = "graph", control = list(type = "items")) 원 : 연관 관계 원의 크기 : Support 색상진하기: Lift

연관분석 일반 데이타베이스에 대한 연관분석 : AdultUCI 연속형 숫자 속성 컬럼이 있으므로 데이터 가공이 필요 필요없는 속성 제거 # load the data and check it data("AdultUCI") dim(AdultUCI) AdultUCI[1:2,] ## remove attributes AdultUCI[["fnlwgt"]] <- NULL AdultUCI[["education-num"]] <- NULL

number -> factor로 변환 “age”컬럼의 값들을 변경 연관분석 구간값을 순서있는 요소로 전환 number -> factor로 변환 일반 데이타베이스에 대한 연관분석 : AdultUCI 연속형 실수값을 구간값으로 변환 구간 ## map metric attributes AdultUCI[["age"]] <- ordered(cut(AdultUCI[["age"]], c(15,25,45,65,100)), labels = c("Young", "Middle-aged", "Senior", "Old")) AdultUCI[["hours-per-week"]] <- ordered(cut(AdultUCI[["hours-per-week"]], c(0,25,40,60,168)), labels = c("Part-time", "Full-time", "Over-time", "Workaholic")) AdultUCI[["capital-gain"]] <- ordered(cut(AdultUCI[["capital-gain"]], c(-Inf,0,median(AdultUCI[["capital-gain"]][AdultUCI[["capital-gain"]]>0]),Inf)), labels = c("None", "Low", "High")) AdultUCI[["capital-loss"]] <- ordered(cut(AdultUCI[["capital-loss"]], c(-Inf,0, median(AdultUCI[["capital-loss"]][AdultUCI[["capital-loss"]]>0]), Inf)),

연관분석 함수형 언어: median 값 찾기 AdultUCI[["capital-gain"]]>0 “capital-gain” 컬럼의 값들이 0 이상인지 여부 (TRUE/FALSE)를 출력 결국 TRUE/FALSE 값을 가지는 vector를 출력 AdultUCI[["capital-gain"]] [AdultUCI[["capital-gain"]]>0] “capital-gain” 컬럼의 값들 중에서 0을 초과한 것만을 추려냄 median( AdultUCI[["capital-gain"]] [AdultUCI[["capital-gain"]]>0] ) “capital-gain” 컬럼의 값이 0을 초과한 것들에서 ‘median 값’을 찾아냄

연관분석 일반 데이타베이스에 대한 연관분석 : AdultUCI transaction 데이타 포맷으로 변경 {} -> Y 형태 제거 일반 데이타베이스에 대한 연관분석 : AdultUCI transaction 데이타 포맷으로 변경 Apriori 알고리즘으로 연관분석 수행 RHS 부분의 값을 고정하는 경우 Adult <- as(AdultUCI, "transactions") adult_rules <- apriori(Adult, parameter = list(supp = 0.7, conf = 0.9, minlen=2, target = "rules")); inspect(adult_rules) adult_rules.sorted <- sort(adult_rules, by="lift"); inspect(adult_rules.sorted) plot(adult_rules, method = "graph") adult_rules <- apriori(Adult, parameter = list(supp=0.35, conf=0.8, minlen=2, target="rules"), appearance = list(rhs=c(“income=small", “income=large"), default="lhs")) adult_rules.sorted <- sort(adult_rules, by="lift"); inspect(adult_rules.sorted)

연관분석 중복 규칙이 다수 존재

연관분석 집합X의 각 원소(규칙)이 집합Y에 포함되는 규칙이 있다면 TRUE, 아니면 FALSE를 리턴 중복 규칙의 제거 # find redundant rules subset.matrix <- is.subset(adult_rules.sorted, adult_rules.sorted) subset.matrix[lower.tri(subset.matrix, diag=T)] <- NA redundant <- colSums(subset.matrix, na.rm=T) >= 1 which(redundant) # remove redundant rules adult_rules.pruned <- adult.rules.sorted[!redundant] inspect(adult_rules.pruned) plot(adult_rules, method = "graph") TRUE이면 TRUE가 저장

중복규칙의 제거 T ... T ... T ... T T T ... ... ... T ... T T T ... T is.subset 함수를 통해 얻은 matrix

연관분석