본문 바로가기
R

누구나 쉽게 시작하는 R 머신러닝 데이터 분석 / 연관분석

by 자유코딩 2018. 1. 19.

연관 분석

 

(지지도) support(X) = count(x) / N

전체 데이터베이스 중에서 아이템 집합(x)를 포함하는 거래 건수

즉 해당 규칙이 얼마나 나타났는지가 support이다.

 

(신뢰도) confidence(X -> Y) = support(X,Y) / support(X)

신뢰도는 예측 능력이나 정확도의 측정치다. X와 Y를 모두 포함하는 아이템 집합의 지지도를 X만 포함하는 아이템 집합의 지지도로 나눈 값으로 정의된다.

규칙을 신뢰할 수 있는 정도를 나타낸다.

 

1. 데이터 불러오기

 

https://github.com/stedy/Machine-Learning-with-R-datasets

 

 

Download ZIP을 클릭하고 데이터를 다운로드 받습니다.

 

 

압축을 풀고 파일을 R 작업 경로로 가져갑니다.

 

 

패키지를 받고 데이터를 읽습니다.

 

 

데이터를 읽은 화면입니다.

 

 

읽은 데이터 Groceries는 식료품이 장바구니에 담겨있는 데이터 입니다.

 

장바구니에 어떤 데이터가 많이 들어있는지 그래프처럼 확인 할 수 있습니다.

 

 

그래프를 출력하는 명령어 입니다.

 

희소행렬의 시각화

 

 

이렇게 입력하면 데이터의 1행부터 5행까지의 희소 행렬을 출력할 수 있다.

 

다음 희소행렬은 5행 169열의 희소행렬을 나타낸다.

 

희소 행렬의 정의 : 희소행렬이란 행렬의 값이 대부분 0인 경우를 말한다.

 

1과 4가 적혀있는 곳을 각각의 거래를 나타낸다.

 

막대에서 점이 위치하는 곳은 아이템을 나타낸다.

 

그래서 1,4,5 번째 거래가 4개의 아이템을 포함하고 있다는 것을 알 수 있다.

 

그래프는 상위 20위로 빈도가 높은 아이템들의 목록이다.

 

 

희소행렬은 다음과 같이도 나타낼 수 있다.

 

이전의 희소행렬보다 행이 많이 늘었다.

 

이제 정말 연관규칙을 작성해보도록 하겠다.

 

 

그림과 같이 변수이름 <- apriori (데이터이름 , parameter , 지지도 , 신뢰도 , 최소 개수)를 순서대로 입력하면 된다.

 

규칙의 summary도 출력했다.

 

다음은 생성된 규칙 검사를 진행했다.

 

 

lift(x->y)는 confidence(x->y) / support(x->y)를 말한다.

 

아이템 x가 구매되었을 경우 y가 구매되는 확률을 일반적인 y의 구매확률과 비교해서 구한다.

 

리프트 값이 1보다 크면 우연이라고 예상했던 것보다 더 자주 두 아이템이 함께 발견된다는 것을 의미한다.

 

그래서 큰 향상도 값은 아이템 간의 실제 연관성을 반영하는 강한 지표이다.

 

규칙의 세부 사항이 보인다.

 

berryrules는 생성된 groceryrules에서 berries를 포함하는 것을 추출한 부분집합 이다.

 

연산자 %in%는 아이템 중 최소 하나가 정의된 목록에서 발견되어야 한다.

 

연관 규칙을 파일이나 데이터 프레임에 저장해서 확인 할 수도 있다.

 

 

suppot, confidence , lift , count 를 모두 확인 할 수 있다.

 

apriori함수의 매개변수를 바꿔가며 실습하면 공부에 도움이 됩니다.

 

email : jswoo030@gmail.com

 

댓글