관리 메뉴

hye-_

연관분석 본문

3. 빅데이터 모델링/분석 기법 적용

연관분석

hyehh 2026. 3. 23. 22:38
728x90
반응형
SMALL

연관분

연관분석은 데이터들에 대한 발생빈도를 기반을 각 데이터 간의 연관관계를 밝히기 위한 방법이다.

  • 의미 →
    데이터가 얼마나 자주 같이 등장하는지를 기준으로 서로 어떤 관계가 있는지 찾는 분석 방법이다. 즉, 단순히 값 자체가 아니라 “같이 나타나는 패턴”을 보는 것이다.
  • 왜 →
    데이터 분석에서 중요한 것은 단일 변수의 값이 아니라 변수 간의 관계인데, 특히 구매 데이터나 행동 데이터에서는 특정 항목들이 함께 등장하는 빈도가 중요한 의미를 가지기 때문에 발생 빈도를 기반으로 관계를 파악하는 것이 현실적인 패턴 발견에 가장 직접적이고 효율적인 접근 방식이기 때문이다. 단순 통계보다 실제 행동 기반 관계를 더 잘 반영한다.
  • 용어뜻 →
  • 발생빈도 (Frequency): 특정 항목이나 조합이 나타난 횟수
  • 연관관계 (Association): 두 개 이상의 항목이 함께 나타나는 관계
  • 연관분석 (Association Analysis): 항목 간 관계를 찾는 분석 방법
  • 수식 →
    지지도 (Support):

  • 예시 →
    마트에서 “맥주 + 치킨”이 자주 같이 구매된다면 → 연관 있음

상품을 구매하거나 일련의 사건의 데이터에서 존재하는 항목 간의 연관규칙을 발견하는 과정으로 복잡한 알고리즘 없이도 결과를 도출할 수 있다.

  • 의미 →
    구매 데이터나 사건 데이터에서 어떤 항목들이 같이 발생하는 규칙을 찾아내는 과정이며, 비교적 단순한 계산으로도 결과를 얻을 수 있다.
  • 왜 →
    연관분석은 선형회귀나 딥러닝처럼 복잡한 수학적 최적화 과정을 필요로 하지 않고, 단순히 빈도 기반 계산(지지도, 신뢰도 등)으로 규칙을 도출하기 때문에 계산 구조 자체가 비교적 단순하며, 데이터만 충분하면 복잡한 모델 없이도 의미 있는 패턴을 추출할 수 있는 실용적인 방법이기 때문이다.
  • 용어뜻 →
  • 연관규칙 (Association Rule): A → B 형태의 규칙
  • 사건 데이터: 시간 순서나 이벤트 기반 데이터
  • 알고리즘: 문제 해결 절차
  • 수식 →
    신뢰도 (Confidence):

  • 예시 →
    “기저귀 → 맥주” 규칙 발견 (기저귀 사면 맥주도 삼)

연관분석은 종속변수가 미존재하는 비지도학습의 한 종류이며, 주로 거래 구매항목에 존재하는 품목들간의 연고나성 규칙을 추론할 때 사용하기 때문에 장바구니분석이라고도 한다.

    • 의미 →
      정답(label)이 없는 상태에서 데이터를 분석하는 비지도학습이며, 특히 상품 구매 데이터에서 같이 구매되는 패턴을 찾기 때문에 장바구니 분석이라고 부른다.
    • 왜 →
      연관분석은 특정 결과값(종속변수)을 예측하는 것이 아니라 데이터 내부에서 자연스럽게 나타나는 패턴을 찾는 것이 목적이므로 지도학습처럼 정답이 필요 없고, 실제로 고객의 구매 행동을 분석할 때 어떤 상품이 함께 구매되는지를 파악하는 것이 핵심이기 때문에 장바구니 단위의 분석으로 활용되는 것이 가장 직관적이고 실무적으로도 활용도가 높기 때문이다.
    • 용어뜻 →
    • 종속변수: 예측 대상 변수
    • 비지도학습 (Unsupervised Learning): 정답 없이 패턴 찾기
    • 장바구니분석 (Market Basket Analysis): 구매 조합 분석
    • 수식 →
      향상도 (Lift):

  • 예시 →
    “라면 → 김치” 같이 구매되는 패턴 분석

연관분석 장점1) 결과 이해도 높음 : 

조건 반응으로 표현되는 연관분석 결과 이해도가 높음.

  • 의미 →
    “A를 하면 B가 발생한다” 형태라서 사람이 이해하기 쉽다.
  • 왜 →
    연관분석 결과는 복잡한 수식이나 확률 분포 형태가 아니라 IF-THEN 규칙 구조로 표현되기 때문에 비전문가도 직관적으로 이해할 수 있으며, 특히 마케팅이나 비즈니스 환경에서는 결과를 설명하고 의사결정에 활용해야 하는데 이러한 규칙 기반 표현이 매우 직관적이고 전달력이 높기 때문에 이해도가 높다고 평가되는 것이다.
  • 용어뜻 →
  • 조건 반응: IF A → THEN B 형태
  • 규칙 기반 모델: 규칙으로 표현되는 모델
  • 수식 →
    A → B (Association Rule)
  • 예시 →
    “콜라 사면 → 피자 산다”

연관분석 장점2) 종속변수가 없어 유용 :

 분석 방향이나 목적이 특별히 없는 경우 유용.

  • 의미 →
    예측할 대상이 없어도 데이터에서 의미를 찾을 수 있다.
  • 왜 →
    대부분의 분석 기법은 종속변수가 있어야 모델을 학습할 수 있지만, 현실에서는 어떤 것을 예측해야 할지 명확하지 않은 경우도 많기 때문에 이러한 상황에서는 데이터 자체에서 숨겨진 패턴을 발견하는 것이 중요한데, 연관분석은 종속변수가 없어도 데이터 간 관계를 탐색할 수 있기 때문에 탐색적 분석 단계에서 매우 유용하게 활용될 수 있다.
  • 용어뜻 →
  • 종속변수 없음: 예측 대상 없음
  • 탐색적 분석 (EDA): 데이터 구조 파악
  • 예시 →
    고객 행동 패턴 탐색

연관분석 장점3) 계산 용이 : 

