Apriori 알고리즘

APriori 알고리즘은 연관규칙 탐색을 위한 Transcaction 데이터가 있어야 하고, 최소지지도(Min support)를 설정해 줘야 한다. 여기서 트렌젝션 데이터란 아이템들의 집합이나 아이템 세트이며, 최소지지도는 해당 아이템셋의 지지도가 최소한 이정도는 넘어야 한다는것을 설정해 두는것이다.

Apriori알고리즘 예시

구매자 구매 아이템
M1 A,B,C,D
M2 B,E
M3 C,D
M4 D,E
M5 C,D,E
M6 A,B,C,D,E

트렌젝션 데이터가 위 테이블 처럼 주어지고 최소지지도를 3으로 설정한다. 구매 아이템은 대형 마트의 구매 데이터로 가정한다. {A},{B},{C},{D},{E}는 각각 다른 항목집합(Itemset)으로 보면된다.

1단계

위 테이블 데이터를 스캔하여 항목이 1개인 빈발항목집합을 찾는다. 빈발항목집합은 지지도를 기준으로 판단되며 해당 항목집합의 지지도가 설정한 최소지지도 3보다 높다면 빈발항목집합이 되고 낮다면 비빈발항목집합이 된다.

Item 지지도(Support)
A 2
B 3
C 4
D 5
E 4

{A},{B},{C},{D},{E}각각 아이템들의 구매가 2,4,4,5,4 만큼 구매되었고 이는 지지도이다. 최소 지지도 3을 넘지 못하는 {A}는 비빈발 항목집합이므로 항목집합에서 제외한다.(가지치기,Pruning) 여기서 Apriori알고리즘의 원리를 알 수 있다. {A}는 다음 단계의 빈발항목집합 분석에 더 이상 이용되지 않는다. 그 이유는 한 항목집합이 비빈발하다면 그 항목을 포함한 모든 집합 또한 비빈발 하기 때문이다.(규칙 1) 반대로 생각해서 한 항목집합이 빈발하다면 그 항목을 포함한 모든 집합 또한 빈발 하다.(규칙 2)

2단계

항목이 1개인 항목집합중 {A}가 제외되고 남은 {B},{C},{D},{E}로 항목이 2개인 모든 후보 항목집합을 만들어야 한다.

{B,C},{B,D},{B,E},{C,D},{C,E},{D,E}로 총 6개의 후보 항복집합이 만들어진다.

이제 만들어진 6개의 후보 항목집합의 지지도를 조사하고 1단계와 같이 빈발항목집합과 비빈발항목집합을 구분해 비빈발항목집합은 가지치기 하는과정을 반복한다. (이때 지지도는 항목 2개를 모두 구매한것이어야 한다.)

Item 지지도(Support)
{B,C} 2
{B,D} 2
{B,E} 2
{C,D} 4
{C,E} 2
{D,E} 3

최소 지지도를 넘지 못하는 {B,C},{B,D},{B,E},{C,E}는 후보항목집합에서 제외하고 {C,D},{D,E} 만 남게된다.

3단계

2단계에서 걸러진 빈발항목집합을 가지고 항목이 3개인 항목집합을 만든다.

{C,D,E} 가 만들어 진다.

Item 지지도(Support)
{C,D,E} 2

다음 단계로 넘어가야 하지만 지지도가 3을 넘는 항목이 없으므로 여기서 Apriori알고리즘은 종료된다.

 

일반화

1. 데이터 베이스를 스캔해 항목이 1개인 빈발항목집합을 구한다.

2. K빈발항목집합을 대상으로 (K+1)빈발항목집합을 구한다.

-빈발 항목집합으로 후보 항목집합을 구하고, 데이터 베이스를 다시한번 스캔해 최소지지도 조건을 만족하는 빈발항목집합을 구한다.

3. 더 이상 (K+1) 빈발항목집합이 만들어 지지 않을 때 까지 2번 과정을 반복한다.

 

이상으로 Apriori 알고리즘 포스팅을 마치겠습니다.

'알고리즘 공부 > 연관 규칙 분석' 카테고리의 다른 글

