연관분석(연관 규칙 분석)-1
오늘은 연관 분석에 대해 얘기해볼까 합니다. 저는 와이프랑 장을 볼때 이마트나 롯데마트를 자주 가는 편입니다. 그런데 마트에 갈때마다 원래 사려고 했던거 이외에 이것저것 많이 사게 됩니다. 더구나 제가 좋아하는 맥주가 할인 행사를 하고 있으면 그냥 지나치는 법이 없죠. 맥주를 사면 안주를 사야죠? 육포나 감자칩 같은 것들이요... 만약 마트 운영자 입장에서 A라는 제품이 판매될 때 B가 자주 구매되는 것을 알고 있다면 A 바로 옆에 B를 진열하면 매출이 늘 것 같습니다. 이렇게 서로 다른 품목들이 어떻게 연관되어 있는지를 알고 싶을 때 연관 규칙을 사용합니다.
연관 관계를 찾는데 가장 많이 사용하는 지표는 지지도(Support)와 신뢰도(Confidence) 그리고 향상도(Lift) 이렇게 3가지 입니다. 지지도는 특정 품목 집합이 거래에서 얼마나 자주 등장하는지를 나타내는 것으로 해당 품목 집합을 포함하는 거래의 비율로 계산할 수 있습니다. 신뢰도는 품목 A가 존재할 때 B가 나타나는 빈도를 의미합니다. 즉 A가 포함된 거래 중에 B도 포함되는 거래의 비율로 측정할 수 있습니다. 향상도는 A와 B가 함께 팔리는 빈도를 의미합니다. 무슨 말씀인지 잘 모르시겠죠? 그럼 아래 표를 한번 보시죠.
거래 #1 | 사과, 맥주, 쌀, 치킨 |
거래 #2 | 사과, 맥주, 쌀 |
거래 #3 | 사과, 맥주 |
거래 #4 | 사과, 배 |
거래 #5 | 우유, 맥주, 쌀, 치킨 |
거래 #6 | 우유, 맥주, 쌀 |
거래 #7 | 우유, 맥주 |
거래 #8 | 우유, 배 |
먼저 지지도를 한번 볼까요? 위 표에서 사과는 전체 8번의 거래 중 4번 등장하므로 지지도가 50%입니다. 그렇다면 [사과, 맥주, 쌀]의 지지도는 얼마일까요? 위 표에서 세 품목이 모두 나타나는 빈도는 8번 중 2번이므로 25%가 됩니다.
그럼 신뢰도는요? 신뢰도는 A가 존재할 때 B가 나타나는 빈도라고 말씀드렸는데 {A → B}로 표기합니다. 예를 들어 {사과 → 맥주}를 계산하려면 사과가 나타나는 빈도가 4번이고 사과가 나타날 때 동시에 맥주가 나타나는 빈도가 3번이므로 3/4 해서 75%가 됩니다. 그런데 신뢰도는 연관성의 중요도를 왜곡할 수 있다는 단점이 있습니다. 위의 표에서 보듯이 맥주의 판매 빈도는 고려하지 않고 사과의 판매 빈도만을 고려하고 있습니다. 만약 맥주가 원래 자주 판매되는 품목이라면 사과를 포함하는 거래가 맥주도 포함할 가능성이 커지게 되므로 신뢰도가 과장되게 됩니다. 이러한 문제를 해결하는 것이 향상도입니다. {사과 → 맥주}의 향상도는 {사과 → 맥주}의 신뢰도를 맥주의 빈도로 나눈 것과 같습니다. {사과 → 맥주}의 신뢰도가 75%이고 맥주의 빈도는 8번 중 6번이므로 향상도는 1이 나옵니다.(3/4 ÷ 6/8 = 1) 향상도가 1이라는 얘기는 두 품목 사이에 연관성이 없다는 것을 의미합니다. 향상도가 1보다 크면 A가 판매될 때 B도 함께 팔릴 가능성이 있다는 것이고 향상도가 1보다 작으면 A가 팔릴 때 B가 함께 팔릴 가능성이 작다는 것입니다.