계산이 간단함(지지도, 신뢰도, 향상도).

  • 의미 →
    복잡한 계산 없이도 분석 가능하다.
  • 왜 →
    연관분석은 미분, 최적화, 경사하강법 같은 복잡한 수학적 계산을 필요로 하지 않고 단순히 빈도 기반 비율 계산으로 이루어지기 때문에 구현이 쉽고 계산 과정이 직관적이며, 특히 대규모 데이터에서도 기본 개념은 동일하게 적용되기 때문에 학습 비용이 낮고 이해와 적용이 빠른 장점이 있다.
  • 용어뜻 →
  • 지지도: 함께 등장 비율
  • 신뢰도: 조건부 확률
  • 향상도: 독립 대비 연관성
  • 예시 →
    마트 데이터로 바로 계산 가능

연관분석 단점1) 연산량 많음 : 

계산하는 연산 데이터양이 많음.

  • 의미 →
    데이터가 많아지면 계산이 많아진다.
  • 왜 →
    연관분석은 모든 가능한 항목 조합을 고려해야 하기 때문에 데이터의 항목 수가 증가할수록 가능한 조합의 수가 기하급수적으로 증가하게 되며, 이로 인해 계산해야 할 경우의 수가 폭발적으로 늘어나게 되어 실제로는 단순한 계산 방식임에도 불구하고 전체 연산량은 매우 커지는 특징을 가지기 때문에 대규모 데이터에서는 성능 문제가 발생할 수 있다.
  • 용어뜻 →
  • 조합 폭발 (Combinatorial Explosion)
  • 연산량 (Computational Cost)
  • 수식 →
    가능한 조합 수 = 2^n
  • 예시 →
    상품 10개 → 조합 1024개

연관분석 단점2) 분석 지표 명확화 필요 : 

너무 상세한 세분화된 품목을 가지고 규칙을 찾으면 의미 없는 분석(적절한 품목 세분화 필요).

  • 의미 →
    너무 세분화하면 쓸모없는 결과가 나온다.
  • 왜 →
    데이터를 지나치게 세분화하면 각 항목의 등장 빈도가 낮아지게 되고, 이로 인해 통계적으로 의미 있는 패턴을 찾기 어려워지며, 또한 지나치게 구체적인 규칙은 일반화가 되지 않아 실제 의사결정에 활용하기 어려운 결과를 만들기 때문에 적절한 수준으로 품목을 그룹화하는 것이 중요하다.
  • 용어뜻 →
  • 세분화 (Granularity)
  • 일반화 (Generalization)
  • 수식 →
    지지도 감소 문제
  • 예시 →
    “콜라 500ml vs 1L” 나누면 의미 약해짐

연관분석 단점3) 충분한 데이터 필요:

 거래량이 적은 품목은 거래수가 적어 규칙 발견 시 제외 필요.

  • 의미 →
    데이터가 적으면 분석이 어렵다.
  • 왜 →
    연관분석은 빈도를 기반으로 하기 때문에 데이터가 충분히 많지 않으면 특정 항목 간의 관계가 우연인지 실제 패턴인지 구분하기 어렵고, 특히 거래량이 적은 항목은 지지도 자체가 낮아 의미 있는 규칙으로 채택되지 못하기 때문에 일정 수준 이상의 데이터가 확보되지 않으면 신뢰할 수 있는 결과를 얻기 어렵다.
  • 용어뜻 →
  • 지지도 임계값 (Min Support)
  • 희귀 항목 (Rare Item)
  • 수식 →

  • 예시 →
    한 번만 팔린 상품 → 분석 제외

연관분석 측정지표 

데이터들에 대한 발생빈도를 기반으로 각 데이터 간의 연관관계를 밝히기 위한 측정지표로는 지지도, 신뢰도, 향상도가 있다.

  • 의미 →
    데이터가 얼마나 자주 함께 나타나는지를 기준으로 관계를 판단하기 위해 사용하는 대표적인 지표가 지지도, 신뢰도, 향상도라는 뜻이다.
  • 왜 →
    연관분석에서는 단순히 같이 등장했다는 사실만으로는 관계의 강도를 판단할 수 없기 때문에, 얼마나 자주 나타나는지(지지도), 조건부로 얼마나 발생하는지(신뢰도), 우연이 아닌 실제 관계인지(향상도)를 각각 다른 기준으로 측정해야 정확한 판단이 가능하기 때문이다. 하나의 지표만으로는 관계의 본질을 설명하기 어렵기 때문에 3가지가 같이 사용된다.
  • 용어뜻 →
  • 지지도 (Support): 함께 등장 비율
  • 신뢰도 (Confidence): 조건부 확률
  • 향상도 (Lift): 독립 대비 연관성
  • 수식 →

  • 예시 →
    “맥주 + 기저귀” 얼마나 같이 사는지 분석

전체 거래 중 X, Y가 동시에 포함된 거래의 비율

  • 의미 →
    전체 데이터에서 두 항목이 같이 등장한 비율을 의미한다.
  • 왜 →
    연관규칙이 의미 있으려면 최소한 실제 데이터에서 일정 비율 이상 등장해야 하는데, 지지도는 해당 규칙이 데이터 전체에서 얼마나 흔한지 판단하는 기준이 되기 때문에 매우 중요한 필터 역할을 하며, 낮은 값은 우연일 가능성이 높기 때문에 제거 기준으로 사용된다.
  • 용어뜻 →
  • 전체 거래: 전체 데이터 개수
  • 동시에 포함: 같은 거래 안에 존재
  • 수식 →

  • 예시 →
    4개 중 2개 거래 → 0.5

품목 X가 구매되었을 때, 품목 Y가 추가로 구매될 확률 (조건부확률)

    • 의미 →
      X를 샀을 때 Y도 같이 살 확률을 의미한다.
    • 왜 →
      단순히 같이 등장하는 것보다 더 중요한 것은 “X가 있을 때 Y가 얼마나 따라오는가”인데, 이는 실제 추천 시스템이나 마케팅 전략에서 핵심이 되는 정보이며, 조건부확률을 통해 특정 행동 이후의 행동을 예측할 수 있기 때문에 실무적으로 매우 중요한 지표이다.
    • 용어뜻 →
    • 조건부확률 (Conditional Probability): 특정 조건에서의 확률
    • X → Y 규칙: 선행 → 결과
    • 수식 →

  • 예시 →
    기저귀 사면 67% 확률로 맥주 구매

