단원 홈

Ⅲ. 데이터 모델링과 평가9차시

매점 영수증 24장,
무엇과 무엇이 함께 팔리나

신뢰도가 같은 두 규칙, 하나만 쓸모가 있다

“컵라면을 산 사람은 삼각김밥도 산다” — 네 명 중 세 명꼴입니다. “초코과자를 산 사람은 생수도 산다” — 역시 네 명 중 세 명꼴이고요. 두 규칙의 신뢰도는 소수 셋째 자리까지 같은데, 매점 주인이 써도 되는 것은 하나뿐입니다. 오늘은 자를 세 개 꺼내 그 차이를 잽니다.

  • [12데과03-04]
  • 50분네 정거장
  • 오늘의 도구파이썬이 이미 가진 것(집합 · itertools)
  • 자료가상 매점 영수증 24장 · 상품 8종
Ⅲ 단원 지도9 / 14차시
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14

학습 목표

  1. 개념에서

    지지도 · 신뢰도 · 향상도 세 자의 뜻과, 셋이 서로를 어떻게 받쳐 주는지 말할 수 있다.

  2. 손으로

    영수증 24장에서 세 자를 손으로 세고 코드로 확인한 뒤, 문턱을 걸어 규칙을 고를 수 있다.

  3. 확인에서

    고른 규칙의 근거를 세 숫자로 적고, 쓸 수 없는 규칙을 그 까닭과 함께 가려낼 수 있다.

1
여는 장면 · 5분

매점 주인의 쪽지 — "둘 중 하나를 묶어 할인합니다"

학교 매점 주인이 하루치 영수증 24장을 펼쳐 놓고 두 가지를 알아냈다고 합니다. 컵라면을 산 영수증에서는 네 장 중 세 장에 삼각김밥이 함께 있었고, 초코과자를 산 영수증에서도 네 장 중 세 장에 생수가 함께 있었다는 것입니다.

두 문장은 생김새가 똑같습니다. 0.750 과 0.750. 주인은 둘 중 하나를 골라 묶음 할인을 걸겠다고 하는데, 어느 쪽을 고르든 상관없을까요?

고르기 전에 한 가지만 확인합시다. 다음 손님이 생수를 살지 맞히는 내기가 있다고 해 봐요. 아무것도 보지 않고 늘 “생수!”라고 외치는 점원은 얼마나 맞힐까요? 아래 표 1의 합계 줄을 보면 생수는 24장 가운데 18장에 들어 있습니다 — 그 점원은 24번 중 18번, 그러니까 0.750 을 맞힙니다. 아무것도 보지 않고도 말이지요.

매점 알림 · 가상

컵라면 산 사람 4명 중 3명이 삼각김밥도 샀습니다. 초코과자 산 사람도 4명 중 3명이 생수를 샀고요. 둘 중 하나를 묶어 할인합니다!

영수증 24장 집계 · 이 쪽지는 수업을 위해 지어낸 것입니다
표 1영수증 24장 — 오늘의 원자료● 든 것 · 장수 많은 차례 · 삼각김밥 · 컵라면 두 열은 청록
영수증생수삼각김밥컵라면초코과자바나나우유흰우유이온음료젤리
#01·●●·●···
#02·●●··●··
#03●●●·····
#04●●●·····
#05●●●●····
#06●●●·····
#07●●··●···
#08●●·●····
#09●●···●··
#10●●····●·
#11●·●●····
#12●·●·●···
#13●··●····
#14●····●··
#15●····●··
#16●···●···
#17●··●····
#18●···●···
#19●··●··●●
#20●···●···
#21···●··●●
#22···●····
#23·····●··
#24····●●··
합계1810887632

한 줄이 영수증 한 장입니다. 합계 줄만 보아도 생수 18장은 유난히 흔하고, 젤리 2장은 유난히 드뭅니다. 이 표는 오늘 내내 되돌아올 자리예요 — 세 자를 손으로 셀 때도, 실험실에서 도장을 찍을 때도 이 24장을 봅니다. 자료: 이 교과서가 만든 가상 매점 영수증 24장(store_receipts.csv · 62줄) — 실제 판매 기록이 아닙니다.

먼저 예측

표 1을 보고 주인이 써도 되는 규칙을 하나 고르고, 그 까닭을 한 줄로 적어 보세요. 그리고 아래 두 칸을 연필로 채웁니다 — 세 칸을 세면 지지도 · 신뢰도 · 향상도가 나옵니다(계산기를 써도 좋아요). 3정거장 미션 ①에서 코드가 찍는 값과 맞대어 봅니다.

주인이 말한 첫 규칙
컵라면 → 삼각김밥컵라면이 든 영수증장삼각김밥이 든 영수증장둘 다 든 영수증장지지도 · 신뢰도 · 향상도를 공책에
주인이 말한 둘째 규칙
초코과자 → 생수초코과자이 든 영수증장생수이 든 영수증장둘 다 든 영수증장지지도 · 신뢰도 · 향상도를 공책에
체크포인트 1

표 1에서 두 규칙의 영수증 수를 연필로 세었고, 써도 되는 쪽을 한 줄로 골라 두었다 — 아직 근거는 신뢰도 하나뿐이다.

다음 정거장 · 개념 15분 →
2
개념 · 15분

세 개의 자 — 얼마나 흔한가, 어느 방향인가, 우연보다 나은가

