A→B
연관성분석 실습 · Groceries
PART 03 데이터 분석 · 5장 정형 데이터 마이닝
교재 475–477쪽 | Apriori · 규칙 해석 · 41회 기출
STUDY MAP · 01 / 06

Groceries 연관성분석, 3쪽으로 정복하기

거래내역 → Apriori 규칙 발견 → 지표 읽기 → 마케팅 적용 → 기출문제

p.475–477
9,835
거래건수 (Transactions)
169
원본 품목 (Items)
88
규칙 탐색에 사용된 품목
125
발견된 연관규칙 (Rules)
학습목표

이 예제에서 꼭 알아야 할 4가지

  • 거래별 품목 목록을 inspect()로 확인한다.
  • apriori()의 지지도 0.01, 신뢰도 0.3을 해석한다.
  • support · confidence · lift · count를 구별한다.
  • 향상도 순위와 41회 기출 59번을 정확히 판단한다.
목차 / 교재 연결
01 · p.475데이터 개요, R 코드, 거래내역 확인
02 · p.475Apriori 실행 결과: 품목 88개, 규칙 125개
03 · p.476향상도 상위 20개 결과표와 활용 전략
04 · p.47741회 기출 59번: 옳은 설명 모두 고르기
INPUT
구매 장바구니한 거래에 함께 담긴 상품 정보
ALGORITHM
Apriori일정 기준을 충족하는 IF → THEN 규칙 탐색
OUTPUT
상품 간 연관규칙상품 배치·함께 사기·쿠폰 아이디어 도출
시험 포인트 · Lift > 1이면 우연히 함께 구매하는 기준에 비해 양의 연관성이 있으며, Lift = 3.295는 기준 확률 대비 약 3.30배라는 뜻입니다. 인과관계 증명은 아닙니다.
R PRACTICE · 02 / 06

거래데이터와 R 코드 살펴보기

분석 대상: Groceries · 식료품점 POS 거래 데이터 · 169개 품목 · 9,835건

p.475
실행 가능한 R 코드

arules 패키지의 Apriori 연관규칙

# 1. 패키지와 데이터 불러오기
library(arules)
data("Groceries")

# 2. 앞의 거래 3개 확인
inspect(Groceries[1:3])

# 3. 규칙 생성: 최소지지도 1%, 최소신뢰도 30%
rules <- apriori(Groceries,
  parameter = list(
    support = 0.01,
    confidence = 0.3))

# 4. Lift 내림차순 상위 20개
inspect(sort(rules,
  by = "lift", decreasing = TRUE)[1:20])

원문 인식 오타 l:3, l:20, !:20, rulesJ)y는 각각 1:3, 1:20, by 형식으로 교정했습니다. arules 설치가 필요하면 install.packages("arules")를 먼저 실행하세요.

TRANSACTION INSPECTION

inspect(Groceries[1:3]) 출력

[1]citrus fruit · semi-finished bread · margarine · ready soups
감귤류 · 반제품 빵 · 마가린 · 즉석 수프
[2]tropical fruit · yogurt · coffee
열대과일 · 요거트 · 커피
[3]whole milk
전유(일반 우유)

LHS와 RHS의 역할

LHS · Left-hand Side 조건(선행 품목)
RHS · Right-hand Side 결과(후행 품목)
예: {감귤류, 기타 채소} → {뿌리채소}

트랜잭션(거래)은 품목들의 묶음입니다. 연관규칙은 장바구니에서 반복되는 구매 동시발생 패턴을 찾습니다.

ALGORITHM & METRICS · 03 / 06

Apriori 결과와 3가지 핵심 지표

최소지지도 1%, 최소신뢰도 30%를 만족하는 규칙을 계산합니다.

p.475–476
R CONSOLE SUMMARY
set transactions ... [169 item(s), 9835 transaction(s)] done
sorting and recoding items ... [88 item(s)] done
checking subsets of size 1 2 3 4 done
writing ... [125 rule(s)] done
set of 125 rules
OUTPUT READING