품목 X를 구매할 때, 품목 Y도 구매하는지 서로 간의 연관성을 파악하는 비율

  • 의미 →
    X와 Y가 실제로 연관이 있는지 (우연인지 아닌지) 판단하는 지표이다.
  • 왜 →
    신뢰도가 높다고 해도 Y 자체가 많이 팔리는 상품이면 단순히 많이 팔려서 같이 등장한 것일 수도 있기 때문에, 진짜 연관인지 확인하기 위해 “독립일 때와 비교”하는 기준이 필요하며, 이 역할을 하는 것이 향상도이다. 즉, 우연 제거용 지표다.
  • 용어뜻 →
  • 독립: 서로 영향 없음
  • 연관성: 서로 영향 있음
  • 수식 →

  • 예시 →
    1.33 → 실제 연관 있음

향상도 = 1 : 독립에 가까운 관계

  • 의미 →
    두 항목이 서로 영향 없이 독립적으로 발생한다.
  • 왜 →
    향상도가 1이라는 것은 분자(P(X∩Y))와 분모(P(X)P(Y))가 같다는 뜻인데, 이는 두 사건이 독립일 때 성립하는 조건이기 때문에, 실제로 서로 영향을 주지 않는 관계라고 판단할 수 있다.
  • 용어뜻 →
  • 독립 (Independent): 서로 영향 없음
  • 수식 →

  • 예시 →
    물 + 휴지 (관련 없음)

향상도 > 1 : 양의 상관관계(데이터 간 연관성 높음)

  • 의미 →
    두 항목이 같이 나타날 가능성이 더 높다.
  • 왜 →
    분자가 분모보다 크다는 것은 실제 함께 등장하는 확률이 독립일 때보다 더 크다는 의미이며, 이는 두 항목이 서로 영향을 주고 있다는 뜻이므로 양의 상관관계가 있다고 판단한다. 즉, 같이 구매되는 경향이 존재한다.
  • 용어뜻 →
  • 양의 상관관계: 함께 증가
  • 수식 →

  • 예시 →
    기저귀 + 맥주

향상도 < 1 : 음의 상관관계(데이터 간 연관성 낮음)

  • 의미 →
    두 항목이 같이 등장할 가능성이 낮다.
  • 왜 →
    독립일 때보다 함께 등장하는 확률이 더 작다는 것은 서로 함께 나타나는 것을 방해하는 관계라고 볼 수 있으며, 이는 실제로 두 항목이 서로 대체되거나 같이 구매되지 않는 패턴을 의미하기 때문에 음의 상관관계라고 해석한다.
  • 용어뜻 →
  • 음의 상관관계: 반대로 움직임
  • 수식 →

  • 예시 →
    다이어트식품 + 초콜릿

샘플이 적을 경우 지지도를 통하여 연관관계에 대한 통계적 유의성을 증명하기 어려움

  • 의미 →
    데이터가 적으면 결과를 믿기 어렵다.
  • 왜 →
    지지도는 빈도를 기반으로 하는데 데이터가 적으면 우연히 같이 등장한 경우도 높은 값처럼 보일 수 있기 때문에 통계적으로 의미 있는 패턴인지 판단하기 어렵고, 이는 과적합이나 잘못된 규칙 생성으로 이어질 수 있기 때문이다.
  • 통계적 유의성: 우연이 아닌 의미 있는 결과
    표본 수 부족 → 신뢰도 낮음
  • 예시 →
    2번 중 2번 같이 구매 → 신뢰 어려움

지지도는 전체 거래중에서 X와 Y가 동시에 판매되는 사건을 의미하기 때문에 빈발항목 집합으로 구분 가능하다.

  • 의미 →
    자주 등장하는 항목 묶음을 찾을 수 있다.
  • 왜 →
    지지도는 빈도를 기준으로 하기 때문에 일정 기준 이상 자주 등장하는 항목 조합을 선별할 수 있고, 이를 통해 의미 있는 패턴만 남기고 나머지는 제거하여 계산량을 줄이고 분석 효율을 높일 수 있기 때문이다.
  • 용어뜻 →
  • 빈발항목집합 (Frequent Itemset): 자주 등장하는 항목
  • 수식 →

  • 예시 →
    맥주+기저귀 자주 등장 → 선택

이때는 모든 경우의 수를 분석하는 것은 현실적 어려움이 있으므로 최소지지도를 설정해 이 값을 기준으로 규칙을 도출한다.

  • 의미 →
    모든 조합을 계산하지 않고 기준을 둔다.
  • 왜 →
    가능한 모든 조합은 2^n으로 증가하기 때문에 데이터가 많아질수록 계산량이 폭발적으로 증가하여 현실적으로 처리하기 어려워지므로, 최소지지도라는 기준을 설정하여 의미 없는 조합을 미리 제거함으로써 계산 효율을 높이는 것이 필요하다.
  • 용어뜻 →
  • 최소지지도 (Min Support): 최소 기준
  • 수식 →

  • 예시 →
    지지도 0.1 이하 → 제거

연관분석은 가능한 모든 경우의 수를 탐색할 경우 계산에 소요되는 시간과 노력이 기하급수적으로 증가하게 된다.

  • 의미 →
    조합이 많아질수록 계산이 폭발한다.
  • 왜 →
    항목 수가 n일 때 가능한 조합은 2^n이 되기 때문에 데이터가 조금만 증가해도 계산량이 급격히 증가하며, 이는 시간과 자원의 낭비로 이어지기 때문에 효율적인 탐색 방법이 필요하다.
  • 용어뜻 →
  • 기하급수적 증가: 매우 빠르게 증가
  • 수식 →
    조합 수 = 2^n
  • 예시 →
    상품 20개 → 1,000,000개 이상 조합

이에 따라 빈발항목을 식별하고 이를 통해 계산의 복잡도를 낮추는 알고리즘으로 선험적 규칙(Apriori Principle)을 사용한다.

  • 의미 →
    자주 나오는 것만 골라서 계산한다.
  • 왜 →
    Apriori 원리는 “부분집합이 빈발하지 않으면 전체집합도 빈발하지 않다”는 성질을 이용하여 불필요한 조합을 미리 제거함으로써 계산량을 크게 줄이는 방법이며, 이를 통해 연관분석의 현실적인 계산 문제를 해결할 수 있기 때문이다.
  • 용어뜻 →
  • Apriori: 사전 지식 기반 규칙
  • 부분집합: 일부 항목
  • 예시 →
    {맥주, 기저귀} 안 팔림 → {맥주, 기저귀, 빵}도 제거

 

