본문 바로가기

문과생 DT 정복기/DT 공부하기

R활용 머신러닝(Machine Learning)_ 연관규칙 분석, apriori / inspect 함수

반응형

안녕하세요.

매일 공부하는 나루입니다. 데이터분석준전문가 자격증을 준비하며 R을 활용해 머신러닝을 배우고 있습니다. 현재까지 공부한 내용은 선형회귀, 로지스틱회귀, KNN, SVM, 가우시안 RBF커널, 의사결정나무(Decision Tree), K-means, Hierarchical Clustering(HC)을 공부했습니다. 

R활용 머신러닝(Machine learning) 선형회귀, 상관관계, 로지스틱 회귀분석

R활용 머신러닝(Machine learning)- KNN, SVM, Guassian RBF Kernel

R활용 머신러닝(Machine Learning)_ Decision Tree, K-means, Hierarchical Clustering (HC)

오늘은 연관규칙 분석을 공부할 예정입니다. 선생님 말씀으로는 '연관규칙 분석'은 쇼핑할 때 고객들이 물건을 선택할 때 함께 고르는 물건의 규칙성을 발견하여 연관해서 보여줄 수 있어 마케팅에도 활용도가 높다고 하셨습니다. 분석이 두 가지로 나뉠 수 있는데요. 

  • 장바구니 분석 : A를 산 사람이 B도 같이 산다
  • 서열분석 : A를 사고나서 B를 산다 

이 분석은 쇼핑 뿐만 아니라, 게임할 때도 이때쯤 아이템이 필요할 거 같아 현질에 대한 고민을 하게 되는 순간에도 이 시스템이 적용된 거 아닌가 싶기도 하네요. 아무래도 지금까지 배운 분석 방법 중 가장 흥미가 높았던 '연관규칙 분석'에 대해 더 깊이 공부하겠습니다. 

시험에 계산하는 문제로 나온다는 지지도, 신뢰도, 향상도부터 정리하겠습니다. 

  • 지지도(Support) : 전체 거래항목 중 상품 A와 상품 B를 동시에 포함하여 거래하는 비율을 의미합니다. A→B라고 하는 규칙에 거래 중 차지하는 비율을 통해 해당 연관 규칙이 얼마나 의미가 있는 규칙인지를 확인합니다. 

  • 신뢰도(Confidence) : 상품 A를 포함하는 거래 중 A와 B가 동시에 거래되는 비중으로, 상품 A를 구매했을 때 상품B를 구매할 확률이 어느 정도 되는지를 확인합니다. 

  • 향상도(Lift) : 상품 A 거래 중 항목 B가 포함된 거래의 비율/전체 상품 거래 중 상품B가 거래된 비율(A가 주어지지 않을 때 B의 확률대비 A가 주어졌을 때 B의 확률 증가 비율)

 

연관규칙의 측도는 향상도(Lift)로 확인할 수 있습니다. 서로 관련 없는 경우는 Lift는 1이 됩니다. 이건 시험 문제에도 나왔다고 합니다. 밑줄 좍~ 


연관규칙 학습을 해보겠습니다. 본 과정은 데이터를 세팅하는 과정부터 복습을 합니다. 

* Apriori(연역적인) 에이프라이러리 알고리즘 활용 

* 컬럼으로 나눠있지 않아, 데이터로 분리하겠다는 뜻으로 아래와 같이 데이터를 불러냄 

* 아래 데이터 구조는 학습이 불가능하여 연관분석 할 수 없으므로 해결점을 찾아야 함 

* 왜냐하면 컴퓨터는 숫자로 인식하는데 상위 데이터는 문자로 되어있기 때문으로, Sparse Matrix로 만들어서 수치데이터로 변경해야 함

* 등장하는 모든 물품을 컬럼으로 만들고, 구매한 기록은 해당 컬럼에 1이라고 쓰고 구매 안 했으면 0으로 입력 

rm.duplicates는 중복된 것은 빼라는 뜻

* dataset을 살펴보면 아래와 같은 결과를 볼 수 있음 

* 결과 값 요약해서 보기 
 - density(밀접도) 기준이 1
 - 1개 : 1754건, 2개: 1358건 

* 이제 가장 많이 담은 개수부터 20개 보여달라고 입력 
 - 상위 20개 중 물이 가장 인기 많군요... 참고로 이 데이터는 프랑스 자료라고 들었습니다. 

 

* 최소 다음과 같은 규칙을 찾겠다고 apriori 함수 활용하여 컴퓨터에 말하기 
 - 최소 0.003 이상 지지도가 되는 것 
 - 최소 0.2의 신뢰도 이상되는 것 

* 뽑아낸 규칙에서, Lift 향상도가 큰 것부터 정렬하도록 코드 입력 

* 위에서 나온 값(sorted.rules) 기준 상위 10개만 보여달라고 inspect함수 활용  
 - 즉, 상위 10개의 가장 강력한 규칙들만 보여줌 
 - 아래 결과 값을 보면, 소비 패턴이 보이고 연관성이 높은 것에 수긍이 가는 신기함을 느낄 수 있음 


연관규칙 분석 공부를 했습니다. 다른 것에 비해서 더 재미있었습니다. 아무래도 일상생활과도 연결해서 볼 수 있고 한눈에 결과값을 이해하기 쉬워서 인 것 같습니다. 마지막으로 연관분석 관련하여 나왔던 기출문제도 하나 소개해드릴게요. 

R에서 연관성분석을 위해 apriori함수를 활용하여 연관규칙을 생성하였다. 연관규칙을 보기 위해 사용되는 함수로 가장 적절한 것은? [답] inspect ()

마지막에 inspect함수를 활용해서 연관성을 보셨던 거 기억 나시죠? 외워야하고 알아야 할 것이 많은 세계이지만, 데이터 공부를 한다는 것은 제가 매일 사용하는 컴퓨터를 더 이해할 수 있는 것 같아 즐겁습니다.  

 

긴 글 읽어주셔서 감사드립니다.

행복한 하루되세요. 

반응형