2-1규칙 하나에 자 셋을 댄다

연관 규칙은 “A 를 산 영수증에는 B 도 들어 있다”를 A → B 로 적은 것입니다. 화살표에 방향이 있다는 것을 눈여겨보세요 — 컵라면 → 삼각김밥 과 삼각김밥 → 컵라면 은 같은 규칙이 아닙니다.

규칙 하나를 재는 자는 셋입니다. 지지도는 둘이 함께 든 영수증이 전체의 몇 분의 몇인지 — 얼마나 흔한 조합인가. 신뢰도는 A 가 든 영수증만 모아 놓고 그중 B 도 든 비율 — A 를 산 사람 가운데 몇 명인가. 향상도는 그 신뢰도를 B 가 원래 팔리는 비율로 나눈 값 — 우연보다 몇 배인가입니다.

규칙규칙 하나를 보고할 때는 세 숫자를 함께 적는다. 향상도만 적은 규칙도, 신뢰도만 적은 규칙도 읽을 수 없다.

그림 1세 개의 자 — 컵라면 → 삼각김밥을 재어 보면같은 24장을 세 번 훑는다 · 세 번째 줄(주황)이 '함께'
영수증 번호123456789101112131415161718192021222324① 컵라면이 든 영수증8장② 삼각김밥이 든 영수증10장③ 둘 다 든 영수증6장지지도6 ÷ 240.25024장 가운데 둘 다 든 비율 — 얼마나흔한 조합인가신뢰도6 ÷ 80.750컵라면이 든 8장 가운데 삼각김밥도 든비율 — 방향이 있다향상도0.750 ÷ 10/241.80삼각김밥이 원래 팔리는비율(10/24=0.417)보다 몇 배 ① 컵라면이 든 영수증8장123456789101112131415161718192021222324② 삼각김밥이 든 영수증10장123456789101112131415161718192021222324③ 둘 다 든 영수증6장123456789101112131415161718192021222324지지도0.2506 ÷ 2424장 가운데 둘 다 든 비율 — 얼마나 흔한 조합인가신뢰도0.7506 ÷ 8컵라면이 든 8장 가운데 삼각김밥도 든 비율 — 방향이있다향상도1.800.750 ÷ 10/24삼각김밥이 원래 팔리는 비율(10/24=0.417)보다몇 배

세 자는 모두 같은 24장에서 나오지만 나누는 수가 다릅니다 — 지지도는 24로, 신뢰도는 컵라면이 든 8로, 향상도는 삼각김밥이 원래 팔리는 비율로 나눕니다. 자료: 가상 매점 영수증 24장 — 표 1과 같은 값(원장 계산, 미션 ①의 코드가 찍는 값과 같다)

Ⅱ-9 에서 가져옴신뢰도는 교차표의 행 비율입니다. 표 1의 컵라면 줄만 모아 놓고 삼각김밥 칸의 비율을 읽은 것과 같아요. 달라진 것은 그 비율을 전체 비율과 견주는 칸(향상도)이 하나 더 붙었다는 점입니다.

2-2신뢰도만 보면 흔한 상품이 모든 규칙을 차지한다

이제 여는 장면의 두 규칙으로 돌아갑시다. 신뢰도는 둘 다 0.750 이었습니다. 그런데 삼각김밥은 24장 중 10장(0.417)에만 들어 있는 반면, 생수는 18장(0.750) 에 들어 있어요.

그러니까 초코과자를 산 사람의 75%가 생수를 샀다는 말은 — 아무 영수증이나 집어도 75%에 생수가 있다는 말과 같은 값입니다. 초코과자는 아무것도 하지 않았어요. 향상도로 재면 정확히 1.00, 곧 우연과 같다는 뜻입니다.

이것이 흔한 것의 함정입니다. 신뢰도만 줄 세우면 목록의 결과 자리(화살표 오른쪽)는 가장 잘 팔리는 상품이 모두 차지합니다. “빵을 사면 봉투를 산다” 같은 규칙이 늘 1위인 까닭이지요.

2-3방향을 바꾸면 무엇이 바뀌고 무엇이 그대로인가

규칙을 뒤집어 보면 세 자가 서로 다르게 움직입니다. 함께 든 6장은 그대로인데 나누는 수가 달라지니까요. 같아야 할 것 같은 두 숫자가 다르거나, 달라야 할 것 같은 두 숫자가 같은 자리를 찾아보세요.

신뢰도는 같은데 기준선이 다르다
1.80컵라면 → 삼각김밥 향상도
vs
1.00초코과자 → 생수 향상도
컵라면→삼각김밥향상도 1.80초코과자→생수향상도 1.00

신뢰도 0.750 둘 — 점선(기준선)이 어디 있느냐가 갈랐다.

뒤집으면 신뢰도만 바뀐다
0.750컵라면 → 삼각김밥
vs
0.600삼각김밥 → 컵라면
컵라면→삼각김밥 · 6÷80.750삼각김밥→컵라면 · 6÷100.600

함께 든 6장은 같고 나누는 수가 8과 10으로 다르다. 향상도는 양쪽 다 1.80.

향상도가 방향을 가리지 않는 까닭은 식을 한 번만 고쳐 쓰면 보입니다. 신뢰도 ÷ B 지지도 = (함께 지지도 ÷ A 지지도) ÷ B 지지도 = 함께 지지도 ÷ (A 지지도 × B 지지도) — A 와 B 를 맞바꿔도 분모가 그대로입니다. 그래서 “어느 쪽을 매대에 앞세울까”는 신뢰도가, “둘이 정말 붙어 다니나”는 향상도가 답합니다.