연관분석 사례

전체 거래 4건 중 기저귀(X)와 맥주(Y)를 동시에 구입한 거래는 2건
  • 의미 →
    전체 데이터 4개 중에서 기저귀와 맥주가 같이 등장한 거래가 2개라는 뜻이다.
  • 왜 →
    연관분석에서 가장 먼저 해야 하는 것은 두 항목이 실제로 얼마나 자주 함께 등장하는지를 확인하는 것이며, 이 값이 바로 지지도를 계산하기 위한 핵심 데이터가 되기 때문에 전체 거래 대비 동시 등장 횟수를 정확히 파악하는 것이 필수적인 초기 단계이다. 이 값이 작으면 애초에 의미 없는 규칙이 될 가능성이 높기 때문에 시작부터 중요하다.
  • 용어뜻 →
  • X: 기저귀
  • Y: 맥주
  • 거래(Transaction): 하나의 구매 기록
  • 수식 →

  • 예시 →
    1번, 2번 거래에서 같이 등장

지지도

P(X ∩ Y) = 2/4 = 0.5

  • 의미 →
    전체 거래 중 절반(50%)에서 기저귀와 맥주가 같이 등장했다는 뜻이다.
  • 왜 →
    지지도는 전체 데이터 대비 해당 규칙이 얼마나 자주 나타나는지를 보여주는 지표이기 때문에, 이 값이 높을수록 해당 규칙이 단순한 우연이 아니라 실제 패턴일 가능성이 높아지며, 최소지지도 기준을 만족하는지를 판단하는 기준이 된다. 즉, 이 값이 낮으면 이후 계산 자체를 진행할 필요가 없어지는 필터 역할을 한다.
  • 용어뜻 →
  • 지지도 (Support): 전체 대비 등장 비율
  • 수식 →

  • 예시 →
    4번 중 2번 같이 구매

신뢰도 

기저귀(X)가 구매되었을 때, 맥주(Y)가 추가로 구매될 확률

  • 의미 →
    기저귀를 산 사람 중에서 맥주도 같이 산 비율을 의미한다.
  • 왜 →
    단순히 같이 등장하는 것보다 더 중요한 것은 특정 조건(기저귀 구매)이 발생했을 때 결과(맥주 구매)가 얼마나 따라오는지이며, 이는 실제 추천 시스템이나 마케팅 전략에서 핵심적인 정보가 되기 때문에 조건부확률을 통해 행동의 흐름을 파악하는 것이 중요하다. 특히 “무엇을 사면 무엇을 추천할 것인가”라는 문제에서 핵심 지표가 된다.
  • 용어뜻 →
  • 조건부확률: 특정 조건 하에서 발생 확률
  • 수식 →

  • 예시 →
    기저귀 산 사람 중 일부가 맥주도 삼

신뢰도 P(X ∩ Y) / P(X) = 0.5 / 0.75 = 0.67

  • 의미 →
    기저귀를 산 사람 중 약 67%가 맥주도 함께 샀다는 뜻이다.
  • 왜 →
    P(X)=0.75라는 것은 기저귀가 4개 중 3개 거래에서 등장했다는 의미이고, 그 중 2개에서 맥주가 같이 등장했기 때문에 조건부 확률이 0.67이 되는 것이며, 이는 기저귀 구매가 맥주 구매로 이어질 가능성이 꽤 높은 패턴이라는 것을 의미한다. 이 값이 높을수록 추천 규칙으로 사용할 가치가 높아진다.
  • 용어뜻 →
  • P(X): 기저귀 등장 확률
  • 수식 →

  • 예시 →
    3명 중 2명이 맥주도 구매

향상도

기저귀(X)를 구매할 때, 맥주(Y)도 구매하는지 서로 간의 연관성을 파악하는 비율

  • 의미 →
    두 항목이 진짜 연관이 있는지 확인하는 지표이다.
  • 왜 →
    신뢰도가 높더라도 맥주 자체가 원래 많이 팔리는 상품이라면 우연히 같이 등장했을 가능성이 있기 때문에, 실제로 독립일 때보다 얼마나 더 같이 등장하는지를 비교해야 하며, 이 비교를 통해 진짜 연관관계인지 아닌지를 판단할 수 있다. 즉, 신뢰도의 한계를 보완하는 역할을 한다.
  • 용어뜻 →
  • 향상도 (Lift): 독립 대비 증가 정도
  • 수식 →

  • 예시 →
    우연 vs 실제 관계 구분

향상도 

P(X ∩ Y) / (P(X) × P(Y)) = 0.5 / (0.75 × 0.5) = 1.33

  • 의미 →
    독립일 때보다 약 1.33배 더 같이 등장한다는 뜻이다.
  • 왜 →
    P(Y)=0.5라는 것은 맥주 자체가 절반의 거래에서 등장하는 상품인데, 단순히 많이 팔려서 같이 등장한 것이 아니라 기저귀와 함께 등장할 확률이 독립적인 경우보다 더 높기 때문에 실제 연관성이 존재한다고 판단할 수 있으며, 이 값이 1보다 크기 때문에 양의 상관관계로 해석된다.
  • 용어뜻 →
  • 독립확률: 서로 영향 없을 때 확률
  • 수식 →
    Lift = 1.33
  • 예시 →
    기저귀 → 맥주 추천 가능

 

향상도 1.33은 1보다 크므로 기저귀(X)와 맥주(Y)는 양의 상관관계를 가짐 (연관성 높음)

  • 의미 →
    두 상품은 함께 구매될 가능성이 높다.
  • 왜 →
    향상도가 1보다 크다는 것은 독립일 때보다 함께 등장할 확률이 더 높다는 의미이며, 이는 단순한 우연이 아니라 실제 소비 패턴에서 두 상품이 서로 영향을 주고 있다는 것을 의미하기 때문에 마케팅이나 추천 시스템에서 활용 가능한 강한 연관 규칙으로 판단된다.
  • 용어뜻 →
  • 양의 상관관계: 함께 증가
  • 수식 →
    Lift > 1
  • 예시 →
    마트에서 같이 진열

연관규칙 활용 예시

 

교차판매

