이처럼 데이터에서 항목들 사이의 숨겨진 연관 관계를 발견하는 것이 연관규칙 분석(Association Rule Analysis)이다.
장바구니 분석(Market Basket Analysis)이라고도 불리며, 추천 시스템·마케팅·의료·유통 등 다양한 분야에서 활발히 사용된다.
1. 연관규칙 분석이란?
연관규칙 분석은 대규모 거래 데이터에서 함께 자주 나타나는 항목들의 조합과 그 관계의 방향성을 규칙으로 표현하는 데이터 마이닝 기법이다.
연관규칙은 다음과 같은 형태로 표현된다.
B: 후행 항목집합 (Consequent) — 결과부
예) {맥주, 안주} → {콜라} : "맥주와 안주를 사면 콜라도 산다"
어떤 데이터에 사용하는가?
연관규칙 분석은 거래(Transaction) 데이터를 다룬다. 각 거래는 여러 항목(Item)의 집합으로 구성된다.
| 거래 ID | 구매 항목 |
|---|---|
| T001 | 맥주, 안주, 콜라 |
| T002 | 맥주, 안주 |
| T003 | 우유, 빵, 버터 |
| T004 | 맥주, 콜라 |
| T005 | 우유, 빵 |
| T006 | 맥주, 안주, 우유 |
| T007 | 빵, 버터, 콜라 |
| T008 | 맥주, 안주, 콜라 |
전체 8건의 거래에서 "맥주와 안주를 함께 사면 콜라도 사는가?"와 같은 패턴을 찾는다.
연관규칙 분석의 활용
- 추천 시스템: "이 상품을 구매한 고객이 함께 구매한 상품"
- 진열 위치 최적화: 함께 자주 구매하는 상품을 가까이 배치
- 묶음 상품 기획: 자주 함께 구매되는 상품을 세트 상품으로 구성
- 의료 진단: 함께 나타나는 증상·질병 패턴 발견
- 웹 클릭 분석: 연이어 방문하는 페이지 패턴 발견
- 보험 사기 탐지: 함께 나타나는 의심 항목 조합 발견
2. 핵심 지표 3가지 — 지지도, 신뢰도, 향상도
연관규칙의 품질을 평가하는 세 가지 핵심 지표가 있다. 위의 편의점 데이터(총 8건)를 예시로 함께 계산해보자.
① 지지도 (Support)
지지도는 전체 거래 중 해당 항목집합이 등장하는 비율이다. "이 조합이 얼마나 자주 나타나는가?"를 측정한다. 규칙의 통계적 중요성을 나타낸다.
높을수록: 이 조합이 자주 등장한다 → 통계적으로 신뢰할 수 있는 규칙
전체 거래: 8건
Support({맥주, 안주} → {콜라}) = 2/8 = 0.25 (25%)
해석: 전체 거래의 25%에서 맥주·안주·콜라가 함께 구매되었다.
맥주가 원래 너무 많이 팔려서 어떤 것과도 같이 등장할 수 있기 때문.
→ 신뢰도와 함께 봐야 한다.
② 신뢰도 (Confidence)
신뢰도는 A를 구매한 거래 중에서 B도 함께 구매한 비율이다. "A를 샀을 때 B도 살 확률이 얼마나 되는가?"를 측정한다. 규칙의 조건부 확률을 나타낸다.
범위: 0 ~ 1 (또는 0% ~ 100%)
높을수록: A가 있을 때 B도 있을 가능성이 높다
맥주 AND 안주 AND 콜라를 포함한 거래: T001, T008 → 2건
Confidence = 2/4 = 0.5 (50%)
해석: 맥주와 안주를 산 사람 중 50%는 콜라도 샀다.
맥주+안주 → 콜라의 신뢰도(50%)가 콜라 단독 구매율(70%)보다 낮다.
→ 맥주+안주는 오히려 콜라 구매를 억제하는 것!
→ 향상도가 이 문제를 해결한다.
③ 향상도 (Lift)
향상도는 A와 B가 독립일 때 기대되는 빈도 대비 실제로 함께 등장하는 정도를 나타낸다. "A가 B의 구매를 얼마나 향상(Lift)시키는가?"를 측정하며, 연관성의 실질적인 강도를 파악하는 가장 중요한 지표다.
Lift > 1: 양의 연관 (A가 B 구매를 촉진)
Lift = 1: 독립 (A와 B는 무관)
Lift < 1: 음의 연관 (A가 B 구매를 억제)
Support({맥주, 안주}) = 4/8 = 0.5
Support({콜라}) = T001+T004+T007+T008 = 4건 → 4/8 = 0.5
Lift = 0.25 / (0.5 × 0.5) = 0.25 / 0.25 = 1.0
해석: 향상도 = 1.0 → 맥주+안주와 콜라는 독립 관계. 이 규칙은 의미 없다.
Support({우유}) = T003+T005+T006 = 3건 → 3/8 = 0.375
Support({빵}) = T003+T005+T007 = 3건 → 3/8 = 0.375
Confidence = 0.25 / 0.375 = 0.667 (67%)
Lift = 0.25 / (0.375 × 0.375) = 0.25 / 0.141 ≈ 1.78
해석: Lift = 1.78 > 1 → 우유를 사면 빵도 살 가능성이 독립일 때보다 78% 더 높다.

