상품이나 서비스를 구매하는 등 일련의 거래나 사건 안에 존재하는 항목 간의 일정한 연관 규칙을 발견하는 분석이다.
장바구니 분석(Basket Analysis)이라고도 하나, 엄밀히 짚고 넘어가면 장바구니 분석은 유통업에서 부르는 용어이고 연관분석의 한 종류라고 볼 수 있다.
연관분석 알고리즘으로는 Apriori
, FP-Growth
, FPV
가 있다.
💡 ‘A를 구매했을 때, B 또한 구매할것이다’ 와 같이
if A, then B
의 패턴으로 이루어져있다.
대표적인 연관규칙 측정지표로는 지지도, 신뢰도, 향상도가 있으며, 산업의 특성에 따라 중요한 지표가 달라진다.
A → B 의 지지도는 전체 거래중에서 A와 B가 동시에 판매되는 거래의 비율을 의미한다.
모든 경우의 수를 분석하는 것은 불필요한 연산을 증가시키므오로 최소지지도라는 것을 설정해 이 값이 임곗값을 넘는 품목에 대한 규칙을 도출한다.
A → B
의 지지도값과 B → A
의 값은 값고 1에 가까울수록 연관성이 높다고 할 수 있다.
A → B
의 신뢰도는 A의 거래 중에서 B가 포함된 거래의 비율로, 상품 간에 존재하는 연관성의 정도를 측정하는 데 사용된다.
A를 구매했을 때 B도 구매할 조건부 확률이라고도 할 수 있다.
A → B
의 신뢰도 값과 B → A
의 신뢰도 값은 다르고 값이 1에 가까울수록 연관성이 높다.
A → B의 향상도는 A를 구매하지 않았을 때 B를 구매할 확률 대비 A를 구매했을 때 B를 구매 할 구매확률의 증가 비율을 의미한다.
향상도 > 1 | 우연적 기회보다 높은 확률 |
향상도 = 1 | 독립 |
향상도 < 1 | 우연적 기회보다 낮은 확률 |
향상도가 1이면 두 품목은 독립이고(관련이 없음),
1보다 작으면 상관관계를 가지며 A를 구매하면 B를 구매하지 않을 확률이 구매할 확률보다 큼을 의미한다.
향상도가 1보다 크면 두 품목은 양의 상관관계를 가지고 임의로 B를 구매할 확률보다 A를 구매했을 때 B를 구매할 확률이 더 큼을 의미한다.
향상도는 지지도와 마찬가지로 A → B
와 B → A
의 값이 같은 대칭적 지표이다.
마트 거래내역
거래번호 | 품목 |
---|---|
1 | 삼겹살, 쌈장, 콜라 |
2 | 항정살, 상추 |
3 | 사이다, 콜라 |
4 | 삼겹살, 쌈장, 사이다 |
5 | 삼겹살, 쌈장, 상추 |
거래 번호는 한 명의 고객이 함께 구매한 상품을 나타내며 이를 트랜잭션(Transaction)이라고 한다. 위 표는 총 5개의 트랜잭션으로 구성된다.
거래내역이 주어지면 아래 같은 동시 구매표를 작성할 수 있다.
삼겹살 | 쌈장 | 사이다 | 콜라 | 상추 | 항정살 | |
---|---|---|---|---|---|---|
삼겹살 | 3 | 3 | 1 | 1 | 1 | 0 |
쌈장 | 3 | 3 | 1 | 1 | 1 | 0 |
사이다 | 1 | 1 | 2 | 1 | 0 | 0 |
콜라 | 1 | 1 | 1 | 2 | 0 | 0 |
상추 | 1 | 1 | 0 | 0 | 2 | 1 |
항정살 | 0 | 0 | 0 | 0 | 1 | 1 |
대각선상에 있는 셀들은 해당 상품의 판매횟수를 표시하고 각 셀을 통해 고객들이 어떤 상품을 함께 구매했는지 파악할 수 있다. 삼겹살을 예로 들면 총 3회 판매되었고, 쌈장과 함께 3번 같이 구매되었다.
동시 구매 교차표는 대칭행렬의 모습을 보인다.
apriori 알고리즘은 지지도를 사용해 빈발 항목 집합을 판별하고 이를 통해 계산의 복잡도를 감소시키는 알고리즘이다. [CODE LINK]
노션에 정리되어있던 글을 그대로 복사 붙여넣기 했는데 마크다운을 사용해 깔끔하게 옮겨지는 것이 신기하다... (원문)