2-4드문 것 · 1보다 작은 것 · 한 번도 없는 것

향상도가 크면 늘 좋은 규칙일까요. 젤리 → 이온음료는 신뢰도 1.000 · 향상도 8.00 으로 오늘 표에서 가장 강해 보이지만, 그 근거는 영수증 두 장뿐입니다(지지도 0.083). 두 장은 같은 사람이 이틀 들른 것일 수도, 그냥 우연일 수도 있어요. 그래서 규칙을 고르기 전에 최소 지지도 문턱을 먼저 겁니다.

반대로 향상도가 1보다 작은 규칙도 있습니다. 흰우유 → 바나나우유는 0.57 — 흰우유를 산 영수증에서는 바나나우유가 원래보다 덜 나타납니다. 둘이 서로를 대신하는 상품일 수 있다는 단서예요. 다만 24장으로는 단서까지입니다. 우연에 맡겨도 함께 1장 이하가 나올 확률이 41.4% 나 되니까요.

한 번도 함께 산 적이 없는 쌍은 9쌍입니다. 이 9쌍은 모두 같은 뜻일까요? 아닙니다 — 초코과자와 흰우유는 우연의 몫이 2.00장인데 0장이라 눈에 띄지만(우연이 0장을 만들 확률 5.9%), 젤리와 흰우유는 우연의 몫이 0.50장이라 0장이 오히려 자연스럽습니다(55.4%). 0은 관계없음일 수도, 음의 연관일 수도, 표본이 작을 뿐일 수도 있습니다.

가장 강한 규칙이 선 자리
8.00젤리 → 이온음료 향상도
인데
2장그 근거가 된 영수증
영수증 24장 가운데 함께 2장향상도 8.00 · 지지도 0.083

24칸 중 두 칸 위에 선 규칙 — 한 장만 달라져도 값이 크게 뛴다.

우연보다 덜 만난 짝
1.75장우연의 몫
→
1장실제로 함께
흰우유·바나나우유가 함께 든 장수우연의 몫 1.75장실제 1장향상도 0.57 — 1보다 작다

덜 만났다 — 향상도 0.57. 대체재의 단서이지만 24장으로는 입증이 아니다.

자료: 가상 매점 영수증 24장 — 위 네 쌍의 숫자는 모두 미션 ①~④의 코드가 찍는 값이고, 확률 41.4% · 5.9% · 55.4% 는 같은 24장에서 계산한 값이다.

규칙을 읽는 나침반 — 네 물음을 차례로

  1. 흔한가지지도 — 이 규칙은 영수증 몇 장 위에 서 있나
  2. 방향신뢰도 — A 를 산 사람 가운데 B 인가, 그 반대인가
  3. 우연보다향상도 — B 가 원래 팔리는 비율보다 몇 배인가
  4. 흔들림영수증 한 장이 바뀌면 값이 얼마나 움직이나

네 번째 물음은 앞의 셋으로 답할 수 없습니다. 그래서 3정거장의 실험실에서 영수증을 직접 고쳐 보며 재어 봅니다.

체크포인트 2

세 자의 뜻과, 신뢰도가 같아도 향상도가 갈리는 까닭을 말할 수 있다. 이제 직접 세어서 확인한다.

다음 정거장 · 손으로 20분 →
3
손으로 · 20분

세 자를 손으로 세고, 문턱을 걸어 규칙을 고른다

미션 ① 뒤에 실험실 「잠긴 영수증 공방」 8.5분이 들어갑니다 — 2정거장 개념에서 옮겨 온 시간이라, 미션 넷의 합(20분)은 그대로입니다.

오늘의 장비

오늘은 내려받을 라이브러리가 없다 — 파이썬이 이미 가진 것들

지난 차시들과 달리 오늘은 pandas 도 scikit-learn 도 쓰지 않습니다. 연관 규칙은 scikit-learn 에도 없어요. 영수증 한 장은 상품의 모임이고, 파이썬의 집합(set) 이 바로 그 모임이거든요. 첫 ▶ 만 파이썬 엔진을 받느라 몇 초 걸리고, 그 뒤로는 바로 돌아갑니다.

부르는 모양

영수증 = {}
영수증[1] = {"삼각김밥", "컵라면"}

{"컵라면"} <= 영수증[1]
# True — 부분집합이면 '들어 있다'

오늘 쓰는 것 넷

set
영수증 한 장 — 순서도 중복도 없는 모임
<=
부분집합 — {A, B} <= 영수증 이면 둘 다 든 것
setdefault
번호를 처음 보면 빈 집합부터 만든다
permutations
방향이 있는 짝 — combinations 와 다르다

앞 도구와 다른 셋

  1. 내려받지 않는다표준 라이브러리 — 학교망이 막혀도 돈다
  2. 순서가 없다영수증은 '무엇을 샀나'의 모임일 뿐, 담은 차례는 남지 않는다
  3. 짝에 방향이 있다permutations 는 (A,B) 와 (B,A) 를 둘 다, combinations 는 하나만

대가 — 상품이 늘면 짝이 제곱으로 늡니다. 8종이면 짝 28개(방향까지 세면 규칙 56개)지만 120종이면 짝이 7,140개가 돼요. 10차시가 바로 그 벽을 만납니다.