Apriori 알고리즘 (1)  (0) 2020.01.12

개념

연관규칙의 대표적인 형태로 발생 빈도 기반 데이터 간의 연관 규칙 발견 알고리즘 이다.

 

그렇다면 연관규칙 분석이란?

먼저, 연관규칙 분석을 하는 이유는 서로 다른 두 아이템 집합이 얼만큼 빈번하게 발생하는(연관도)를 알 수 있다.

이를 경영학에서는 장바구니 분석이라고 한다. 즉 대용량의 데이터 안에서 항목간의 존재하는 연관 규칙을 발견 하는 과정이다. 예시로 '맥주를 구매하는 사람은 기저귀를 구매 할 확률이 높다.'라는 예시는 장바구니 분석 중 가장 대표적인 예시이다. 그렇다면 연관 규칙 분석은 왜 하는것일까.

연관 분석(장바구니 분석)을 하는 이유

 

-효율적인 상품 진열

-패키지 상품의 개발

-교차판매 전략

-기획상품의 결정

 

등 여러가지 방법으로 활용 되고있다. 일례로 인터넷 쇼핑몰에서 상품 추천을 해주는 알고리즘 또한 연관규칙 분석 알고리즘이다. 연관 규칙의 대표적인 알고리즘으로

 

-Apriori algorithm

-FP-growth algorithm

-DHP algorithm

 

이 있는데 이 페이지에서는 Apriori알고리즘에 대해 알아본다.

연관규칙 분석에서 측도

우선 품목 A와 B를 설정한다. A와 B 사이의 연관관계를 평가할 수 있는 측도가 3가지 있다.

 

1. 지지도(Support)

2. 신뢰도(Confidence)

3. 향상도(Lift)

 

이 세가지 측도가 중요한 이유는 연관규칙 분석을 하게되면 수많은 데이터 들이 쏟아지기 때문에 그 중에 중요한 데이터를 뽑아내기 위한측도로 사용된다. 그럼 위 3가지 측도의 정의를 알아보자.

1. 지지도(Support)

지지도(Support)란 두 항목 A와 B의 전체 거래 건수 중에서 항목집합 A와 B를 모두 포함하는 거래건수 의 비율을 말한다. 지지도는 좋은 규칙 (빈도가 많은 규칙, 구성비가 높은규칙)을 찾거나, 불필요한 연산(가지치기)을 줄일때 사용한다.

지지도(Support) s(A→B)

= A와 B를 모두 포함하는 항목집합 / 전체 항목집합 = n(AB)/N

2. 신뢰도(Confidence)

신뢰도(Confidence)란 항목집합 A를 포함하는 거래 중 항목집합 B도 포함하는 조건부 확률은 말한다. 신뢰도가 높은 관계일 수록 유용한 규칙일 가능성이 높다.

신뢰도(Confidence) c(A→B)

=A와 B를 모두 포함하는 거래 수 / A가 포함된 거래 수 = n(AB)/n(A)

3. 향상도(Lift)

향상도(Lift)란 항목집합 A가 주어지지 않았을 때 항목집합 B의 확률 대비 항목집합 A가 주어졌을 떄 항목집합 B의 확률 증가 비율을 말한다. 즉 향상도가 1보다 크거나 작다면 우연적 기회보다 우수함을 의미한다 (A와 B가 서로 독립일때 향상도는 1)

향상도(Lift)

=연관규칙의 신뢰도 / 지지도 = c(AB)/s(B)

Apriori 알고리즘의 장/단점.

장점

- 수많은 상품 연관 구매 패턴 발견

- 다른 연구가설 탐지 가능

- 원리가 간단하고, 이해분석이 용이함

 

단점

- 비지니스 측면 중요한 현실적 중요 연관 규칙 부족

- 연관 규칙 결과가 다량으로 발생함

 

다음장에선 구체적인 예시를 들어 Aprioir알고리즘을 설명하겠습니다.

'알고리즘 공부 > 연관 규칙 분석' 카테고리의 다른 글

Apriori 알고리즘 (2)  (0) 2020.01.14

+ Recent posts