3. 추가 지표 — 레버리지, 확신도
레버리지 (Leverage)
향상도와 비슷한 목적이지만 비율이 아닌 차이로 표현한다. A와 B가 독립일 때 기대 빈도와 실제 빈도의 차이다.
Leverage = 0: 독립
Leverage < 0: 음의 연관
확신도 (Conviction)
규칙 A → B의 반례(A는 있지만 B는 없는 경우)가 발생할 확률을 기반으로 한 지표다. 향상도와 달리 방향성(비대칭성)이 있다. A → B와 B → A의 값이 다르다.
Conviction = 1: A와 B는 독립
Conviction < 1: 음의 연관
4. 빈발 항목집합 (Frequent Itemset)
연관규칙을 생성하기 전에 먼저 최소 지지도(min_support) 이상인 항목집합을 찾아야 한다. 이를 빈발 항목집합(Frequent Itemset)이라 한다.
n개의 항목이 있으면 가능한 규칙의 수는 2^n − 2개다.
항목이 1,000개인 대형 마트라면 2^1000개의 조합을 모두 검사하는 것은 현실적으로 불가능.
→ 지지도가 충분히 높은 항목집합만 먼저 골라내면 검사해야 할 후보를 대폭 줄일 수 있다.
단조성 (Apriori 원리)
빈발 항목집합 탐색의 핵심 원리다.
그 부분집합도 반드시 빈발하다"
반대로:
"어떤 항목집합이 비빈발하면,
그것을 포함하는 모든 상위집합도 비빈발하다"
{맥주, 안주, 콜라, 소주}도 자동으로 비빈발.
→ 비빈발 집합의 상위집합 탐색을 통째로 건너뛸 수 있다 (가지치기)
→ 탐색 공간을 대폭 줄여 효율적 탐색 가능
5. 연관규칙 분석 알고리즘
① Apriori 알고리즘
1994년 Agrawal이 제안한 가장 고전적인 알고리즘이다. 단조성 원리(Apriori Property)를 이용해 후보 집합을 단계적으로 생성·정제한다.
맥주: 5건(62.5%) 안주: 4건(50%) 콜라: 4건(50%)
우유: 3건(37.5%) 빵: 3건(37.5%) 버터: 2건(25%)
→ 모두 min_support(25%) 이상 → 모두 빈발 1-항목집합
{맥주,안주}: 4건(50%) ✓ {맥주,콜라}: 3건(37.5%) ✓
{맥주,우유}: 1건(12.5%) ✗ → 제거
{우유,빵}: 2건(25%) ✓ {빵,버터}: 2건(25%) ✓
{맥주,버터}: 0건(0%) ✗ → 제거 ...
→ 지지도 < 25%인 항목집합 제거 (가지치기)
{우유,빵,버터}: 1건(12.5%) ✗ → 제거
...
→ 반복하여 더 이상 빈발 k-항목집합이 없을 때 종료
{콜라} → {맥주, 안주}: Confidence = 2/4 = 50%
{우유} → {빵}: Confidence = 2/3 = 67% ← 신뢰도가 높은 규칙
min_confidence 이상인 규칙만 최종 채택