1

연필로 먼저 센다 — 그다음 코드로 맞댄다

8분

여는 장면에 적어 둔 내 예측입니다. 연필로 센 세 숫자를 옆에 두고 읽어 보세요.

그리고 하나만 더 짐작해 둡니다 — 초코과자 → 생수의 향상도는 1보다 클까요, 같을까요?

기본 빈칸 ①(신뢰도)과 빈칸 ②(향상도) 두 줄을 채우고 ▶ 실행합니다. 식은 2-1 의 그림 1에 그대로 있어요. 장수(A, B) 는 둘 다 든 영수증 수, 장수(A) 는 A 가 든 영수증 수, N 은 24입니다.

도전 맨 아래 목록에 ("생수", "초코과자") 를 한 줄 더해 돌려 보세요. 방향을 뒤집었으니 신뢰도는 6 ÷ 18 로 크게 떨어지는데, 향상도는 1.00 그대로입니다. 왜 그런지 2-3 의 식으로 설명해 보세요.

탐구 세 자 가운데 하나만 보고 규칙을 골라야 한다면 어느 것을 고르겠습니까? 그 자만 보았을 때 속는 예를 표 1에서 하나 찾아 적으세요(확인 문제 1의 뒷부분에 씁니다).

컵라면 → 삼각김밥의 신뢰도가 인데 삼각김밥 → 컵라면은 인 까닭은 이기 때문이다. 그런데 향상도가 양쪽 다 같은 까닭은 이다.

확인 문제 1에 적어 제출 →
실험실 · 8.5분

잠긴 영수증 공방 — 세 자를 거꾸로 다뤄 본다

지금까지는 영수증을 그대로 두고 값을 읽기만 했습니다. 이번에는 반대로 갑니다 — 값을 정해 놓고 영수증을 고칩니다. 의뢰서마다 목표 향상도가 적혀 있고, 어떤 영수증에는 자물쇠가 걸려 있으며, 쓸 수 있는 도장 수도 정해져 있어요. 어디를 고쳐야 값이 움직이는지 찾는 동안, 세 자가 무엇으로 만들어지는지가 손에 잡힙니다.

말 풀이 — 도장은 영수증 한 장에 상품 하나를 더하거나 지우는 일입니다(같은 자리를 다시 누르면 지워져요). 자물쇠가 걸린 영수증에는 도장을 찍을 수 없습니다. 우연의 몫은 두 상품이 아무 사이도 아닐 때 그냥 겹쳐서 함께 들 것으로 기대되는 장수(A 장수 × B 장수 ÷ 24)입니다. 별은 의뢰서의 세 조건을 채우면 하나씩 켜집니다.

시뮬레이터

잠긴 영수증 공방

초코과자 영수증에는 손대지 말 것 — 그런데도 향상도가 움직인다

  1. 1의뢰서를 읽고 예측을 잠근다
  2. 2도장(상품)을 고르고 영수증을 누른다 — 있으면 지워진다
  3. 3계기의 두 막대와 우연의 몫 점선이 움직이는 것을 본다
의뢰서
예측 — 고르면 도장 받침이 열린다
도장 — 찍을 상품
받침
의뢰 ① 흔한 것을 흔들어라예측을 고르면 도장 받침이 열립니다

향상도 = 실제로 함께 든 장수 ÷ 우연의 몫(A 장수 × B 장수 ÷ 24) · 문턱 = 함께 3장 이상이고 향상도 1.2 이상

별 셋 = 의뢰서에 적힌 세 조건. 한 번 켜진 별은 꺼지지 않는다 · 자물쇠가 걸린 영수증에는 도장을 찍을 수 없다 · 예산을 넘겨도 계속 찍을 수는 있지만 둘째 별이 꺼진다

초코과자 → 생수 · 향상도1.00배
함께 든 영수증6
신뢰도0.750
우연의 몫6.00
도장0 / 1
별0 / 15
도전 1

흔한 것 — 의뢰 ①과 ②를 모두 풀어라. 초코과자 영수증을 한 장도 건드리지 않고 향상도를 1 아래로, 그리고 1.50 으로.

도전 2

방향 — 의뢰 ③에서 두 방향의 신뢰도를 같게 만든 뒤, 그때 두 향상도가 어떻게 되는지 확인하라.

도전 3

흔들림 — 의뢰 ④에서 도장 하나로 문턱에 새 규칙을 들이고, 의뢰 ⑤에서 0.57 을 1.00 으로 만들어라.

자료: 표 1과 같은 가상 영수증 24장을 쪽 안에 실었다. 판이 쓰는 셈은 미션 ①~④의 코드와 같은 식이고, 쪽이 열릴 때 원장이 구운 값과 스스로 맞대어 본다.

실험실에서 찍은 도장은 코드 한 줄입니다 — [파이썬으로 복사]를 누르면 영수증[23].add("생수") 같은 줄이 클립보드에 담기고, 미션 ④의 코드 맨 아래에 붙이면 판과 소수점까지 같은 값이 나옵니다. 의뢰 ⑤에서 본 대체재 이야기는 확인 문제 4에 적어 제출 →

2

가능한 규칙을 모두 만들어 향상도 순으로 줄 세운다

4분

