마트의 상품 배치는 누가 정할까?
무엇과 무엇을 가까이 놓을지를 영수증이 알려 줍니다.
마트에 가면 우유 근처에 빵이 있고, 맥주 근처에 안주가 있습니다. 그냥 비슷한 것끼리 모아 둔 것처럼 보이지만, 큰 마트는 이 배치를 계산대에서 쌓인 데이터를 참고해 정하기도 합니다. 결제할 때마다 누가 무엇을 함께 샀는지가 한 줄씩 기록되기 때문입니다.
장바구니 분석
고객이 한 번에 무엇과 무엇을 함께 샀는지를 모아 자주 같이 담기는 짝을 찾아내는 일입니다. 장바구니 속을 살펴본다는 뜻에서 붙은 이름입니다.
이 방법은 장바구니에만 쓰이지 않습니다. 「한 번에 함께 일어난 것들」의 기록이기만 하면 무엇이든 같은 방법으로 볼 수 있습니다. 한 사람이 같은 날 검색한 낱말들, 한 환자에게 같이 처방된 약들도 그렇습니다. 이렇게 한 번에 함께 나타나는 항목들의 관계를 찾는 방법을 연관 분석이라고 합니다.
「따뜻한 음료를 산 학생의 72%가 호빵도 샀다」 같은 문장을 생각해 봅시다. 이런 72%가 무엇을 센 숫자인지가 연관 분석의 출발점입니다.
이 데이터는 생김새부터 다릅니다
여기서부터 왜 새로운 방법이 필요한지가 드러납니다.
회귀나 군집 분석에 쓰는 데이터를 떠올려 봅시다. 선수 데이터는 선수마다 잠재력 · 능력치 · 나이가 하나씩 있습니다. 음악 데이터도 곡마다 빠르기 · 에너지가 하나씩 있습니다. 어느 행을 봐도 칸의 개수가 똑같습니다. 영수증은 그렇지 않습니다.
반듯한 표
모든 행의 칸 수가 같습니다. 칸마다 숫자가 들어 있다면 각 행을 좌표로 볼 수 있고, 좌표니까 거리를 측정할 수 있습니다. k-평균이 돌아가는 것도 이 덕분입니다.
영수증 더미
행마다 칸 수가 다릅니다. 손님마다 산 물건의 개수가 다르니까요. 게다가 칸에 든 것은 숫자가 아니라 물건 이름입니다. 좌표로 놓을 수 없고, 거리도 측정할 수 없습니다.
그래서 방법이 달라집니다
회귀는 선을 긋고, 군집은 거리를 계산합니다. 연관 분석은 둘 다 하지 않습니다. 대신 셉니다. 이 물건이 몇 장의 영수증에 나왔는지, 저 둘이 같은 영수증에 몇 번 함께 나왔는지를 세어서 비율로 바꾸는 것이 전부입니다. 연관 분석이 쓰는 지표(지지도 · 향상도 · 신뢰도)는 모두 이렇게 센 숫자를 나눈 값입니다.
매점 영수증 10장
영수증 한 장, 즉 한 번의 거래 기록을 트랜잭션(transaction)이라고 부릅니다. 「거래」라는 뜻의 영어 낱말인데, 데이터 과학에서는 한 번에 함께 담긴 항목들의 묶음을 가리키는 말로 씁니다. 아래는 어느 날 점심시간에 나온 트랜잭션 10개입니다.
| 트랜잭션 | 함께 담긴 항목 | 항목 수 |
|---|---|---|
| T1 | 삼각김밥, 우유 | 2 |
| T2 | 삼각김밥, 우유, 초콜릿 | 3 |
| T3 | 삼각김밥, 컵라면, 이온음료 | 3 |
| T4 | 삼각김밥, 초콜릿 | 2 |
| T5 | 삼각김밥, 컵라면 | 2 |
| T6 | 우유, 컵라면 | 2 |
| T7 | 우유, 초콜릿 | 2 |
| T8 | 컵라면, 이온음료 | 2 |
| T9 | 컵라면, 이온음료, 초콜릿 | 3 |
| T10 | 초콜릿 | 1 |
T10을 눈여겨보세요. 초콜릿 하나만 사 간 손님입니다. 이런 트랜잭션은 어떤 짝도 만들지 못합니다. 그래도 전체 개수에는 들어갑니다. 「열 장 중 몇 장」을 셀 때 분모에 포함된다는 뜻입니다. 빼야 할까요, 남겨야 할까요? 남겨 둡니다. 초콜릿을 혼자 사 가는 일이 실제로 있었다는 것도 데이터이기 때문입니다.
위 표에서 이온음료가 담긴 트랜잭션을 모두 찾아보세요. 그 트랜잭션에는 공통으로 들어 있는 다른 항목이 있나요?
군집 분석과 무엇이 다를까?
둘 다 정답 없이 하는 분석이라 헷갈리기 쉽습니다.
군집 분석 — 손님을 묶는다
행을 묶습니다. 소비 성향이 비슷한 손님끼리 한 덩어리가 됩니다. 묶는 잣대는 거리이고, 결과는 「이 손님들은 한 무리다」입니다.
연관 분석 — 물건을 묶는다
항목을 잇습니다. 자주 함께 담기는 물건 사이에 굵은 선이 놓입니다. 잇는 잣대는 함께 나온 횟수이고, 결과는 「이 둘은 같이 나간다」입니다.
같은 영수증 더미, 다른 질문
두 방법은 똑같은 데이터에 쓸 수 있습니다. 다른 것은 무엇을 묶느냐입니다. 군집 분석은 표를 가로로 잘라 손님을 묶고, 연관 분석은 표를 세로로 살펴 물건을 묶습니다. 그래서 군집 분석은 「이런 손님층이 있다」를, 연관 분석은 「이 물건과 저 물건은 함께 담긴다」를 답으로 내놓습니다.
| 비교 항목 | 군집 분석 | 연관 분석 |
|---|---|---|
| 무엇을 묶나 | 데이터 하나하나(손님, 곡, 나라) | 항목과 항목(물건, 검색어, 약) |
| 무엇으로 측정하나 | 거리 — 가까울수록 한 무리 | 함께 나온 횟수 — 잦을수록 연관 |
| 데이터 모양 | 행마다 칸 수가 같은 수치형 표 | 행마다 칸 수가 다른 항목 목록 |
| 답의 생김새 | 군집 번호가 붙은 데이터 | 규칙 — 「A를 사면 B도 산다」 |
| 같은 점 | 둘 다 맞혀야 할 정답이 주어지지 않는다 | |
어디에 쓰이고 있을까?
「한 번에 함께 일어난 기록」이 있는 곳이면 어디든 쓰입니다.
상품 추천과 진열
쇼핑몰에서 상품을 하나 보면 아래에 「이 상품을 산 사람들이 함께 산 상품」이 줄지어 뜹니다. 그 줄은 사람이 하나하나 고른 것이 아니라 주문 기록에서 함께 산 상품을 찾아 만든 것입니다. 연관 분석은 그런 목록을 만드는 방법 가운데 하나입니다. 오프라인 매장에서는 같은 결과가 선반 배치와 묶음 할인으로 나타납니다.
연관 검색어
검색창에 한 낱말을 넣으면 같이 찾아볼 만한 낱말이 딸려 나옵니다. 한 사람이 한자리에서 이어 검색한 낱말들을 하나의 묶음으로 보면 영수증과 똑같은 모양의 데이터가 되고, 그 묶음에서 자주 붙어 다니는 낱말 짝을 찾아 보여 줄 수 있습니다.
약과 증상
한 환자에게 같은 시기에 처방된 약과 함께 먹은 음식을 한 묶음으로 봅니다. 특정한 조합에서 같은 부작용이 반복해 나타난다면 그 조합이 먼저 살펴볼 후보가 됩니다. 한 증상에 다른 증상이 자주 딸려 오는지를 찾는 데에도 씁니다.
세 사례에서 「장바구니」에 해당하는 것이 무엇인지 비교해 보면 이 방법이 어디에 쓸 수 있는지가 분명해집니다.
| 분야 | 장바구니에 해당하는 것 | 항목에 해당하는 것 |
|---|---|---|
| 유통 | 영수증 한 장 | 상품 |
| 정보 검색 | 한 사람이 이어서 검색한 기록 | 검색어 |
| 의료 | 한 환자의 처방 기록 | 약 · 음식 · 증상 |
| 학교 | 한 학생이 고른 과목 묶음 | 과목 |
학생들이 어떤 과목을 함께 고르는지를 찾으면 시간표를 짤 때 쓸 수 있습니다.
함께 나온다고 원인은 아닙니다
연관 분석이 찾아 주는 것은 규칙이지 이유가 아닙니다.
「A를 사면 B도 산다」는 결과가 나왔다고 해서 A를 사기 때문에 B를 사는 것은 아닙니다. 상관관계와 인과 관계를 구별하는 원칙이 여기서도 그대로 적용됩니다.
숨은 세 번째 이유
매점 영수증에 호빵과 따뜻한 음료가 자주 함께 담겼다고 합시다. 호빵이 음료를 부르는 것도, 음료가 호빵을 부르는 것도 아닐 수 있습니다. 추운 날씨라는 세 번째 사정이 둘을 함께 사게 만들었을 수 있습니다.
그래도 쓸모는 있습니다
이유를 몰라도 무엇이 함께 팔릴지 내다보는 데에는 규칙이 쓸모 있습니다. 호빵이 잘 팔리는 날 따뜻한 음료도 넉넉히 채워 두는 식입니다. 다만 둘을 가까이 놓으면 매출이 오를지처럼 무언가를 바꾸었을 때 결과가 달라지는지는 규칙만으로 알 수 없어 바꾸어 보고 확인해야 합니다. 「왜 그런가」를 설명하는 데에도 규칙만으로는 부족합니다.
의료 사례에서 특히 중요합니다
어떤 약과 어떤 음식이 자주 함께 기록되고 그때마다 같은 증상이 보였다고 해서, 그 음식이 약효를 떨어뜨렸다고 결론지을 수는 없습니다. 그 음식을 즐겨 먹는 사람들이 원래 그 증상을 겪기 쉬웠을 수도 있으니까요. 연관 분석이 하는 일은 「여기를 살펴보라」고 후보를 좁혀 주는 것까지입니다. 정말 그런지는 조건을 통제한 실험으로 확인해야 합니다.
매점 데이터에서 삼각김밥과 우유가 자주 함께 팔렸다고 해 봅시다. 이것이 둘 사이에 관계가 있다는 뜻일까요? 아니면 그냥 둘 다 많이 팔리는 물건이어서일까요? 어떻게 하면 구별할 수 있을까요?
핵심 정리
연관 분석
association analysis
- 데이터에서 항목끼리 함께 나타나는 관계를 찾는 방법
- 영수증에 쓰면 장바구니 분석이라 부른다
- 결과는 「A를 사면 B도 산다」는 규칙
- 항목이 하나뿐이라 짝을 만들지 못하는 트랜잭션도 전체 개수에 넣는다
트랜잭션
transaction
- 한 번에 함께 담긴 항목들의 묶음
- 행마다 항목 수가 다르다. 회귀·군집에 쓰는 표와 다른 점
- 좌표가 아니므로 거리를 측정할 수 없다. 대신 센다
군집과의 차이
clustering vs association
- 군집은 데이터 하나하나를, 연관은 항목과 항목을 묶는다
- 군집은 거리로, 연관은 함께 나온 횟수로 측정한다
- 둘 다 정답이 주어지지 않는 분석이다
해석의 한계
what a rule does not say
- 함께 나타난 것과 원인이 된 것은 다르다
- 둘을 함께 늘린 세 번째 사정이 있을 수 있다
- 규칙은 살펴볼 후보를 좁혀 줄 뿐이다
확인 퀴즈
배운 내용을 확인해 봅시다.
장바구니 분석이 하는 일로 알맞은 것은?
연관 분석에 쓰는 데이터가 회귀나 군집에 쓰던 표와 다른 점은?
같은 영수증 더미에 군집 분석과 연관 분석을 각각 했습니다. 무엇이 다른가?
트랜잭션이 무엇인지 바르게 설명한 것은?
매점 영수증에 호빵과 따뜻한 음료가 자주 함께 담겼습니다. 옳은 해석은?