한 제품을 구입한 고객이 다른 제품을 추가로 살 수 있도록 유도하는 전략
  • 의미 →
    연관된 상품을 같이 추천하는 전략이다.
  • 왜 →
    고객은 이미 특정 상품을 구매할 의사가 있는 상태이기 때문에, 이와 연관된 상품을 함께 제시하면 추가 구매 확률이 높아지며, 이는 매출 증가로 직접 연결되기 때문에 연관분석 결과를 가장 대표적으로 활용하는 분야가 교차판매이다.
  • 수식 →
    X → Y 규칙 활용
  • 예시 →
    기저귀 사면 맥주 추천

상품진열

고객의 구매패턴을 분석하여 상품진열에 활용함
  • 의미 →
    같이 팔리는 상품을 가까이 배치한다.
  • 왜 →
    고객이 매장에서 이동하는 동선과 구매 행동을 고려할 때, 연관성이 높은 상품을 가까이 배치하면 구매 편의성이 증가하고 충동구매를 유도할 수 있기 때문에 실제 유통업에서 매우 중요한 전략으로 활용된다.
  • 예시 →
    맥주 옆에 기저귀

부정탐지

신용카드의 수많은 매출 데이터를 표본으로 도난 카드의 사용 유형 패턴을 발견하고 이를 활용할 수 있음
  • 의미 →
    이상 패턴을 찾아 사기를 탐지한다.
  • 왜 →
    정상적인 소비 패턴과 다른 비정상적인 패턴은 특정 항목 조합이나 구매 흐름에서 나타나기 때문에, 연관분석을 통해 일반적인 패턴과 다른 경우를 탐지하면 사기 가능성을 빠르게 판단할 수 있으며, 이는 금융 분야에서 매우 중요한 활용 사례이다.
  • 용어뜻 →
  • 부정탐지 (Fraud Detection): 이상 거래 탐지
  • 수식 →
    정상 패턴 vs 이상 패턴 비교
  • 예시 →
    해외 + 고가결제 → 의심

상품구성

상품의 배치 문제, 패키지 상품의 구성, 카탈로그 구성에 활용하는 전략
  • 의미 →
    상품 묶음이나 패키지를 구성한다.
  • 왜 →
    연관성이 높은 상품을 묶어서 판매하면 고객 입장에서 편의성이 증가하고, 기업 입장에서는 평균 구매 금액이 증가하는 효과가 있기 때문에 패키지 구성이나 번들 상품 전략에 연관분석 결과가 직접적으로 활용된다.
  • 용어뜻 →
  • 상품구성 (Catalog Design): 상품 묶기
  • 수식 →
    X + Y → 패키지
  • 예시 →
    라면 + 김치 세트

선험적 규칙 

선험적 규칙은 전체 항목에서 최소 N번의 트랜잭션(사건, 거래)이 일어난 항목 집합들을 발견하는 알고리즘이다(적절한 품목을 세분화하는 과정).

  • 의미 →
    전체 데이터에서 일정 횟수 이상 등장하는 항목들의 조합을 찾아내는 알고리즘이며, 이를 통해 의미 있는 패턴을 발견하는 방법이다.
  • 왜 →
    연관분석에서는 모든 항목 조합을 다 분석하면 계산량이 폭발적으로 증가하기 때문에, 실제로 의미 있는 패턴만 남기기 위해 일정 기준 이상 등장한 항목 집합만을 대상으로 분석을 수행해야 하며, 이러한 기준을 적용하여 불필요한 계산을 줄이고 효율적으로 중요한 패턴을 찾기 위해 선험적 규칙 알고리즘을 사용하는 것이 필수적이다.
  • 용어뜻 →
  • 선험적 규칙(Apriori): 사전 지식 기반으로 불필요한 항목을 제거하는 규칙
  • 트랜잭션(Transaction): 하나의 거래 또는 사건을 의미하는 데이터 단위
  • 수식 →

  • 예시 →
    맥주+기저귀가 100번 중 20번 이상 등장 → 선택

만약 k개의 품목이 존재한다고 했을 때 조합이 가능한 품목 집합은 2^k개가 존재한다.

  • 의미 →
    상품이 k개 있으면 가능한 모든 조합의 수는 2의 k제곱만큼 존재한다.
  • 왜 →
    각 항목은 포함되거나 포함되지 않는 두 가지 선택지를 가지기 때문에 모든 가능한 조합을 고려하면 경우의 수가 2^k로 증가하게 되며, 이는 데이터가 조금만 많아져도 계산해야 할 경우의 수가 기하급수적으로 증가하게 되어 현실적으로 처리하기 어려운 수준이 되기 때문에 이러한 조합 폭발 문제를 해결하는 것이 중요하다.
  • 용어뜻 →
  • 조합(Combination): 여러 항목을 선택하여 만드는 가능한 모든 경우
  • 부분집합(Subsets): 전체 집합에서 일부를 선택한 집합
  • 수식 →
    가능한 집합 수 = 2^k
  • 예시 →
    상품 3개 → 8개 조합

k가 아주 크다면 이 모든 집합 중에 지지도가 높은 집합을 찾아 연관성을 분석하는 것은 현실적으로 불가능할 것이다.

  • 의미 →
    상품이 많아지면 모든 조합을 분석하는 것은 현실적으로 어렵다.
  • 왜 →
    k가 증가할수록 조합 수는 기하급수적으로 증가하기 때문에 모든 조합에 대해 지지도를 계산하고 분석하는 것은 시간과 자원의 측면에서 매우 비효율적이며, 특히 대규모 데이터에서는 계산 시간이 과도하게 증가하여 실제로는 분석 자체가 불가능해질 수 있기 때문에 효율적인 필터링 방법이 필요하다.
  • 용어뜻 →
  • 지지도(Support): 특정 항목 집합이 등장하는 비율
  • 연관성(Association): 항목 간 함께 등장하는 관계
  • 수식 →
    시간복잡도 ∝ 2^k
  • 예시 →
    상품 100개 → 계산 불가능 수준

따라서 여러 품목 중 최소지지도보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾기 위한 알고리즘이 선험적 규칙이다.

  • 의미 →
    최소 기준 이상 등장하는 항목들만 분석 대상으로 선택한다.
  • 왜 →
    모든 조합을 계산하는 것은 비효율적이기 때문에, 의미 없는 낮은 빈도의 항목 집합을 제거하고 일정 기준 이상 등장하는 집합만 남기면 계산량을 크게 줄일 수 있으며, 이를 통해 실제로 의미 있는 패턴만을 효율적으로 탐색할 수 있기 때문에 최소지지도를 기준으로 필터링하는 것이 중요하다.
  • 용어뜻 →
  • 최소지지도(Min Support): 분석 대상이 되는 최소 등장 기준값
  • 필터링(Filtering): 불필요한 데이터를 제거하는 과정
  • 수식 →

  • 예시 →
    지지도 5% 이하 → 제거