상품 8종이면 방향이 있는 규칙은 8 × 7 = 56개입니다. 그 가운데 한 번이라도 함께 산 규칙만 남겨 향상도 순으로 줄을 세우면 — 1위 규칙은 영수증 몇 장이 만든 규칙일까요? 숫자 하나를 짐작해 두세요.

기본 코드 ②는 채워져 있습니다. 그대로 ▶ 실행해 위 다섯 줄과 아래 세 줄을 읽으세요. 줄 맨 앞의 함께 n장을 특히 눈여겨봅니다.

도전 규칙들.sort(key=lambda t: -t[2]) 의 t[2](향상도)를 t[0](함께 장수)으로 바꿔 다시 줄 세워 보세요. 맨 위 다섯 줄이 어떻게 달라지나요? 두 줄 세우기 가운데 매점 주인에게 보여 줄 것을 하나 고르고 까닭을 적으세요.

탐구 마지막 줄의 함께 산 적이 없는 9쌍은 모두 같은 뜻일까요? 초코과자·흰우유는 우연의 몫이 2.00장인데 0장이고(우연이 0장을 만들 확률 5.9%), 젤리·흰우유는 우연의 몫이 0.50장이라 0장이 자연스럽습니다(55.4%). 두 0을 같은 칸에 적어도 되는지 한 줄로 적으세요.

향상도만 보고 1위를 고르면 안 되는 까닭은 위 다섯 줄이 모두 장 위에 서 있기 때문이다. 그래서 규칙 목록에는 향상도 옆에 를 반드시 함께 적는다.

확인 문제 3에 적어 제출 →
3

문턱을 건다 — 매점 주인에게 줄 규칙 하나 고르기

6분

이제 걸러 냅니다. 함께 3장 이상 · 향상도 1.2 이상 이라는 문턱을 세우면 38개 가운데 몇 개가 남을까요? 숫자 하나를 짐작해 두세요.

기본 코드 ③은 채워져 있습니다. 그대로 ▶ 실행해 남은 규칙과, 그 아래 문턱을 바꾸면 몇 개가 남는지를 읽으세요.

도전 최소장수, 최소향상 = 3, 1.2 한 줄을 (2, 1.0) · (2, 1.5) · (4, 1.0) · (4, 1.5) 네 가지로 바꿔 네 번 돌리고, 남는 규칙 수를 확인 문제 5의 표에 적으세요. 출력 마지막 세 줄이 답을 함께 찍어 주니 맞대어 보면 됩니다. 두 문턱 가운데 어느 쪽이 목록을 더 크게 깎나요? 그리고 올려도 아무것도 안 깎이는 칸은 어디인가요?

탐구 남은 규칙 둘은 같은 두 상품의 앞뒤일 뿐입니다. 매점 주인은 둘 중 하나만 씁니다 — 매대 앞자리에 무엇을 놓을지 정하는 것이라면 어느 쪽인가요? 세 숫자를 근거로 골라 적으세요(본 과제).

문턱을 로 낮추면 목록이 개로 늘어나는데, 새로 들어오는 것은 대개 이다. 그래서 문턱은 와 함께 적어야 한다.

확인 문제 5의 표를 채워 제출 →
4

우연의 몫 — 실험실에서 찍은 도장을 코드로 옮긴다

2분

실험실에서 도장 한 장으로 향상도를 움직여 보았습니다. 그 한 장이 코드에서는 줄 하나입니다. 초코과자 영수증은 한 장도 건드리지 않았는데 초코과자 → 생수의 향상도가 움직인 까닭을 먼저 말해 보세요.

기본 코드 ④는 채워져 있습니다(맨 아래 줄이 실험실 의뢰 ①의 도장입니다). 그대로 ▶ 실행해 우연의 몫이 어떻게 향상도를 만드는지 보세요. 실험실에서 다른 도장을 찍었다면 [파이썬으로 복사]로 받은 줄을 그 자리에 바꿔 넣으면 됩니다.

도전 보기("젤리", "이온음료") 를 더해 보세요. 우연의 몫이 0.25장인데 실제로 2장이 함께 있어 향상도가 8.00 이 됩니다 — 분모가 작을수록 값이 크게 튄다는 뜻이에요.

탐구 우연에 맡겼을 때 그만큼 이상 함께 나올 확률은 초코과자·생수 69.8% · 컵라면·삼각김밥 2.8% · 젤리·이온음료 1.1% 입니다. 젤리 규칙은 확률이 가장 낮은데도 왜 매대에 못 쓸까요? 그리고 흰우유·바나나우유가 함께 1장 이하일 확률이 41.4% 라는 것은 "24장으로 대체 관계를 입증할 수 있나"에 무엇이라고 답합니까?

향상도 = ÷ 이므로, A 를 하나도 건드리지 않고 쪽만 고쳐도 값이 바뀐다. 그래서 향상도가 높다는 말은 는 뜻이지 A 가 B 를 일으켰다는 뜻이 아니다.

확인 문제 2에 적어 제출 →
체크포인트 3

세 자를 손과 코드로 각각 얻었고, 영수증을 직접 고쳐 무엇이 값을 움직이는지 보았으며, 문턱을 걸어 규칙 하나를 골랐다.

다음 정거장 · 정리·확인 10분 →
4
정리·확인 · 10분

