빅데이터 국비 교육

UCI Wholesale 고객 데이터로 보는 고객 세분화 & 채널 예측 대시보드 (K-means, PCA, TabPy 연동)

datahaseo 2026. 3. 13. 13:19

0. 분석의 시작점

"데이터로 읽는 유통의 미래: 직관을 넘어 예측의 시대로"

McKinsey & Company데이터 기반 의사결정을 내리는 기업이

그렇지 않은 기업보다 고객 유치 확률은 23배, 수익성은 19배 더 높다고 강조한 바 있습니다.

 

Bain & Company의 2025 소비자 제품 보고서에 따르면,

글로벌 소비재(CPG) 판매 성장률은 2022년 9.8%에서 2024년 7.5%로 둔화되었는데요,

 

어려운 시장 속에서도  글로벌 유통 공룡들은 이미 기존의 데이터를 활용하여 고객의 미래 행동을 예측하며 비지니스를 성장시키고 있습니다.

  • Sysco(시스코): 북미 최대 식자재 유통 기업 시스코는 AI와 디지털 영업 도구를 활용해 고객의 과거 구매 패턴을 분석, '구매 시점이 도래한 품목'을 선제적으로 제안하며 외식 수요 감소 위기 돌파
  • Amazon(아마존): 고객이 주문하기도 전에 물품을 인근 물류센터로 이동시키는 '예측 배송(Anticipatory Shipping)' 시스템을 통해 물류 패러다임 전환

이러한 사례들은 데이터를 통한 정밀한 고객 이해와 운영 효율화의 중요성이 커지고 있음을 시사합니다.

 

본 프로젝트는 UCI Wholesale Customer 데이터셋을 기반으로 고객의 페르소나를 정의하고,

신규 고객들에 대한 전략 수립을 대시보드화로 가시화하여 이해하기 위해 기획되었습니다.

 

데이터 전처리부터 머신러닝 모델 학습 및 채택 판단 근거, 그리고 태블로를 통한 시각화 과정을 공유합니다.


[목차]

1. 프로젝트 개요

2. 데이터 탐색 및 전처리

3. 머신러닝 기반 분석 프로세스
    ① PCA 
    ② K-Means 클러스터링  (고객 페르소나 도출)
    ③ 머신러닝 분류 모델 선정
    ④ 모델 성능FEATURE IMPORTANCE , SHAP 분석 
4. TabPy 연동

5. 태블로 대시보드 제작
6. 결론 및 비지니스 제언

 


1.  프로젝트 개요 

본 프로젝트의 목적은 UCI Wholesale Customer 데이터셋을 활용하여 다음 세 가지 질문에 답하는 것입니다.

  • 고객 세분화: 고객은 어떤 구매 특성을 가진 그룹으로 나뉘는가? (K-Means)
  • 채널 예측: 신규 고객의 구매 패턴만으로 이들이 '호텔/레스토랑/카페 유형(Horeca)'인지 '소매 유형(Retail)'인지 판별할 수 있는가? 
  • 비즈니스 구현: 현업 담당자가 실시간으로 예측치를 확인할 수 있는 환경을 어떻게 구축할 것인가? (TabPy & Tableau)