즉 비 빈발항목 집합(전체)에서 빈발항목 집합을 도출하게 된다.

  • 의미 →
    전체 데이터 중에서 자주 등장하는 항목 집합만 남긴다.
  • 왜 →
    전체 항목 집합 중 대부분은 낮은 빈도로 등장하기 때문에 의미 없는 조합이 많으며, 이러한 비 빈발 항목을 제거하고 빈발 항목만 남기면 계산 효율이 높아지고 분석 결과의 신뢰성도 증가하기 때문에 빈발항목 집합을 추출하는 것이 핵심 단계이다.
  • 용어뜻 →
  • 빈발항목집합(Frequent Itemset): 최소지지도 이상 등장하는 항목 집합
  • 비빈발항목집합: 기준 이하로 등장하여 제거되는 항목 집합
  • 수식 →

  • 예시 →
    맥주+기저귀 → 빈발 / 희귀상품 → 제거

알고리즘 과정


선험적 규칙 알고리즘 도출 과정 1) 단일 항목 집합 생성 :

k개의 항목을 가지고 단일 항목 집합 생성(1-item set).

  • 의미 →
    각 상품 하나씩만 포함된 집합을 만든다.
  • 왜 →
    모든 연관규칙 탐색은 가장 작은 단위인 단일 항목 집합부터 시작해야 하며, 이후 단계에서 더 큰 집합을 만들기 위한 기반이 되기 때문에 초기 단계에서 모든 개별 항목의 등장 빈도를 계산하는 것이 필수적이다.
  • 용어뜻 →
  • 1-item set: 하나의 항목으로 구성된 집합
  • 초기집합: 분석 시작 단계의 데이터
  • 수식 →
    L1 = {A, B, C...}
  • 예시 →
    {맥주}, {기저귀}, {빵}

선험적 규칙 알고리즘 도출 과정 2) 단일 빈발항목 집합 생성 : 

최소지지도를 만족하지 못하는 항목과 그 항목의 부분 집합은 가지치기하여 단일 빈발항목 집합 생성(1-Frequent item set).

  • 의미 →
    자주 등장하지 않는 항목을 제거한다.
  • 왜 →
    최소지지도를 만족하지 않는 항목은 이후 더 큰 집합에서도 절대 빈발할 수 없기 때문에 미리 제거하는 것이 계산 효율을 높이는 핵심이며, 이를 통해 불필요한 조합 생성을 방지하고 알고리즘의 성능을 크게 향상시킬 수 있다.
  • 용어뜻 →
  • 가지치기(Pruning): 조건에 맞지 않는 데이터를 제거하는 과정
  • 빈발항목집합: 기준 이상 등장하는 항목
  • 수식 →
    Support(X) < MinSupport → 제거
  • 예시 →
    커피 거의 안 팔림 → 제거

선험적 규칙 알고리즘 도출 과정 3) 2개 항목 집합 생성: 

2에서 최소지지도가 만족한 단일 항목 집단에 대해 조인을 이용하여 2개 항목 집단 생성(2-item set).

  • 의미 →
    남은 항목들을 조합해서 2개짜리 집합을 만든다.
  • 왜 →
    빈발한 단일 항목들만을 대상으로 조합을 생성하면 불필요한 계산을 줄일 수 있으며, 이 과정을 통해 점진적으로 더 큰 항목 집합을 생성하면서 의미 있는 패턴만 확장해 나가는 것이 Apriori 알고리즘의 핵심 구조이기 때문이다.
  • 용어뜻 →
  • 조인(Join): 두 항목을 결합하여 새로운 집합 생성
  • 2-item set: 두 개 항목 집합
  • 수식 →
    C2 = L1 ⨝ L1
  • 예시 →
    {맥주, 기저귀}, {맥주, 빵}

선험적 규칙 알고리즘 도출 과정 4) 2개 빈발항목 집합 생성 : 

최소지지도를 만족하지 못하는 항목과 그 항목의 부분 집합은 가지치기하여 2개 빈발항목 집합 생성(2-Frequent item set).

  • 의미 →
    2개 조합 중에서도 기준 미달은 제거한다.
  • 왜 →
    모든 2개 조합이 의미 있는 것은 아니기 때문에, 다시 최소지지도 기준을 적용하여 의미 없는 조합을 제거해야 하며, 이 과정을 반복적으로 수행함으로써 점점 더 중요한 패턴만 남게 되고 계산 효율이 유지된다.
  • 용어뜻 →
  • 2-Frequent item set: 두 항목 중 기준 이상 등장한 집합
  • 필터링: 불필요 제거
  • 수식 →
    Support(X,Y) ≥ MinSupport
  • 예시 →
    맥주+기저귀 유지 / 맥주+커피 제거

선험적 규칙 알고리즘 도출 과정 5) 위에 있는 3번, 4번 단계 반복 :

 항목 집단을 하나씩 추가하면서 조인과 제거를 이용해 k개의 빈발항목 집합이 생성될 때까지 3번 단계 4번 단계 반복.

  • 의미 →
    이 과정을 계속 반복해서 더 큰 집합을 만든다.
  • 왜 →
    Apriori 알고리즘은 작은 집합에서 시작하여 점점 큰 집합으로 확장하는 방식으로 동작하며, 각 단계에서 가지치기를 통해 불필요한 조합을 제거함으로써 계산량을 관리하면서도 의미 있는 패턴을 탐색할 수 있기 때문에 이러한 반복 구조가 필수적이다.
  • 용어뜻 →
  • 반복(Iteration): 같은 과정을 계속 수행
  • 확장(Expansion): 집합 크기 증가
  • 수식 →
    Lk → C(k+1) → L(k+1)
  • 예시 →
    {맥주, 기저귀} → {맥주, 기저귀, 빵}

 

 

  • Apriori = “미리 거르는 알고리즘”
  • FP-Growth = “다 만들고 찾는 알고리즘”

 


빈발패턴성장 알고리즘 

