2017 년가을학기 손시운 (ssw5176@kangwon.ac.kr) 지도교수 : 문양세교수님
Basic of Association Rules Association Rule 다른데이터로부터어떤데이터의발생을예측하는규칙 데이터간의연관성및상관관계를표현하는규칙 A B (A와 B는각각데이터의부분집합 ) A 를 lhs (left-hand side), B 를 rhs (right-hand side) 라지칭 응용사례 Market Basket Analysis Medical Diagnosis Protein Sequences Census Data 2
Basic of Association Rules 가장빈번히사용되는 measures: support, confidence, and lift Support: A와 B를모두포함하는경우의확률 support A B = P(A B) 클수록관련도가높음 e.g. 전체쇼핑상품중, Diaper와 Beer를함께선택한비율 Confidence: A 를포함하는경우중, B 또한포함할경우의확률 confidence A B = P B A = P(A B) P(A) 클수록관련도가높음 결과값이 A 의규모에의존하므로전체적인분석은어려움 e.g. Diaper 를선택한경우중, Beer 를함께선택한비율 3
Basic of Association Rules Lift: B 에대한확률과 confidence 의비율 lift A B = confidence(a B) P(B) = P(A B) P(B) lift A B > 1: 클수록관련도가높음 lift A B = 1: 관련이없음 = P(A B) P A P(B) 0 < lift A B < 1: A 를선택하면, 보통 B 를선택하지않음 e.g. Diaper 와 Beer 의 confidence 값과 Beer 를선택한확률의비율 support Diaper Beer = 3 5 confidence Diaper Beer = 3 4 lift Diaper Beer = 5 4 4
연관규칙마이닝패키지설치 주어진트랜잭션집합으로부터, 연관규칙을찾는작업 실습은 APRIORI 알고리즘을사용 APRIORI 알고리즘 빈번한데이터를찾아연관규칙을얻는가장기본적인 ARM 기법 http://cran.r-project.org/web/packages/arules/index.html 에서다운로드 압축해제후, arules 폴더를 R 설치경로의 library 폴더로이동 설치시에경로변경이없었다면 C:\Program Files\R\R-3.1.1\library 5
Association Rule Mining arules 패키지를 R 에서로딩 6
Example 1: Grocery Data 에대한연관규칙 Datasets: 10 종류의식료품데이터 shopping bags, milk, vegetables, bread, soda, yogurt, water, tropical fruit, sausage, pastry 100개의구매결과트랜잭션으로구성 # Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8 Item 9 Item 10 1 yogurt water pastry shopping bags tropical fruit soda sausage 2 bread tropical fruit pastry vegetables soda sausage milk shopping bags 3 bread pastry tropical fruit water yogurt vegetables sausage shopping bags 4 shopping bags water pastry bread sausage vegetables 5 vegetables yogurt soda sausage water shopping bags 6 soda pastry tropical fruit bread shopping bags sausage 7 sausage tropical fruit bread 8 vegetables bread tropical fruit milk yogurt water sausage pastry shopping bags 9 water pastry bread vegetables shopping bags 10 vegetables sausage pastry bread yogurt shopping bags 11 tropical fruit bread sausage water yogurt soda shopping bags 12 vegetables sausage tropical fruit pastry bread shopping bags 13 vegetables yogurt sausage 14 tropical fruit soda vegetables pastry shopping bags water bread 15 tropical fruit soda bread shopping bags sausage water vegetables pastry 16 tropical fruit soda water sausage shopping bags 17 soda bread milk vegetables shopping bags 18 tropical fruit pastry water shopping bags bread 19 tropical fruit shopping bags soda water vegetables pastry yogurt milk 20 soda pastry shopping bags vegetables sausage bread tropical fruit water 7
Ex 1. 데이터로딩 read.transactions() 함수 arules 패키지내에서데이터는트랜잭션으로처리 파일로부터트랜잭션형태로로딩하는함수 inspect() 함수 : 트랜잭션데이터의내용을출력하는함수 8
Ex 1. 연관규칙마이닝적용 apriori() 함수 : apriori 알고리즘이구현되어있는함수 함수처리과정 발견된규칙의개수 9
Ex 1. apriori() 함수결과 10
Ex 1. Parameter 설정 발견된규칙중, 불필요한결과가포함됨 lhs 값이비어있는규칙이존재 minlen = 2로설정 너무많은규칙이발견 supp = 0.3, conf = 0.9로설정 함수처리과정제거 verbose=f로설정 11
Ex 1. 마이닝결과정렬 함수의결과가정렬되지않아가치있는데이터의식별이어려움 quality() 함수 : apriori() 함수의결과에서 measure 를추출한함수 round() 함수 : 실수데이터를 digits 인자크기의자리에서반올림하는함수 sort() 함수 : 데이터를 by 인자기준으로정렬하는함수 12
Ex 1. 정렬된결과 13
Ex 1. 결과에대한분석 supp = 0.3, conf = 0.9일때, 47개의규칙이발견 하지만모든규칙의 rhs는 shopping bags로나타남 이는 shopping bags가모든 ( 대부분 ) 트랜잭션에서나타나기때문 confidence의단점 이론강의자료 p.38 참고 따라서 lift를중심으로마이닝 parameter를 supp = 0.2, conf = 0.8로설정 14
Ex 1. 피드백결과 15
Ex 1. 특정데이터를제외한연관규칙마이닝 Shopping bags 는다른데이터와독립적이므로연관규칙에서제외 none= shopping bags 로설정 shopping bags 16
Ex 1. 특정데이터를제외한연관규칙마이닝 17
Ex 2. Titanic Data 연관규칙 The Titanic Dataset Titanic 호의승객들에대한생사여부의정보가요약된데이터 4차원테이블로구성 : social class, sex, age, and survival 각 row는한사람을의미 연관규칙마이닝을위해, Raw 데이터를재구조화 http://www.rdatamining.com/data 에서데이터셋다운로드 18
Ex 2. Dataset 데이터셋파일경로확인 파일 > 속성 다음파일의경로는 C:\Users\Son\Desktop\titanic.raw.rdata R 에서데이터셋불러오기 경로를문자열로취급하므로 Backslash(\) 기호를두개씩사용 19
Ex 2. Dataset Titanic 데이터셋구조 4 차원테이블 각속성값 Titanic은 4차원테이블로구성 테이블은다음속성들을포함 Class: 1st, 2nd, 3rd, Crew로구성 Sex: Male, Female로구성 Age: Child, Adult로구성 Survived: No, Yes로구성 20
Ex 2. Dataset raw data 를데이터프레임으로변환 데이터프레임으로변환한결과, 각속성 (class, sex, age, survived) 이나타낼수 있는경우의수를빈도수로표현하는구조임을확인 알고리즘에적용할수없으므로데이터를변경해야함 21
Ex 2. Dataset 데이터변경 cbind() 함수를통해, 열단위로결합 rep() 함수는각열의값을 Freq 속성값만큼반복 titanic.raw 는행렬이므로데이터프레임으로변경 22
Ex 2. Dataset 각속성에이름을부여 데이터확인 23
Ex 2. Association Rule Mining Titanic 데이터를 apriori() 함수에적용 기본적으로 minsup=0.1, minconf=0.8 로설정 24
Ex 2. Association Rule Mining Titanic 데이터에서발견된 rules 25
Ex 2. Association Rule Mining 마이닝결과중, 불필요한 rule이표현됨 Titanic 데이터에서는단지생사여부에대한 rule이필요 rhs=c( Survived=No, Survived=Yes ) 옵션을추가 lhs에는다른모든속성이포함될수있음 default= lhs 옵션을추가 lhs값이비어있는 rule이나타남 minlen=2 옵션을추가 apriori() 함수의처리과정은불필요 verbose=f 옵션을추가 26
Ex 2. Association Rule Mining Interesting rules 를위해옵션설정 round() 함수를통해, support, confidence, lift 값을반올림 sort() 함수를통해, lift 를기준으로내림차순정렬 27
Ex 2. Association Rule Mining Interesting rules 28
Ex 2. Removing Redundancy 앞서나타난 rules 중, 일부는다른 rule을포함 이는불필요한중복이며, 제거 (pruning) 하여야함 e.g. rule 1에서 2nd-class의어린이들이모두구조되었다는것을확인할수있으나 rule 2에서 2nd-class의어린이에대한 rule을한번더표현함 rule 4, 7, 8 또한 rule 3, 6, 5의중복 29
Ex 2. Removing Redundancy 중복을제거한결과 30
Ex 2. Interpreting Rules 데이터로부터높은 lift의 rule을찾기는쉽지만, rule을이해하기는어려움 실제로연관규칙을잘못이해하는경우가많음 rules.pruned에는어린이들에대해 2nd-class의정보만표현 2nd-class의어린이가다른 class에비해생존률이높다 는판단은틀림 위결과를위해각 class의생사여부에대한마이닝을진행 31
Ex 2. Interpreting Rules 각 class 별연관규칙마이닝결과 rule1, 2 를통해 1st-class 와 2nd-class 의어린이가생존률이같음 rule3, 4, 5 에서 3rd-class 의어린이는다른 class 의어른보다생존률이낮음 32
과제 #3 성별에따른생존률분석 Titanic 데이터에는성별과생사여부에대한데이터가포함됨 apriori() 함수를통해각성별의생존률을분석 제출방법 과제는 ssw5176@kangwon.ac.kr로제출 제목양식 : [ 학번 ][ 이름 ]HW#3 함수실행과정 (parameter 포함 ) 과 ARM 결과를캡쳐 제출기한은다음실습수업시간전까지이며, 그후에제출할경우 20% 감점 33