1. 들어가며
연관규칙은 장바구니 분석(market basket analysis)이라고도 하는데, 원래 마트의 거래 데이터(transaction data)를 분석하고자 하는 필요성에서 활발하게 탐구되었다. 다른 많은 머신러닝 알고리즘에 비해 연관규칙은 이해하기 쉽고, 나오는 결과물도 실용적이다. 하지만 결정적으로 공부하는 입장에서 단점은 제대로 된 거래 데이터를 만질 수 없기 때문에, 사실 연습만 하고 실전을 경험해 보기 어려운 알고리즘이기도 하다.

2. 연관규칙(association rule)이란?
연관규칙을 통해 이런 일을 할 수 있다.
• 쇼핑몰에서 모자를 구매하는 고객의 10%는 선글라스를 동시에 구매한다.
• 최근 상담을 한 고객은 한 달 내에 핸드폰 요금제를 중단할 가능성이 일반고객의 2배이다.
• 목요일에 기저귀를 사간 주부는 맥주도 함께 사간다.
그렇다면 어떻게 하는지 구체적으로 알아보자. 아래와 같은 가상의 구매 물품 거래 데이터가 있다고 하자.
거래 번호 | 구매 물품 |
1 | 꽃, 카드, 쥬스 |
2 | 곰인형, 꽃, 풍선, 사탕 |
3 | 카드, 사탕, 꽃 |
4 | 곰인형, 풍선, 쥬스 |
5 | 꽃, 카드, 쥬스 |
위의 표를 보면 몇 가지 규칙이 보인다.
- If { 꽃, 주스 } --> { 카드 } : 꽃과 주스를 사면 카드도 산다
- If { 꽃, 카드 } --> { 주스 } : 꽃과 카드를 사면 주스도 산다
그런데 아주 간단한 거래에서는 규칙이 보이겠지만 수 만 건의 거래 데이터에서는 사람이 눈으로 규칙을 발견하기는 어렵다. 그래서 이런 규칙을 쉽게 찾아낸다면 비즈니스에 무척 도움이 될 것이다. 연관규칙을 제대로 활용하기 위해서는 알아야 할 개념이 세 가지가 있다.
3. 지지도(support)
말은 거창하지만 아주 간단한 개념이고 공식도 아주 쉽다.
지지도 = A와 B를 포하하는 거래 수 / 전체 거래 수
위의 표에서 계산해 보면 이렇다.
- 지지도(카드, 꽃) = 3/5 = 0.6 : 전체 거래 수에서 카드와 꽃을 구매한 비율
- 지지도(사탕) = 2/5 = 0.4 : 전체 거래 수에서 사탕을 구매한 비율
위의 공식에서 카드, 꽃, 사탕 등은 그것만 사는 것과 그것을 포함해서 다른 물품도 같이 구매한 모든 경우를 의미한다.
그렇다면 지지도의 의미는 무엇일까? 예를 들어 지지도(카드, 꽃)를 구한다고 한다면 카드와 꽃을 함께 구매한다는 이 규칙이 얼마나 자주 발생하는 규칙인가에 대한 의미다. 그렇다면 이 값이 높으면 좋을까? 적당히 좋아야 의미가 있다. 왜냐하면 이 값이 높다면 굳이 규칙을 찾았다고 말하지 않더라도 이미 많은 사람들이 알고 있을 만큼 흔한 일일 수 있기 때문이다.
4. 신뢰도(confidence)
신뢰도 = A와 B를 포함하는 거래 비율 / A를 포함하는 거래 비율
이 것도 표의 사례로 계산해보면 이해하기 쉽다.
- 신뢰도 (꽃 --> 카드) = 0.6/0.8 = 0.75 : 꽃을 산 사람의 75%는 카드를 산다
- 신뢰도 (카드-->꽃) = 0.6/0.6 = 1 : 카드를 산 사람은 100% 꽃을 산다.
결국 지지도는 A, B의 연관성을 측정하고, 신뢰도는 A에서 B로의 인과성을 측정하는 것이다.
5. 향상도(lift)
이건 이해하려면 조금 생각을 해야 한다. 일단 수식은 앞에서 배운 것을 이용해야 한다.
향상도 = 신뢰도(A-->B) / 지지도(B)
모든 나눗셈은 위와 아래를 비교한다는 사실을 잊지 말자. 우선 분자는 A를 구매했을 때 B를 구매할 확률이다. 분모는 전체 거래에서 B를 구매하는 비율이다. 그렇다면 이 공식에서 극단적인 상황을 생각해 보자.
- 향상도 (A --> B) = 0.9/0.1 = 9
위의 식은 분자가 분모보다 9배가 크다는 말이다.
분모는 뭐다? 전체 거래에서 B를 구매하는 비율. 이건 B만 살 수도 있고 다른 물건을 구매할 때 B도 같이 사는 경우를 모두 포함한다. 그렇다면 분자는? A를 구매하는 모든 거래에서 A와 B를 함께 구매하는 비율이다.
이 말을 풀어서 설명하면 전체 거래에서 B를 구매하는 비율에 비해 A를 살 때, B도 같이 사는 비율이 상대적으로 9배가 크다는 말이다. 즉 A를 사면 B도 산다는 규칙이 B만 단독으로 고려했을 때 보다 훨씬 더 크다는 말이다. A를 사면 B를 산다는 규칙이 꽤 강하다? 또는 그렇게 예측이 잘 된다는 의미다. 이런 규칙은 유익한 인사이트가 될 수 있다는 지표다.
이제. 향상도를 수식의 관점에서 이해해 보자. 이 부분이 이 글의 핵심이다.!!
확률에서 두 사건이 독립이면 다음의 공식이 성립한다.
P( B | A ) = P( B )
위의 식에서 왼쪽은 신뢰도의 분자이고, 오른쪽은 신뢰도 공식의 분모다. 이 값이 1에 가깝다는 것은 두 사건이 독립이라는 것이다. 즉, A를 구매했다는 사실과 무관하게 B를 구매한다는 것이다.
그런데 이 값이 아주 크거나 작다면, A와 B는 독립이 아니라는 것이고 그렇다면 A, B는 연관성이 있다는 것이고 이 말은 A, B 사이에 어떤 규칙이 있다는 것이다!!
6. 결론
연관규칙은 지지도, 신뢰도, 향상도를 종합적으로 판단해야 하지만, 일반적으로는 향상도 기준으로 놓고 규칙을 탐색하면 괜찮은 규칙을 빨리 발견할 수 있다. 하지만 실제 유의미한 데이터를 수집하기는 어려워서 공부하는 입장에서는 실습 데이터에서 뭔가 재미있는 규칙을 알아내기 어려운 아쉬움도 있다.
정말 쉬운 연관분석 실습
정말 쉬운 연관규칙 알고리즘1. 들어가며 연관규칙은 장바구니 분석(market basket analysis)이라고도 하는데, 원래 마트의 거래 데이터(transaction data)를 분석하고자 하는 필요성에서 활발하게 탐구되
diseny.tistory.com
혼동행렬(confusion matrix)
1. 들어가며 이분형 예측 통계(머신러닝) 모델은 예측의 성능을 측정하는 기준이 필요하다. 이때 가장 대표적으로 이용되는 측정 지표가 혼동행렬표이다. 혼동행렬표로부터 모델의 성능을 측정
diseny.tistory.com
댓글