빈발패턴성장 알고리즘(FP-Growth)은 분석해야 할 데이터가 증가하면서, 선험적 규칙 알고리즘의 연산 속도를 개선한, 트리 구조 기반의 연관규칙 알고리즘이다.

  • 의미 →
    데이터가 많아질수록 느려지는 Apriori 알고리즘을 개선하기 위해 만들어진 트리 기반 연관분석 알고리즘이다.
  • 왜 →
    Apriori 알고리즘은 후보 항목 집합을 반복적으로 생성하고 데이터베이스를 여러 번 스캔해야 하기 때문에 데이터가 커질수록 계산량이 급격히 증가하는 문제가 발생하며, 이를 해결하기 위해 데이터를 압축하여 트리 구조로 표현하고 불필요한 후보 생성 과정을 제거함으로써 연산 속도를 획기적으로 개선할 필요가 있었기 때문에 FP-Growth 알고리즘이 등장하게 된 것이다.
  • 용어뜻 →
  • FP-Growth: 트리 기반으로 빈발 패턴을 찾는 알고리즘 방식
  • 트리 구조(Tree Structure): 부모-자식 관계로 데이터를 저장하는 계층 구조
  • 수식 →
    Apriori: ( O(2^k) )
    FP-Growth: 후보 생성 없음 → 효율 개선
  • 예시 →
    대형 마트 데이터 분석에서 빠르게 패턴 탐색

빈발패턴성장 알고리즘 도출 과정 1) 최소지지도 기반 선택 : 

모든 거래를 확인해 각 아이템마다의 서포트를 계산하고 최소지지도 이상의 아이템만 선택.

  • 의미 →
    모든 데이터에서 각 항목의 등장 빈도를 계산하고 기준 이상만 남긴다.
  • 왜 →
    불필요한 항목을 제거하지 않으면 이후 트리 생성 과정에서 메모리 사용량이 증가하고 계산 효율이 떨어지기 때문에, 초기 단계에서 최소지지도 기준을 적용하여 의미 없는 항목을 제거하고 분석 대상 데이터를 줄이는 것이 전체 알고리즘 성능을 높이는 데 매우 중요한 역할을 한다.
  • 용어뜻 →
  • 서포트(Support): 특정 항목이 전체 거래에서 등장하는 비율
  • 최소지지도: 분석에 포함될 최소 등장 기준값
  • 수식 →
    Support(X) ≥ MinSupport
  • 예시 →
    거래 100개 중 5번 미만 등장 → 제거

빈발패턴성장 알고리즘 도출 과정 2) 빈도 수 기반 정렬 :

모든 거래에서 빈도가 높은 아이템 순서대로 순서를 정렬(여기서부터 달라짐).

  • 의미 →
    각 거래에서 등장하는 항목들을 빈도 높은 순으로 정렬한다.
  • 왜 →
    FP-Growth는 트리를 생성할 때 공통 경로를 최대한 공유하여 데이터를 압축하는 것이 핵심인데, 빈도가 높은 항목을 앞쪽에 배치하면 여러 거래에서 동일한 경로가 형성될 가능성이 높아져 트리 구조가 더 compact해지고 메모리 효율과 탐색 효율이 크게 향상되기 때문에 정렬 과정이 매우 중요하다.
  • 용어뜻 →
  • 빈도 정렬: 등장 횟수 기준으로 순서를 재배치하는 과정
  • 데이터 압축: 중복 구조를 줄여 효율을 높이는 방법
  • 수식 →
    정렬: ( freq(X) ≥ freq(Y) )
  • 예시 →
    {맥주, 빵, 기저귀} → {기저귀, 맥주, 빵}

빈발패턴성장 알고리즘 도출 과정 3) 트리 생성 : 

부모노드를 중심으로 거래를 자식노드로 추가해주면서 트리플 생성.

  • 의미 →
    정렬된 데이터를 기반으로 트리 구조를 만든다.
  • 왜 →
    트리 구조를 사용하면 동일한 패턴을 공유하는 경로를 하나로 묶어 저장할 수 있어 데이터 중복을 줄이고 탐색 속도를 높일 수 있으며, 이는 기존 Apriori 방식의 반복적인 데이터 스캔 문제를 해결하고 효율적으로 패턴을 탐색하기 위한 핵심 구조이기 때문에 트리 생성 과정이 중요하다.
  • 용어뜻 →
  • 부모노드: 상위에 위치한 기준 노드
  • 자식노드: 부모로부터 확장된 하위 노드
  • 수식 →
    Tree 구조: Root → Child → Leaf
  • 예시 →
    Root → 기저귀 → 맥주 → 빵

빈발패턴성장 알고리즘 도출 과정 4) 트리 시작 및 확장 : 

새로운 아이템이 나올 경우에는 부모노드부터 시작하고, 그렇지 않으면 기존의 노드에서 확장.

  • 의미 →
    새로운 경로는 새로 만들고, 기존 패턴이면 이어 붙인다.
  • 왜 →
    이미 존재하는 경로를 재사용하면 데이터 중복을 줄일 수 있고 트리의 크기를 최소화할 수 있으며, 반대로 새로운 패턴은 별도의 경로로 생성하여 구조를 유지해야 하므로, 이러한 방식으로 트리를 확장하면 메모리 사용을 줄이면서도 데이터의 모든 패턴을 효율적으로 표현할 수 있다.
  • 용어뜻 →
  • 경로(Path): 트리에서 하나의 흐름
  • 확장(Extension): 기존 구조를 이어서 추가하는 과정
  • 수식 →
    기존 경로 존재 → count 증가
    없음 → 새 노드 생성
  • 예시 →
    같은 구매패턴 → count +1

빈발패턴성장 알고리즘 도출 과정 5) 빈발품목 집합 도출 : 

위의 과정을 모든 거래에 대해 반복하여 FP Tree를 만들고 최소지지도 이상의 패턴만을 추출.

  • 의미 →
    트리를 완성한 후 자주 등장하는 패턴을 추출한다.
  • 왜 →
    트리는 단순히 데이터를 저장하는 구조일 뿐이며 실제 목적은 빈발 패턴을 찾는 것이기 때문에, 트리에서 각 경로와 빈도를 기반으로 최소지지도 이상인 패턴을 추출해야 의미 있는 연관 규칙을 도출할 수 있으며, 이 과정을 통해 최종 결과가 만들어진다.
  • 용어뜻 →
  • FP Tree: 빈발 패턴을 저장하는 트리 구조
  • 패턴 추출: 의미 있는 조합을 찾는 과정
  • 수식 →
    Pattern ≥ MinSupport
  • 예시 →
    {기저귀, 맥주} 추출