1. 여러 번의 데이터베이스 스캔: k-항목집합마다 전체 데이터를 다시 읽어야 함
2. 대용량에서 느림: 후보 집합이 여전히 매우 많을 수 있음
3. 메모리 문제: 후보 집합을 메모리에 저장해야 함
→ 이를 개선한 FP-Growth 알고리즘이 등장
② FP-Growth 알고리즘 (Frequent Pattern Growth)
2000년 Han이 제안한 알고리즘으로, Apriori의 단점을 해결한다. 데이터를 FP-Tree라는 압축된 트리 구조에 저장해서 데이터베이스를 단 2번만 스캔하고, 후보 집합 없이 빈발 패턴을 찾는다.
T001: 맥주→안주→콜라 T002: 맥주→안주 T003: 우유→빵→버터 ...
공통 접두사가 있는 거래들이 같은 경로를 공유 → 트리로 압축
Apriori처럼 반복적으로 데이터를 스캔하지 않아 훨씬 빠름.
후보 집합: 생성·저장
장점: 단순하고 이해하기 쉬움
단점: 느리고 메모리 소모
적합: 소규모 데이터
후보 집합: 생성하지 않음
장점: 빠르고 메모리 효율
단점: FP-Tree 구성이 복잡
적합: 대규모 데이터
③ ECLAT 알고리즘
Apriori, FP-Growth와 다른 방식으로 데이터를 표현한다. 각 항목이 등장하는 거래 ID 목록(TID-list)을 유지하고, 두 항목집합의 교집합으로 지지도를 빠르게 계산한다. 메모리에 데이터를 세로 방향으로 저장해서 세로 데이터 형식(Vertical Data Format)이라고도 한다.
6. 파라미터 설정 — 얼마나 엄격하게 필터링할 것인가
연관규칙 분석을 수행할 때 두 가지 임계값을 설정해야 한다.
너무 높으면: 중요하지만 드문 패턴을 놓침
일반적으로 0.01 ~ 0.05 (1~5%) 사용.
데이터 크기와 도메인에 따라 조정.
너무 높으면: 너무 당연한 규칙만 남음
일반적으로 0.5 이상 (50%) 사용.
비즈니스 목적에 따라 다름.
• min_support는 작게 시작해서 규칙이 너무 많으면 높이는 방식으로 조정
• min_confidence는 0.5 이상을 기본값으로, 비즈니스적으로 의미 있는 수준 선택
• 향상도(Lift) > 1인 규칙만 사용하는 것이 핵심 — 신뢰도가 높아도 향상도 < 1이면 쓸모없는 규칙
• 결과 규칙이 너무 많으면: min_lift > 1.2 등 추가 필터 적용
7. 연관규칙 해석 시 주의사항
방향성 — A→B와 B→A는 다르다
연관규칙은 방향이 있다. 신뢰도와 향상도는 방향에 따라 달라진다. 지지도만 같고 신뢰도는 다를 수 있다.
{맥주} → {기저귀}: Confidence = 20% (맥주 산 사람 중 20%만 기저귀 삼)
→ 두 규칙은 전혀 다른 의미. 방향에 따라 마케팅 전략이 달라진다.
전자: 기저귀 코너 옆에 맥주 배치 / 후자: 맥주 코너 옆에 기저귀 배치
상관관계 ≠ 인과관계
"{맥주} → {기저귀}"는 "맥주를 사면 기저귀도 산다"는 연관성이지,
"맥주가 기저귀를 구매하게 만든다"는 인과관계가 아니다.
이 패턴은 "아빠가 주말에 기저귀 심부름을 하면서 맥주도 산다"는 행동 패턴일 뿐이다.
→ 연관규칙은 탐색·가설 도출 도구. 인과성을 확인하려면 추가 분석 필요.
흔한 함정 — 높은 신뢰도가 항상 좋은 것이 아니다
{라면} → {쌀}: Confidence = 85% (높아 보임)
하지만 쌀의 기본 구매율: 90%
Lift = 85% / 90% = 0.94 < 1
→ 라면을 사면 오히려 쌀을 덜 산다! 신뢰도만 봤다면 잘못된 결론.
8. 연관규칙 분석 전체 흐름

📌 핵심 정리
- 연관규칙: A → B 형태. 거래 데이터에서 함께 자주 등장하는 항목 간 관계 발견
- 지지도: P(A∩B). 전체 거래 중 A와 B가 함께 등장하는 비율. 규칙의 중요성
- 신뢰도: P(B|A). A 구매 시 B도 구매할 조건부 확률. 규칙의 정확도
- 향상도: P(B|A)/P(B). 독립 대비 실제 연관 강도. 1보다 커야 유의미한 규칙
- 향상도 = 1: 독립 / >1: 양의 연관 / <1: 음의 연관
- 빈발 항목집합: min_support 이상인 항목 조합. 연관규칙 생성의 기반
- 단조성(Apriori 원리): 비빈발 집합의 상위집합도 비빈발 → 가지치기로 탐색 공간 축소
- Apriori: k번 스캔, 후보 집합 생성. 단순하지만 대용량에 느림
- FP-Growth: 2번 스캔, FP-Tree로 압축. 빠르고 효율적. 대규모에 적합
- 신뢰도 높아도 향상도 <1이면 무의미: 항상 향상도를 함께 확인
- 방향성: A→B ≠ B→A. 신뢰도·향상도가 달라진다
- 연관 ≠ 인과: 규칙은 가설 도출 도구. 인과성은 별도 분석 필요
'수학&통계학' 카테고리의 다른 글
| [수열의 극한] 급수와 등비급수 — 무한급수 수렴 조건부터 순환소수까지 (0) | 2026.05.18 |
|---|---|
| [수열의 극한] 수렴과 발산 완전 정복 — 극한값 계산 유형별 총정리 (0) | 2026.05.18 |
| 군집화 (0) | 2026.05.15 |
| 차원 축소 (2) : 요인 분석(FA), 다차원 척도법(MDS), 자기조직화 지도(SOM) (0) | 2026.05.15 |
| 차원 축소 (1) : 주성분 분석(PCA) (0) | 2026.05.15 |