오늘의 탐험 일지

  1. 찾은 것

    신뢰도가 똑같이 0.750 인 두 규칙이 향상도에서 1.80 과 1.00 으로 갈렸다 — 갈라 놓은 것은 A 가 아니라 B 가 원래 팔리는 비율(삼각김밥 10장 · 생수 18장)이었다.

  2. 도구의 한계

    향상도만 줄 세우면 위 다섯 줄이 전부 '함께 2장' 짜리다. 문턱(3장 · 1.2)을 걸면 24장에서 남는 규칙은 2개뿐이고, 남은 둘은 같은 두 상품의 앞뒤다.

  3. 보고의 규칙

    규칙 하나를 보고할 때는 세 숫자를 함께 적고, 몇 장 위에 선 규칙인지를 맨 앞에 적는다. 흔들림은 지지도가 정한다 — 24장에서는 도장 하나로 8.00 이 5.33~12.00 을 오간다.

✍️ 문제마다 답을 쓰고 제출하기를 누르세요. 제출하면 모범 답안이 열리고, 제출한 답은 선생님께 전달됩니다.

1. 컵라면 → 삼각김밥의 신뢰도는 0.750, 삼각김밥 → 컵라면의 신뢰도는 0.600 이다. 두 값이 왜 다른지 영수증 수로 설명하고, 그런데도 향상도는 왜 같은지 쓰시오. 그리고 세 자 가운데 하나만 보았을 때 속는 예를 표 1에서 하나 들어 덧붙이시오.
📖 모범 답안

함께 든 영수증은 6장으로 같은데 나누는 수가 다르다. 컵라면이 든 영수증은 8장이라 6 ÷ 8 = 0.750, 삼각김밥이 든 영수증은 10장이라 6 ÷ 10 = 0.600 이다. 신뢰도는 화살표 왼쪽 상품이 든 영수증만 분모로 쓰므로 방향에 따라 달라진다.

향상도는 방향을 가리지 않는다. 향상도 = 신뢰도 ÷ B 지지도 = (함께 지지도 ÷ A 지지도) ÷ B 지지도 = 함께 지지도 ÷ (A 지지도 × B 지지도) 이므로, A 와 B 를 맞바꿔도 값이 같다. 실제로 두 방향 모두 1.80 이다.

하나만 보면 속는 예(예시) — 신뢰도만 보면 초코과자 → 생수가 0.750 으로 높아 보이지만 향상도는 1.00 이다. 향상도만 보면 젤리 → 이온음료가 8.00 으로 1위지만 근거는 영수증 2장뿐이다. 지지도만 보면 컵라면 → 삼각김밥(0.250)과 초코과자 → 생수(0.250)가 구별되지 않는다. 셋 가운데 하나만으로는 어느 것도 안전하지 않다.

2. 매점 주인이 “초코과자를 사면 생수를 75%나 사니 둘을 묶어 할인하자”고 한다. 숫자 하나로 반박하시오. 그리고 실험실에서 초코과자 영수증을 한 장도 건드리지 않고 향상도를 움직였던 것이 이 반박과 어떻게 이어지는지 쓰시오.
📖 모범 답안

향상도 1.00 이다. 생수는 원래 24장 가운데 18장(75%)에 들어 있다. 초코과자를 사든 안 사든 같은 비율이므로 묶음 할인의 근거가 없다. 다른 말로, 우연의 몫이 6.00장인데 실제로도 6장이다.

실험실과 이어지는 점 — 향상도 = 함께 든 장수 ÷ 우연의 몫이고, 우연의 몫은 A 장수 × B 장수 ÷ 24 다. 그래서 초코과자 영수증(분자·A 쪽)을 하나도 건드리지 않고 생수 쪽만 바꿔도 값이 움직인다 — #23 에 생수 하나를 찍으면 생수가 18 → 19장이 되어 향상도는 1.00 → 0.95, 반대로 초코과자가 없는 영수증 6장에서 생수를 지우면 생수가 12장이 되어 1.50 이 된다. 향상도는 A 와 B 사이의 일만이 아니라 B 가 전체에서 얼마나 흔한지까지 담은 값이다.

3. 젤리 → 이온음료는 신뢰도 1.000 · 향상도 8.00 으로 가장 강해 보인다. 이 규칙을 매대 배치에 쓰기 전에 무엇이 필요한지 쓰시오. 함께 산 적이 한 번도 없는 9쌍을 모두 “관계없음”으로 적으면 안 되는 까닭도 덧붙이시오.
📖 모범 답안

지지도가 0.083(2장)뿐이다. 두 장은 한 사람이 두 번 산 것일 수도, 우연일 수도 있다. 영수증을 더 모아 같은 향상도가 유지되는지 보아야 한다(최소 지지도 문턱). 실제로 실험실에서 보았듯 도장 한 장이면 이 규칙의 향상도는 5.33 에서 12.00 사이를 오간다 — 같은 도장 한 장으로 컵라면 → 삼각김밥은 1.60~2.06 밖에 움직이지 않는다. 흔들림의 크기를 정하는 것은 몇 장 위에 섰는가다.

9쌍이 같은 뜻은 아니다. 0장이라도 우연의 몫이 다르다. 초코과자·흰우유는 우연의 몫이 2.00장이라 0장은 눈에 띄지만(우연이 0장을 만들 확률 5.9%), 젤리·흰우유는 우연의 몫이 0.50장이라 0장이 오히려 자연스럽다(55.4%). 0은 관계없음일 수도, 음의 연관일 수도, 표본이 작을 뿐일 수도 있다.