(출처: https://www.kaggle.com/datasets/binovi/wholesale-customers-data-set)


2. 데이터 탐색 및 전처리

데이터는 총 440개의 행과 8개의 변수(품목별 연간 구매액, 지역, 채널)로 구성되어 있습니다.

컬럼명 의미 설명
Channel 유통 채널 고객의 거래 채널. Horeca(호텔·레스토랑·카페) 또는 Retail(소매점) 구분에 사용됨
Region 지역 고객이 속한 지리적 지역 구분 변수. 특정 국가 내의 권역 정보
Fresh 신선식품 구매액 육류, 채소, 과일 등 신선식품 카테고리에 대한 연간 구매 금액
Milk 유제품 구매액 우유, 치즈, 요거트 등 유제품 카테고리에 대한 연간 구매 금액
Grocery 식료품 구매액 가공식품, 일반 식료품 등 장기 보관 식품 카테고리 구매 금액
Frozen 냉동식품 구매액 냉동 육류, 냉동 가공식품 등 냉동식품 카테고리 구매 금액
Detergents_Paper 세제·종이류 구매액 세제, 화장지, 키친타월 등 생활 소모품 구매 금액
Delicassen 즉석·가공식품 구매액 즉석식품, 델리 식품, 가공 반찬류 등의 구매 금액



2. 데이터 탐색 및 전처리 | 기초 통계량

  • [요약] 품목별 구매액의 편차가 매우 크고 우측으로 꼬리가 긴 분포(Skewed)를 확인했습니다.

2-1 describe 함수를 통한 기초 통계량 확인

 

 

  • 결측치 부재: 440개의 샘플 모두 결측치 없이 정제되어 있어 데이터 신뢰도가 높음을 확인했습니다.
  • 분산의 비대칭성: 모든 품목에서 평균(Mean)이 중앙값(Median)보다 높게 나타났으며, 특히 Max 값이 평균 대비 수십 배에 달하는 등 소수 우량 고객에 의한 매출 쏠림 현상을 포착했습니다.

 

2-2  seaborn 패키지 기반 시각화 | 히스토그램 / 박스 플럿

 

  • Hisplot 및 Boxplot 을 통해 모든 변수에서 우측의 긴 꼬리 (이상치)의 존재를 확인했습니다

 

 

2-3 z-score 기반 이상치와 왜도 점검

  •  Z-score(표준점수)는 해당 값이 평균에서 표준편차 몇 배만큼 떨어져 있는지를 나타내는 수치이며,
     |z| > 3을 이상치 기준으로 사용했습니다 
  • 이상치(Outliers) 판별: |z| > 3 기준을 적용했을 때 모든 품목에서 극단치가 존재함을 확인했습니다. 이를 방치할 경우 머신러닝 모델이 일반 고객이 아닌 특이 케이스(VVIP 등)에만 과적합(Overfitting)될 위험이 있습니다.
  • 왜도 개선 확인: 원본 데이터의 높은 왜도를 확인한 후, 로그 변환 권장 지수(log_recommended)가 모든 품목에서 True임을 도출했습니다.

 

 

2. 데이터 탐색 및 전처리 | 전처리

  • [요약]  머신러닝 모델의 왜곡을 방지하기 위해 Log Transformation을 수행하고, 변수 간 단위 차이를 맞추기 위해 StandardScaler를 적용했습니다.

2-4 seaborn 패키지 기반 시각화 | 히스토그램 / 박스 플럿

 

  • Action: 억 단위와 백만 단위 구매액 사이의 거대한 간극을 로그 스케일로 압축했습니다.
  • Value: 우측으로 길게 늘어진 꼬리 분포를 정규분포 형태로 변환함으로써, 모델이 모든 구매 구간의 패턴을 고르게 학습할 수 있는 환경을 조성했습니다.

 

2-5 StandardScaler 적용

  • Action: 서로 다른 품목별 구매 단위(Unit)를 평균 0, 표준편차 1의 표준 정규분포로 스케일링했습니다.
  • Selection Reason (왜 StandardScaler인가?): 본 프로젝트의 핵심인 K-Means(거리 기반)PCA(분산 기반) 알고리즘은 변수의 절대 수치에 민감합니다.
    • 금액대가 큰 '신선식품(Fresh)'에만 모델이 좌우되지 않도록, 'Detergents_Paper'처럼 금액은 적지만 채널 구분력이 높은 변수의 영향력을 동일한 가중치로 반영하기 위해 선택했습니다.

 

2. 데이터 탐색 및 전처리 | 상관분석

2-6 스피어만 상관관계

  • [요약]  각 변수들간의 관련성을 파악
  • 본격적인 모델링에 앞서 각 품목 간의 관련성을 파악하기 위해 상관분석을 실시했습니다. 이는 변수들이 서로 얼마나 정보를 공유하고 있는지 확인하여, 이후 PCA(주성분 분석)를 통한 데이터 압축의 타당성을 검토하기 위함입니다.

① 분석 기법의 선택: 왜 Spearman인가?

일반적으로 사용하는 피어슨(Pearson) 상관계수 대신 스피어만(Spearman) 순위 상관계수를 채택했습니다.

  • 이유 1 (이상치 대응): 앞선 EDA에서 확인했듯 본 데이터는 이상치가 많아, 수치 자체에 민감한 피어슨 계수보다 순위를 기반으로 하는 스피어만이 더 안정적인 결과를 제공합니다.
  • 이유 2 (비선형성): 품목 간의 관계가 반드시 선형적이지 않더라도, 구매액의 증가 추세(단조성)를 정확히 포착할 수 있습니다.
  • 신뢰성 확보: 모든 상관계수에 대해 p-value 검정을 실시하여, 도출된 관계가 통계적으로 유의미함을 확인했습니다.

② 핵심 발견: Milk-Grocery-Detergents_Paper의 강력한 연결고리

분석 결과, 특정 품목군 사이에서 매우 밀접한 상관관계가 관찰되었습니다.

변수 쌍 상관계수(Spearman) 관계 강도
Grocery ↔ Detergents_Paper 0.801 매우 강함
Milk ↔ Grocery 0.773 매우 강함
Milk ↔ Detergents_Paper 0.680 강함

 

③ PCA 전 사전 확인의 필요성 (Bridge to PCA)

이 상관분석 결과는 다음 단계인 PCA의 결정적 근거가 됩니다.

  • 정보의 중복 확인: 세 변수(Milk, Grocery, Detergents_Paper)가 강하게 묶여 있다는 것은, 이들을 각각 개별 변수로 다루기보다 가공 및 소모품 구매 성향'이라는 하나의 핵심 축으로 통합했을 때 데이터의 특징을 더 잘 설명할 수 있음을 시사합니다.
  • 차원 축소의 정당성: 변수들이 서로 따로 놀지 않고 뭉쳐 있으므로, 정보를 적게 잃으면서도 적은 수의 주성분으로 압축할 수 있다"는 확신을 가지고 PCA 단계로 진입할 수 있었습니다.

 

(참고)  상관관계의 신뢰성 검정 (P-value Verification)

도출된 상관관계가 통계적으로 유의미한지 확인하기 위해 유의수준(α) 0.05를 기준으로 스피어만 순위 상관분석 기반의 가설 검정을 수행했습니다.

  • 귀무가설(H0): 두 변수 간에는 상관관계가 없다. (상관계수 = 0)
  • 대립가설(H1): 두 변수 간에는 유의미한 상관관계가 존재한다.

분석 결과: 대부분 품목 유의미한 상관관계 확인

작성한 파이썬 코드를 통해 모든 변수 쌍의 p-value를 계산한 결과,

상관계수가 높게 나타난 주요 변수 쌍들의 p-value가 모두 0.05보다 훨씬 작게 나타났습니다.

 

 

3. 머신러닝 프로세스

① PCA  주성분 분석 | 고차원 데이터를 관통하는 핵심 축 도출

1. PCA 개요: 6개의 복잡함을 3개의 핵심으로

  • 정의: 여러 변수(품목) 간의 상관관계를 이용해 정보 손실을 최소화하며 데이터를 대표하는 새로운 축(PC)을 생성하는 기법입니다.
  • 분석 결과: 상위 3개의 주성분만으로 전체 변동의 약 81.9%를 설명 가능함을 확인했습니다.
    • PC1 (44.1%): 전체 데이터의 절반 가까운 흐름을 결정하는 가장 강력한 축
    • PC2 (27.2%): 두 번째로 중요한 구매 패턴 형성
    • PC3 (10.7%): 특정 품목(델리 등)의 미세한 차이 설명

2. 로딩값(Loading) 분석: 주성분에 비즈니스 언어 입히기

로딩값은 각 품목이 주성분을 형성하는 데 기여한 '성적표'입니다.

로딩값의 절댓값이 클수록 그 주성분의 성격을 많이 좌우하는 품목입니다. 

  • PC1: Milk, Grocery, Detergents_Paper의 기여도가 압도적입니다. 가공식품과 생활용품 중심의 대량 구매 성향을 나타냅니다.
  • PC2 : Fresh, Frozen 품목의 기여도가 높습니다. 신선 식품과 냉동 식자재 중심의 식당/호텔 구매 성향을 나타냅니다.
  • PC3 : Delicassen 비중이 두드러지며, 고급 가공식품이나 특수 품목에 대한 선호도를 설명합니다.

 

3. 분석의 목적: Biplot 시각화를 통한 PCA 분석

  • 차원 축소: 사람이 인지할 수 없는 6차원의 구매 데이터를 2차원 평면(PC1, PC2)으로 투영하여 시각적 분석 환경을 구축했습니다. (Biplot)

      Biplot은 고객(점)과 품목(화살표)을 한 좌표계에 그려 채널의 특성을 시각적으로 증명합니다.

  • 화살표 방향: 고객 점이 특정 품목 화살표 방향에 모여 있다면, 해당 품목의 구매 비중이 높은 그룹입니다. 
  • 화살표 각도: 화살표 사이의 각도가 좁을수록 두 품목은 함께 구매되는 경향이 강합니다. (예: Grocery-Detergents_Paper의 좁은 각도 = 높은 동시 구매율)

 

 

K-Means 클러스터링   | 5가지 고객 페르소나

1. K-Means 알고리즘: 행동 데이터 기반의 고객 그룹화

  • K-Means 알고리즘이란? 구매 패턴이 유사한 고객들을 하나의 그룹으로 묶어주는 대표적인 비지도 학습 알고리즘입니다.
  • 역할: 각 고객을 PCA 좌표계(PC1, PC2) 상의 점으로 표현하고, 그룹 내 응집도는 극대화하고 그룹 간 이질성은 확보하는 최적의 군집을 찾아냅니다.
  • 본 프로젝트의 활용: 440명의 고객을 단순한 '숫자'가 아닌, 5개의 전략적 세그먼트로 나누어 차별화된 마케팅 전략을 수립하는 데 활용했습니다.

2. 최적 군집 수(K) 결정: 과학적 근거 기반의 의사결정

임의적인 판단이 아닌 통계적 지표를 결합하여 K=5를 도출했습니다.

  • 엘보우 방법 (Elbow Method): 군집 내 제곱거합(WCSS)의 감소 폭이 급격히 줄어드는 지점을 확인했습니다. K=5 이후 완만해지는 '팔꿈치' 지점을 포착하여 효율적인 군집 수를 결정했습니다.
  • 실루엣 스코어 (Silhouette Score): 각 데이터가 자신이 속한 군집과 얼마나 잘 어울리는지 나타내는 지표입니다. K=5에서 약 0.2689를 기록, 현실 세계의 복잡한 유통 데이터에서 유의미한 분리도가 확보되었음을 검증했습니다.

 

 

3. 군집 결과 시각화

 

페르소나 고객
비중
매출
비중
평균 구매액 핵심 패턴 (평균 대비) 주요 전략
① 대형 리테일·편의점형 24.5% 40.3% (최고) 54,557 MU 전 품목 평균 대비
2배 이상 구매 
전담 매니저배치,
대량 구매 전용 단가 정책
② 신선·냉동 중심형 28.2% (최다) 29.2% 34,441 MU 신선식품(1.6배), 냉동식품(1.9배) 식자재 특화 콜드체인 물류 강조, 정기 식자재
구독 모델 및 시즌 패키지 제안
③ 식료품·세제 강조형 12.0% 12.5% 34,367 MU 가공식품/세제 등 공산품 집중 (평균 2.5배) 주력 품목 점유율 수성 타겟 할인,
인접 카테고리 교차 판매
④ 소규모 균형형 25.9% 14.0% 17,898 MU 품목 편중 없는 소량 다품목 구매 (안정적 기반) 미구매 품목 샘플링을 통한 장바구니 확대, 로열티 멤버십 운영
⑤ 초소규모·냉동 위주형 9.3% 4.1% 14,506 MU 냉동 위주 목적성 구매,
기타 품목 저조
진입 장벽 완화(최소 주문량 한시적 인하), 웰컴 프로모션 강화

 

 

  • 매출 기여도 기반 집중 관리: 전체 고객의 24.5%에 불과한 '대형 리테일형' 그룹이 전체 매출의 40%를 견인하고 있습니다. 이는 철저한 파레토 법칙(80:20)을 따르고 있으며, 이들에 대한 이탈 방지가 기업 수익성의 핵심임을 시사합니다.

 

  • 성장 동력 발굴: '신선·냉동 중심형'은 고객 수와 매출 비중이 모두 균형 있게 높습니다. 이들의 신선식품 수요를 공산품(세제류 등)으로 전이시킬 수 있다면 추가적인 매출 성장의 기회가 될 것으로 보입니다.

 

 

머신러닝 분류 모델 | 고객 채널(Horeca vs Retail) 자동 예측

어떤 채널인지 예측하기 위해 다양한 알고리즘을 비교 평가했습니다.

1. 분석의 목적 : 왜 채널을 예측해야 하는가 ?

  • 타겟 마케팅 최적화: 신규 고객의 초기 구매 패턴만 보고도 이들이 호텔/레스토랑/카페 유형 (Horeca)인지 소매 유형 (Retail)인지 즉시 판별하여 맞춤형 카탈로그를 발송할 수 있습니다.
  • 영업 리소스 효율화: 영업 사원이 직접 방문하기 전에 채널을 예측함으로써, 우선순위가 높은 잠재 고객에게 인력을 집중 배치할 수 있습니다.
  • 데이터 기반의 자동화: 직관에 의존하던 고객 분류를 머신러닝 모델로 자동화하여 의사결정의 속도와 정확도를 동시에 높입니다.

 

2. 입력 데이터 및 전처리 (Data Pipeline)

분석의 일관성을 위해 앞선 클러스터링과 동일한 전처리 과정을 공유하도록 설계했습니다.

  • 타겟 변수(y): Channel (0: Horeca / 1: Retail)
  • 입력 변수(X): 6개 품목의 구매액 + 지역(Region) 정보
  • 주요 전처리:
    • Log Transformation: 구매액의 거대한 편차를 줄여 모델이 패턴을 고르게 학습하도록 유도
    • Standard Scaling: 모든 품목의 단위를 통일하여 '공정한 영향력' 부여
    • One-Hot Encoding: '지역'과 같은 범주형 데이터를 컴퓨터가 인식할 수 있는 숫자 형태로 변환

 

3. 모델 라인업 및 성능 검증

데이터의 패턴을 가장 잘 찾아낼 모델을 찾기 위해 선형 모델부터 앙상블 기법까지 총 7가지의 알고리즘을 후보로 올렸습니다. 성능 평가는 임계값에 상관없이 모델의 분류 능력을 종합적으로 보여주는 AUC(ROC-AUC) 지표를 기준으로 하였습니다.

 

분류 모델명 Train AUC
(학습 데이터 성능)
CV AUC
(검증 데이터 성능) 
Gap(격차) 결과
선형 모델 Logistic Regression 0.942 0.916 0.026 채택
SGD Classifier 0.940 0.908 0.032 채택
앙상블 Random Forest 1.000 0.919 0.081 채택
XGBoost 0.999 0.905 0.094 채택
CatBoost 0.998 0.892 0.106 제외
(낮은 효율)
Gradient Boosting 1.000 0.881 0.119 제외 (과적합 경향)
의사결정나무 Decision Tree 1.000 0.741 0.259 제외 (과적합 경향)

 

 

3-2. 전략적 선별 기준: 왜 4개 모델만 채택했는가?

단순히 점수가 높은 모델이 아니라, '현업에서 배신하지 않을 안정성'을 기준으로 최종 4개 모델 (Logistic, SGD, RF, XGB)을 선발했습니다.

① 과적합(Overfitting) 모델의 과감한 배제

Decision Tree와 Gradient Boosting은 Train AUC가 1.0(만점)에 가깝지만, 검증 점수(CV)와의 격차가 매우 큽니다.

이는 모델이 구매 패턴의 원리를 학습한 것이 아니라, 훈련 데이터 자체를 통째로 암기해버렸음을 의미합니다.

② 일반화(Generalization) 성능 최우선

최종 채택된 Logistic RegressionSGD는 Train과 CV의 격차가 약 0.03 내외로 매우 작습니다.

이는 어떤 환경에서도 일관된 성능을 낼 수 있음을 암시합니다.

 

[채택된 4개 모델 성능 비교 | 핵심 성능 지표 이해하기]

성능 지표 용어를 비즈니스 언어로 풀이하면 다음과 같습니다.

  • 정확도(Accuracy): "얼마나 많이 맞혔는가?" (전체적인 예측 성공률)
  • 정밀도(Precision): "모델이 Retail이라고 한 고객 중, 진짜 Retail은 몇 명인가?" (오발송 방지)
  • 재현율(Recall): "실제 Retail 고객들을 하나도 놓치지 않고 다 찾아냈는가?" (기회 손실 방지)
  • AUC (ROC-AUC): "모델이 채널을 구분해내는 순수한 실력은 어느 정도인가?" (1에 가까울수록 좋은 모델)
모델 정확도
(Accuracy)
정밀도
(Precision)
재현율
(Recall)
AUC 특징 및 활용 예시
Logistic Regression 0.90 0.90 0.77 0.95 [균형형] 설명력이 가장 좋고 성능이 안정적임
XGBoost 0.89 0.93 0.71 0.93 [신중형] Retail 오탐을 최소화해야 할 때 유리
Random Forest 0.90 0.90 0.77 0.94 [안정형] 비선형 패턴까지 골고루 잘 잡아냄
SGDClassifier 0.91 0.86 0.86 0.93 [적극형] 잠재 고객을 놓치지 않고 다 찾아낼 때 유리

 

 

 

Feature Importance & SHAP 분석 | 모델의 '판단 근거' 파헤치기

1. AI의 블랙박스를 여는 두 가지 지표

단순히 예측 점수가 높은 모델을 넘어, '왜(Why)' 그런 결과가 나왔는지 설명하기 위해 두 가지 지표를 활용했습니다.

  • Feature Importance (특성 중요도): "전체적으로 어떤 변수가 가장 강력한 영향력을 가졌는가?"를 정량화합니다. (비즈니스 전략 수립 시 우선순위 결정에 유리)
  • SHAP Value : "특정 고객의 예측에서 각 변수가 확률을 얼마나 올리고 내렸는가?"를 계산합니다. (개별 고객 맞춤형 마케팅 및 결과 설명에 유리)

 

2. Feature Importance | 채널 분류 핵심 변수는 "Detergents_Paper ( 세제·종이류 )"

최종 4개 모델을 분석한 결과, 공통적으로 세제·종이류(Detergents_Paper)가 채널(Retail vs Horeca)을 구분하는 압도적인 결정 병기임을 확인했습니다.

  • 현상: 모든 알고리즘에서 log_Detergents_Paper의 가중치가 1순위로 나타남.
  • 비즈니스적 의미: 도매 시장에서 유제품이나 식료품은 식당과 마트 모두 대량 구매할 수 있지만, 가정용 소모품인 세제와 종이류는 재판매를 목적으로 하는 소매점(Retail)에서 훨씬 압도적인 비중으로 구매한다는 사실이 데이터로 입증되었습니다.
모델 1순위 변수
(가중치)
2순위 변수
(가중치)
3순위 변수
(가중치)
데이터 해석
Logistic Regression 세제·종이류 (1.39) 식료품 (0.88) 유제품 (0.58) [균형형 ] 가중치가 계층적으로 고르게 분포함. 가장 표준적인 판단을 내림.
XGBoost 세제·종이류 (0.64) 유제품 (0.09) 식료품 (0.07) [신중형 ] 세제(0.64) 가중치가 2위(0.09)보다 7배 이상 압도적임. 확실한 신호(세제류 대량구매)가 포착될 때만 날카롭게 반응함.
Random Forest 세제·종이류 (0.37) 식료품 (0.30) 유제품 (0.14) [안정형] 세제(0.37)와 식료품(0.30)의 중요도 격차가 가장 작음. 특정 품목 하나에 휘둘리지 않고 복합적인 패턴을 고려함.
SGDClassifier 세제·종이류 (7.50) 식료품 (2.54) 신선식품 (2.04) [적극형] 세제(7.50) 가중치가 매우 높고 모든 변수의 절댓값이 큼. 작은 구매 변화도 크게 확대 해석하여 타겟을 넓게 포착함.

 

 

3. SHAP Value 

① 왜 SHAP 분석이 필요한가? 

 Feature Importance는 모델 전체의 경향성만 보여줄 뿐, "특정 고객이 왜 Retail로 분류되었는가?"에 대한 개별적인 답을 주지 못합니다. SHAP Value는 각 변수가 결과값에 기여한 '정확한 양'을 계산하여, AI의 블랙박스를 사람이 이해할 수 있는 언어로 번역해 줍니다.

② SHAP Summary Plot 읽는 법 (색상과 위치의 의미)

SHAP 차트에는 데이터의 분포와 영향력이 동시에 표현됩니다.

  • 점의 색상 (Feature Value): 변수값의 크기를 나타냅니다.
    • 빨간색: 해당 품목의 구매액이 높음
    • 파란색: 해당 품목의 구매액이 낮음
  • 점의 위치 (SHAP Value, x축): 예측 결과에 미친 영향의 방향입니다.
    • 오른쪽 (+): Retail(소매) 채널로 예측할 확률을 높임
    • 왼쪽 (-): Horeca(호텔·식당·카페) 채널로 예측할 확률을 높임

③ 심층 해석: Logistic Regression (종합 균형형)

메인 모델인 로지스틱 회귀의 SHAP 결과를 수치 기반으로 분석해 보겠습니다.

  • ① 소매 유형 (Retail)의 결정적 신호: 세제·종이류, 식료품, 유제품
    • 해석: 빨간 점(높은 구매액)**이 오른쪽(+)에, **파란 점(낮은 구매액)**이 왼쪽(-)에 위치합니다.
    • 의미: 이 품목들을 많이 살수록 모델은 고민 없이 **소매점(Retail)**으로 분류합니다. 특히 '세제·종이류'는 점들의 확산 범위가 가장 넓어 채널을 가르는 가장 강력한 엔진임을 보여줍니다.
  • 이 세 품목은 데이터의 분포가 매우 일관적입니다.

 

 

 

 

 


4. TabPy 연동

4-1. TabPy란? (Tableau Python Server)

TabPy는 태블로가 외부 파이썬(Python) 코드를 호출하여, 머신러닝 예측 결과를 실시간으로 차트에 반영할 수 있게 해주는 엔진입니다. 

4-2. 동작 원리: 분석의 선순환 구조

  1. 서버 실행: 파이썬 환경에서 TabPy 서버를 가동합니다. (localhost:9004)
  2. 모델 배포: 학습된 머신러닝 모델(pkl)과 전처리 스케일러를 로딩한 후, 예측 함수를 작성하여 TabPy에 배포(deploy)합니다.
  3. 태블로 호출: 태블로의 계산 필드에서 SCRIPT_* 함수를 통해 배포된 파이썬 함수에 데이터를 전달합니다.
  4. 실시간 응답: 사용자가 대시보드에서 매개변수를 조정하면, 서버가 즉시 결과를 반환하여 화면을 갱신합니다.

4-3. 필수 환경 설정 (Setup Guide)

성공적인 연동을 위해 다음의 인프라 설정을 완료했습니다.

  • 환경 구축: pip install tabpy 후 서버 실행.
  • 서비스 연결: 태블로의 [외부 서비스 연결 관리]에서 TabPy 서버 주소(localhost)와 포트(9004)를 등록.
  • 모델 관리: 학습 시 사용한 StandardScaler 및 머신러닝 모델 4종을 TabPy 실행 경로에 배치하여 데이터 정합성 유지

    .

 

4-4. 구현 코드 예시 

① Python 측: 모델 배포 및 함수 정의

파이썬에서는 데이터를 받아 전처리 후 예측 확률을 반환하는 함수를 정의합니다.

# 파이썬 모델 로딩 및 함수 배포 예시
def get_channel_proba(fresh, milk, grocery, frozen, detergents, delicassen, region, model_name):
    X_raw = np.column_stack([fresh, milk, grocery, frozen, detergents, delicassen])
    X_scaled = scaler.transform(np.log1p(X_raw)) # 로그변환 + 스케일링
    
    # 모델명 매개변수에 따라 다른 모델 호출
    clf = MODELS.get(model_name[0], clf_logistic)
    proba = clf.predict_proba(X_final)[:, 1] # Retail(1)일 확률 반환
    return proba.tolist()

client.deploy('get_channel_proba', get_channel_proba, 'Retail 채널 확률 반환', override=True)

 

 

② Tableau 측: SCRIPT 스크립트 활용

태블로 계산 필드에서는 파이썬 함수를 다음과 같이 호출하여 화면에 뿌려줍니다.

 

// [Channel_Proba_Retail] 계산 필드 예시
SCRIPT_REAL(
"return tabpy.query('get_channel_proba', _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8)['response']",
SUM([Fresh]), SUM([Milk]), SUM([Grocery]), SUM([Frozen]), 
SUM([Detergents_Paper]), SUM([Delicassen]), INT([Region]), [Select ML Model]
)

 

 

4-5. TabPy 연동의 장점

(1)  실시간 예측 및 시뮬레이션

과거 데이터의 사후 분석에 그치지 않고, 대시보드 상에서 신규 고객의 구매 데이터를 입력하거나 필터를 조정하는 즉시 "이 고객은 85%의 확률로 Retail 고객입니다"라는 예측 결과를 받아볼 수 있습니다.

(2) 모델 간 비교 분석 (Model Comparison)

Select ML Model 매개변수를 통해 사용자가 직접 로지스틱 회귀, XGBoost, 랜덤 포레스트를 갈아 끼우며 예측 결과가 어떻게 달라지는지, 어떤 모델이 현재 상황에 더 적합한지 판단할 수 있습니다.


5. 태블로 대시보드 구현

 

  • 채널. 지역 항목을 클릭하면 우측 박스 플럿에도 필터가 적용됩니다

  • K-means 클러스터링을 통해 분류된 5개의 군집의 페르소나 특징을 확인할 수 있습니다

 

  • 좌측 그래프의 붉은 점은 상단 매개변수 슬라이드를 통해 설정된 데이터를 가진 가상의 고객의 포지셔닝을 나타냅니다.
  • 또한 설정된 변수들을 기반으로 학습된 ML 모델이 Retail / Hereca Channel 중 예측합니다

 

  • 상단 시뮬레이션 메뉴에서 선택된 ML 모델의 성능 지표를 확인할 수 있습니다.

  • 대시보드에서 언급된 모델, 지표 등에 대한 부연 설명을 추가하였습니다

 

 

6. 결과 해석 및 비지니스 제언

분석 결과물은 다음과 같은 비즈니스 전략으로 연결될 수 있습니다.

  1. 맞춤형 프로모션: 가공식품 비중이 높은 '##  고객군에게는 세제 및 종이류 묶음 할인 이벤트를 제안합니다.
  2. 타겟 마케팅: 채널 예측 모델을 통해 유입된 신규 고객의 성향을 미리 파악하여, Horeca 전용 신선식품 카탈로그를 발송하는 등 효율적인 마케팅 비용 집행이 가능합니다.
  3. 데이터 기반 의사결정: 직관이 아닌 SHAP 지표와 실제 수치에 기반하여 어떤 품목이 채널 성격에 영향을 주는지 설명함으로써 조직 내 의사결정의 신뢰도를 높였습니다.