왜 169개에서 88개가 되었을까?

최소지지도 조건에 따라 빈도가 낮은 품목이 제거되거나 제외되면서 규칙 탐색에 88개 품목이 남았습니다. 이 조건을 바탕으로 125개 규칙이 생성되었습니다.

0.01 × 9,835 = 98.35건. 실제 지지도 1% 이상을 충족하려면 정수 기준 99건 이상이어야 합니다. R 실행 로그의 “Absolute minimum support count: 98”은 내부 출력값이므로 구별합니다.

① SUPPORT · 지지도
P(A ∩ B) = A와 B 동시구매 건수 / 전체 거래
1번 규칙: 102 / 9,835 = 0.010371 ≈ 1.04%
전체 거래의 약 1.04%에서 두 조건의 품목과 결과 품목이 모두 등장
② CONFIDENCE · 신뢰도
P(B | A) = A와 B 동시구매 / A 구매
7번 규칙: 0.385214 ≈ 38.52%
전유와 응유를 동시에 구매한 거래 중 38.52%가 요거트도 포함
③ LIFT · 향상도
P(B | A) / P(B) = 신뢰도 / RHS 지지도
3번 규칙: 3.040367배
소고기 구매 거래에서 뿌리채소 구매 비율은 전체 뿌리채소 구매 비율의 약 3.04배
조건값 조절 · 규칙이 너무 적으면 지지도·신뢰도 하한을 낮추고, 너무 많으면 하한을 높여 결과량을 조절할 수 있습니다. 다만 의미 없는 규칙이나 과도한 결과도 함께 검토해야 합니다.
OUTPUT TABLE · 04 / 06

향상도(Lift) 기준 상위 20개 규칙

R 명령: inspect(sort(rules, by="lift", decreasing=TRUE)[1:20])

p.476
01–10위 · 향상도 상위지지도·신뢰도는 소수로 표시
#연관규칙: LHS → RHS지지도신뢰도향상도건수
01감귤류 + 기타 채소→뿌리채소0.010371120.35915493.295045102
02열대과일 + 기타 채소→뿌리채소0.012303000.34277623.144780121
03소고기→뿌리채소0.017386880.33139533.040367171
04감귤류 + 뿌리채소→기타 채소0.010371120.58620693.029608102
05열대과일 + 뿌리채소→기타 채소0.012303000.58454113.020999121
06기타 채소 + 전유→뿌리채소0.023182510.30978262.842082228
07전유 + 응유→요거트0.010066090.38521402.76135699
08뿌리채소 + 빵류→기타 채소0.012201320.50209212.594890120
09뿌리채소 + 요거트→기타 채소0.012913070.50000002.584078127
10열대과일 + 전유→요거트0.015149970.35817312.567516149
11–20위 · 추가 규칙건수 = LHS ∪ RHS 동시발생 거래 수
#연관규칙: LHS → RHS지지도신뢰도향상도건수
11요거트 + 휘핑/사워크림→기타 채소0.010167770.49019612.533410100
12기타 채소 + 휘핑/사워크림→요거트0.010167770.35211272.524073100
13열대과일 + 기타 채소→요거트0.012303000.34277622.457146121
14뿌리채소 + 전유→기타 채소0.023182510.47401252.449770228
15전유 + 휘핑/사워크림→요거트0.010879510.33753942.419607107
16감귤류 + 전유→요거트0.010269450.33666672.413350101
17양파→기타 채소0.014234880.45901642.372268140
18돼지고기 + 전유→기타 채소0.010167770.45871562.370714100
19전유 + 휘핑/사워크림→기타 채소0.014641590.45425872.347679144
20응유→요거트0.017285210.32442752.325615170
1위 규칙 해석 · 감귤류+기타 채소 → 뿌리채소: 지지도 1.037%, 신뢰도 35.915%, 향상도 3.295배, 함께 구매한 거래 102건. Lift의 배수는 구매 확률의 상대적 크기이며 구매 증가의 인과효과를 의미하지 않습니다.
표기: 전유 = whole milk, 응유 = curd, 빵류 = rolls/buns, 휘핑/사워크림 = whipped/sour cream. 표는 제공된 교재 결과값의 소수 자릿수를 유지했습니다. 6번 규칙의 RHS는 뿌리채소입니다.
INTERPRETATION · 05 / 06