4. 흰우유 → 바나나우유의 향상도 0.57 이 뜻하는 것을 쓰고, 매점 운영에 쓸 방법을 하나 적으시오. 그리고 실험실 의뢰 ⑤에서 도장 하나로 이 값이 1.00 이 된 것이 이 해석에 대해 무엇을 말해 주는지 덧붙이시오.
📖 모범 답안

흰우유를 산 영수증에서는 바나나우유가 원래의 절반 남짓만 나타난다(신뢰도 0.167, 전체 비율 7 ÷ 24 ≈ 0.292). 서로를 대신하는 대체재일 가능성이다. 운영에는 이렇게 쓸 수 있다 — 한쪽이 떨어질 때 다른 쪽 재고를 늘려 두거나, 둘을 같은 매대에 나란히 두어 고르기 쉽게 한다. 인과는 아니다 — 왜 덜 함께 사는지는 이 표가 말해 주지 않는다.

도장 하나로 1.00 이 되었다는 것은 이 해석이 아직 단서라는 뜻이다. 함께 든 영수증이 1장뿐이라 한 장이 더해지면 값이 0.57 → 1.00 으로 뛴다. 우연에 맡겨도 함께 1장 이하가 나올 확률이 41.4% 이므로, 24장으로는 대체 관계를 입증할 수 없다. 더 많은 영수증에서 같은 값이 유지되는지 보아야 한다.

5. 미션 ③의 도전에서 문턱을 네 번 바꿔 돌린 결과를 아래 표에 채우시오. 그리고 최소 지지도를 3장에서 2장으로 낮추면 무엇이 새로 들어오는지, 문턱을 낮추는 것의 이득과 위험을 쓰시오.
최소 장수향상도 1.0 이상향상도 1.2 이상향상도 1.5 이상
2장 이상
3장 이상
4장 이상
📖 모범 답안

표 — 2장 이상: 14 / 8 / 8 · 3장 이상: 8 / 2 / 2 · 4장 이상: 8 / 2 / 2.

어느 쪽이 더 깎나 — 첫 칸에서는 둘이 똑같이 깎는다. 2장 이상에서 향상도를 1.0 → 1.2 로 올리면 14 → 8 이고, 향상도 1.0 에서 장수를 2 → 3 으로 올려도 14 → 8 이다. 다른 것은 그다음 칸이다 — 둘 다 한 칸 더 올려도 아무것도 안 깎인다(8 → 8 · 2 → 2). 문턱은 이어진 눈금이 아니라 자료가 놓인 자리에서 작동한다.

왜 안 깎이나 — 향상도 1.2 와 1.5 가 늘 같은 까닭은 그 사이에 놓인 규칙이 하나도 없기 때문이다. 3장 이상과 4장 이상이 같은 까닭은 함께 4장인 규칙이 하나도 없고(문턱을 (3, 1.0) 으로 돌려 보면 남는 8개가 모두 '함께 6장' 아니면 '함께 8장'이다), 함께 3장인 규칙은 향상도가 1보다 작아 어느 칸에도 들지 못하기 때문이다.

2장으로 낮추면 목록이 2개에서 8개로 늘고, 젤리 → 이온음료(8.00) · 젤리 → 초코과자(3.00) 처럼 영수증 2장짜리 규칙이 위를 채운다.

이득 — 드문 조합에서 새 발견이 나올 수 있다. 잘 팔리지 않는 상품끼리의 관계는 문턱이 높으면 아예 보이지 않는다. 위험 — 우연히 한두 번 함께 산 조합이 가장 높은 향상도로 목록 맨 위를 차지한다. 그래서 문턱을 낮출 때는 고른 문턱 값과 그 까닭을 목록과 함께 적고, 규칙마다 '함께 n장'을 나란히 보인다.

+
더 알아보기

영수증 밖의 이야기 셋

① 거래 기록거래 한 줄 = 한 사람이 한 번에 산 것② 자주 나오는 묶음빵14회빵·우유9회빵·우유·잼4회잼·버터2회점선 아래 = 문턱 미달, 여기서 버린다(버릴 것을 먼저 버리는 것이 빠르기의 핵심)③ 규칙으로 바꾼다 — 방향이 생긴다빵 → 우유묶음 9회 ÷ 빵 14회0.64신뢰도우유 → 빵묶음 9회 ÷ 우유 11회0.82신뢰도같은 묶음 하나에서 규칙 둘 — 신뢰도는 나누는 수가 달라 갈린다.1993년 논문은 여기까지(지지도·신뢰도)였고, 향상도는 뒤에 더해졌다.그림의 빵·우유·잼 숫자는 얼개를 보이려고 지어낸 예다.
역사

자가 먼저 있었던 것은 아니다 — 1993년의 물음

오늘 쓴 세 자는 하늘에서 떨어진 것이 아닙니다. 1993년 IBM 알마덴 연구소의 라케시 아그라왈과 동료들은 대형 소매점의 계산대 기록이 쌓이기 시작하자 “이 많은 거래에서 함께 팔리는 묶음을 어떻게 찾아낼까”를 물었고, 그 논문에서 지지도와 신뢰도라는 두 자를 정의했습니다. 향상도는 그 뒤에 더해진 자입니다 — 신뢰도만으로는 흔한 상품을 걸러 낼 수 없다는 것이 곧 드러났기 때문이지요.