빈발패턴성장 알고리즘은 트리 구조이기 때문에 선험적 규칙보다 훨씬 빠르며, DB에서 스캔하는 횟수도 줄어든다.

  • 의미 →
    Apriori보다 훨씬 빠르고 효율적이다.
  • 왜 →
    Apriori는 데이터베이스를 여러 번 반복해서 스캔해야 하지만 FP-Growth는 트리를 한 번 구성하면 추가적인 반복 스캔 없이 패턴을 추출할 수 있기 때문에 I/O 비용이 줄어들고 전체 실행 시간이 단축되며, 특히 대규모 데이터에서는 이 차이가 매우 크게 나타난다.
  • 용어뜻 →
  • DB 스캔: 데이터 전체를 한 번 읽는 과정
  • 성능 향상: 처리 속도가 개선된 상태
  • 수식 →
    Apriori: n회 스캔
    FP-Growth: 2회 스캔
  • 예시 →
    빅데이터 분석에서 필수 사용

빈발패턴성장 알고리즘은 첫 번째 스캔으로 단일 항목 집단을 만들고, 두 번째 스캔으로 트리 구조를 완성한다.

  • 의미 →
    데이터를 딱 2번만 읽는다.
  • 왜 →
    첫 번째 스캔에서는 각 항목의 빈도를 계산하고 두 번째 스캔에서는 트리를 구성함으로써 이후에는 추가적인 데이터 접근 없이 트리 내부에서 모든 패턴을 추출할 수 있기 때문에 데이터 접근 비용을 최소화할 수 있으며 이는 대용량 데이터 처리에서 매우 중요한 장점이다.
  • 용어뜻 →
  • 스캔(Scan): 데이터 전체를 한 번 읽는 과정
  • 단일항목집합: 하나의 항목만 포함된 집합
  • 수식 →
    Scan count = 2
  • 예시 →
    100GB 데이터 → 2번만 읽음

후보 항목 집합을 생성할 필요없이, 트리만 구성하면 되는 장점이 있다.

  • 의미 →
    Apriori처럼 조합을 계속 만들 필요가 없다.
  • 왜 →
    Apriori는 후보 집합을 생성하고 검증하는 과정을 반복하기 때문에 비효율적이지만, FP-Growth는 트리 구조에 데이터를 압축 저장하여 후보 생성 없이 직접 패턴을 추출할 수 있기 때문에 계산 과정이 단순해지고 성능이 향상된다.
  • 용어뜻 →
  • 후보집합(Candidate Set): 검사 대상이 되는 항목 조합
  • 직접 추출: 중간 과정 없이 바로 결과 도출
  • 수식 →
    Candidate generation = 없음
  • 예시 →
    조합 생성 없이 바로 패턴 찾기

반면에 데이터셋에서 메모리를 효율적으로 사용하지 못한다는 것과 선험적 규칙에 비해 설계가 어렵고, 지지도의 계산은 무조건 빈발패턴트리가 만들어져야 가능하다는 단점이 존재한다.

  • 의미 →
    빠르지만 구현이 어렵고 메모리를 많이 쓴다.
  • 왜 →
    트리 구조는 데이터를 압축하는 장점이 있지만 전체 데이터를 메모리에 유지해야 하기 때문에 메모리 사용량이 증가할 수 있으며, 또한 트리 생성과 탐색 과정이 복잡하여 구현 난이도가 높고, 트리를 먼저 완성해야만 패턴을 계산할 수 있기 때문에 초기 구축 비용이 존재하는 단점이 있다.
  • 용어뜻 →
  • 메모리 사용: 데이터를 저장하는 공간 자원
  • 설계 난이도: 알고리즘 구현의 복잡성
  • 수식 →
    Memory ↑, Complexity ↑
  • 예시 →
    대규모 트리 → 메모리 부족 가능


 


Apriori vs FP-Growth 

 

구분 Apriori (선험적 규칙) FP-Growth (빈발패턴성장)
핵심 개념 미리 알고 있는 성질로 제거 트리로 압축해서 바로 탐색
접근 방식 후보 생성 + 가지치기 트리 생성 후 패턴 추출
데이터 처리 여러 번 스캔 2번만 스캔
속도 느림 (조합 많음) 빠름 (압축 구조)
메모리 적게 사용 많이 사용
구현 난이도 쉬움 어려움
후보 집합 생성함 생성 안함
핵심 원리 부분집합 기반 제거 경로 공유 기반 압축

차이 

Apriori (선험적)

“미리 제거하면서 계산”

  • 안 될 애들 → 미리 제거
  • 계산 줄이기 목적

논리

부분집합이 안 되면 전체도 안 된다

If\ Support(A) < MinSupport
→ A 포함한 모든 집합 제거


FP-Growth

“데이터를 압축해서 한 번에 찾음”

  • 트리로 압축
  • 후보 생성 없이 바로 찾음

구조

같은 패턴을 하나로 묶음

Root
 └─ 기저귀
     └─ 맥주
         └─ 빵

왜 차이가 나는지 

Apriori가 느린 이유

  • 조합이 2^k로 증가
  • 후보 계속 생성
  • DB 계속 스캔

계산 낭비 많음


FP-Growth가 빠른 이유

  • 트리로 압축
  • 같은 경로 공유
  • 후보 생성 없음

중복 제거됨


직관 비교

Apriori

 “하나씩 다 만들어보고 틀린 거 제거”

A → AB → ABC → 제거
B → BC → 제거

비효율적


FP-Growth

 “한 번에 구조 만들어서 찾음”

데이터 → 트리 → 바로 패턴 추출

효율적


언제 뭐 쓰냐

상황 추천
데이터 작음 Apriori
데이터 큼 FP-Growth
빠른 처리 필요 FP-Growth
구현 쉬운거 필요 Apriori

정리

Apriori = 선험적 제거 (느림)
FP-Growth = 트리 압축 (빠름)


요약

Apriori: “미리 버리면서 찾는다”
FP-Growth: “압축해서 한 번에 찾는다”


 

728x90
반응형
LIST

'3. 빅데이터 모델링 > 분석 기법 적용' 카테고리의 다른 글

범주형 자료 분석  (0) 2026.03.25
군집분석  (0) 2026.03.24
서포트벡터머신  (0) 2026.03.22
인공신경망  (0) 2026.03.22
의사결정나무  (0) 2026.03.20