결과표를 실제 의사결정으로 연결하기

“어떤 상품을 같이 사는가?”에서 “어떤 조치를 검토할 것인가?”로

p.476
TOP 5 BY LIFT

상위 5개 규칙의 향상도 비교

1. 감귤류+기타채소 → 뿌리채소
3.295
2. 열대과일+기타채소 → 뿌리채소
3.145
3. 소고기 → 뿌리채소
3.040
4. 감귤류+뿌리채소 → 기타채소
3.030
5. 열대과일+뿌리채소 → 기타채소
3.021
고득점 해석 · 4번 규칙의 신뢰도 58.62%는 “감귤류와 뿌리채소를 구매한 거래의 약 58.62%가 기타 채소도 구매”를 의미합니다. 4번이 전체 상위 20개 가운데 신뢰도 최댓값입니다.
ACTION IDEAS

연관규칙을 활용하는 방법

상품 진열동시구매 품목의 동선 및 인접 배치 실험
결합 할인장바구니 패턴을 활용한 묶음쿠폰·추천상품 검토
추천 시스템RHS 품목을 교차판매(Cross-selling) 후보로 제안
검증실험군·대조군 성과와 이익률 검토 후 적용 결정
주의할 점
향상도는 연관성 지표입니다. “함께 구매하는 경향”을 보여줄 뿐 쿠폰 제공이나 진열 변경으로 매출이 반드시 증가함을 입증하지 않습니다. 높은 Lift라도 지지도·매출 규모를 함께 보아야 합니다.
핵심 구분지지도

전체 거래에서 나타난 비율

핵심 구분신뢰도

LHS 거래 중 RHS 포함 비율

핵심 구분향상도

RHS 기본 구매율 대비 몇 배인지

PAST EXAM · 06 / 06

41회 기출 59번 · 옳은 설명 모두 고르기

결과표의 수치를 정확히 읽을 수 있는지 확인해 보세요. 선택 후 해설을 확인할 수 있습니다.

p.477
문제에서 필요한 대표 규칙
[1] 감귤류+기타 채소 → 뿌리채소지지도 0.01037112

신뢰도 0.3591549 · Lift 3.295045

[3] 소고기 → 뿌리채소향상도 3.040367

지지도 0.01738688 · 신뢰도 0.3313953

[4] 감귤류+뿌리채소 → 기타 채소신뢰도 0.5862069

[7] 전유+응유 → 요거트: 0.3852140

다음 진술 중 옳은 것은?
가. {감귤류, 기타 채소} → {뿌리채소} 규칙의 지지도는 0.01037112이며, 전체 거래의 약 1.04%에서 해당 품목 조합이 발생한다.
나. {전유, 응유} → {요거트} 규칙의 신뢰도는 0.385214로, 전유와 응유를 함께 구매한 거래 중 약 38.52%가 요거트도 구매했다는 의미이다.
다. {소고기} → {뿌리채소} 규칙의 향상도는 3.140367로, 뿌리채소 구매 확률이 소고기 구매 거래에서 약 3.14배임을 의미한다.
라. {감귤류, 뿌리채소} → {기타 채소} 규칙은 제시된 규칙 가운데 신뢰도가 가장 높다.
정답을 하나 선택해 보세요.
시험 마무리 · 소수 → 백분율 변환, 분모(전체 거래 vs LHS 거래), 향상도의 숫자 한 자리, 신뢰도 최댓값 비교를 확인하세요.