이 연구가 실제로 푼 문제는 세는 일 자체였습니다. 상품이 수천 종이면 가능한 묶음이 천문학적으로 늘어나거든요. 그래서 “자주 나오지 않는 묶음을 포함한 더 큰 묶음은 볼 것도 없이 자주 나오지 않는다”는 성질을 써서 볼 후보를 미리 잘라 냈습니다. 오늘 우리가 8종을 전부 훑어 본 것은 24장·8종이라 그래도 되기 때문이고, 10차시에서 상품이 120종으로 늘면 바로 이 문제를 만납니다.

도해: 거래 기록 → 자주 나오는 묶음 → 방향이 있는 규칙 둘로 가는 세 단계를 그렸다. 그림 속 빵·우유·잼의 숫자는 얼개를 보이려고 지어낸 예다. · 출처: R. Agrawal, T. Imieliński, A. Swami, "Mining association rules between sets of items in large databases", ACM SIGMOD, 1993

같은 이야기가 옮겨 다니며 붙은 것들거래 기록 분석장바구니에서 두 상품이함께 나오는 빈도를 셌다신문·잡지 기사'금요일 저녁'이 붙었다— 원문에 없던 요일덧붙은 것 1개째붙은 이야기강연과 교재'퇴근길 아빠'라는이야기가 붙었다덧붙은 것 2개째붙은 이야기마케팅 자료'매대를 나란히 옮겨매출이 뛰었다'가 붙었다덧붙은 것 3개째붙은 이야기옮겨질 때마다 하나씩 붙었고, 붙은 것에는 출처가 없다.
현장

“맥주와 기저귀” — 옮겨 다니며 살이 붙은 이야기

장바구니 분석에서 가장 유명한 이야기는 “금요일 저녁에 기저귀를 사러 온 아빠들이 맥주도 사더라, 그래서 두 매대를 나란히 놓았더니 매출이 뛰었다”입니다. 데이터 분석 수업이라면 한 번쯤 듣는 이야기지요.

그런데 이 이야기는 출처를 따라 올라갈수록 흐려집니다. 1990년대 초 미국의 한 유통 기업 거래 기록을 분석했다는 데까지는 여러 판본이 겹치지만, 요일도 아빠도 매출이 뛰었다도 판본마다 붙었다 빠졌다 합니다. 뒷날 분석에 참여했던 쪽은 “두 상품이 함께 나온다는 관찰은 있었지만 매대를 실제로 옮기지는 않았다”고 말했습니다.

교훈은 통계가 아니라 보고에 있습니다. 세 숫자와 표본 크기가 함께 적혀 있었다면 이야기가 이렇게 자라지 못했을 거예요. 오늘 우리가 “함께 n장”을 규칙 옆에 늘 적기로 한 까닭입니다.

도해: 같은 분석이 기사 · 강연 · 마케팅 자료로 옮겨 가며 하나씩 덧붙는 모습을 네 단계로 그렸다. 각 단계의 덧붙은 내용은 널리 도는 판본들을 간추린 것이고, 확인된 것은 '두 상품이 함께 나왔다'까지다.

향상도 자 위에 오늘의 네 규칙0.50.7511.5234681 — 우연과 같다◀ 덜 함께 산다 (대체)더 함께 산다 (보완) ▶흰우유 → 바나나우유 0.57초코과자 → 생수 1.00컵라면 → 삼각김밥 1.80젤리 → 이온음료 8.00경제학의 두 이름과 견주면보완재함께 쓰면 값이 커지는 짝커피와 설탕 · 프린터와 잉크향상도 1보다 큼대체재하나가 다른 하나를 대신하는 짝버터와 마가린 · 흰우유와 바나나우유?향상도 1보다 작음향상도는 두 이름의 단서일 뿐 — 값이 작다고 대체재라고 단정하지 않는다.
방법 더 깊이

향상도 1을 사이에 둔 두 이름 — 보완재와 대체재

경제학에는 두 상품의 사이를 부르는 이름이 이미 있습니다. 함께 쓸 때 값이 커지는 짝은 보완재 (커피와 설탕, 프린터와 잉크), 하나가 다른 하나를 대신하는 짝은 대체재(버터와 마가린)입니다. 향상도는 이 두 이름과 느슨하게 맞아떨어집니다 — 1보다 크면 보완재 쪽, 작으면 대체재 쪽이지요.

다만 둘 사이에는 큰 틈이 있습니다. 경제학의 두 이름은 값이 오르면 어떻게 되는가로 정의되는데, 향상도는 함께 담겼는가만 봅니다. 그래서 값이 작아도 대체재가 아닐 수 있어요 — 같은 시간대에 팔리지 않아서일 수도, 한쪽이 그냥 드물어서일 수도 있습니다. 반대로 값이 커도 보완재가 아닐 수 있습니다. 매대가 나란히 있어서 함께 담겼을 뿐일 수도 있으니까요.

향상도는 물음을 좁혀 주는 자이지 답을 주는 자가 아닙니다. 1보다 작은 값을 보면 “왜 덜 함께 살까”를 물을 차례이지, “대체재다”라고 적을 차례가 아니에요.

도해: 로그 눈금의 향상도 자 위에 오늘의 네 규칙을 찍었다 — 0.57 · 1.00 · 1.80 · 8.00 은 모두 표 1의 24장에서 나온 값이다.