Data/머신러닝

[머신러닝] Uplift(업리프트) : 처치효과를 관측 할 수 있는 모델링

Derek Grey 2025. 2. 16. 21:09
반응형

 

 

 

 

처치(Treatment)의 순수한 영향을 예측하는 업리프트 모델링
인과효과를 알 수 있으며, 기대이익을 높일 수 있는 모델링

1. 개요 

https://www.kaggle.com/code/vanguarde/study-series-uplift-modeling

 

Uplift 모델링은 마케팅, 의사 결정, 의료 분야 등에서 특정 개입(예: 광고, 프로모션, 치료)이 개별 고객이나 그룹에게 미치는 순수한 영향(Uplift) 을 예측하는 기법입니다. 일반적인 머신러닝 모델이 결과를 단순히 예측하는 것과 달리, Uplift 모델링은 개입을 받았을 때와 받지 않았을 때의 차이를 학습하는 것이 핵심입니다.

 

단순 처치 효과(Uplift) 효과를 넘어 Persuadable(설득 가능 고객)을 구별하는데 강점이 있는 모델입니다. 기존 예측 모델은 고객이 구입을 할 것(1) 혹은 말 것(0) 을 아는데 초점을 두었습니다.

 하지만, 업리프트 모델링은 설득 가능 고객(=개입에 영향을 받는 고객)을 식별하여 처치 효과가 있는 고객만 타겟팅 하는 방식으로 활용할 수 있는 모델링이자 전략입니다.

2. Uplift 모델링 개념

일반적인 머신러닝에서는 고객이 구매할지 안 할지를 예측하지만, Uplift 모델링에서는 특정 개입(예: 마케팅 캠페인)이 고객 행동에 미치는 영향을 예측합니다.

즉,

  • 개입(처치, Treatment)을 받지 않았을 때(대조군, Control)와
  • 개입을 받았을 때(Treatment)

두 경우의 차이를 모델링하는 것이 목적입니다.

💡 Uplift = P(Y | Treatment) - P(Y | Control)

  • P(Y | Treatment) = 개입을 받았을 때 결과(예: 구매 확률)
  • P(Y | Control) = 개입을 받지 않았을 때 결과

3. Uplift 모델링 기법

  1. 단일 모델 접근법 (Single Model Approach)
    • X (특징)과 T (Treatment)를 함께 입력하여 Y를 예측하는 방식
    • 예: f(X, T) → Y
    • 문제점: 개입이 없는 경우에도 예측이 왜곡될 수 있음
  2. 차이 모델 (Two-Model Approach, T-Learner)
    • Treatment을 받은 그룹과 Control 그룹을 따로 학습
    • 두 개의 모델을 만들고, 두 예측값의 차이를 Uplift로 사용
    • 예: f_T(X) - f_C(X) → Uplift
    • 장점: 독립적으로 학습 가능하지만 데이터가 부족하면 성능 저하
  3. 메타 모델 (Meta-Learners, S-Learner, X-Learner)
    • S-Learner: Treatment을 하나의 특징으로 넣고 하나의 모델만 학습
    • X-Learner: 데이터 부족 문제를 보완하기 위해 두 모델을 활용하여 더 정교한 Uplift 예측
  4. Uplift Decision Tree (Class Variable Transformation)
    • Uplift에 최적화된 트리 기반 알고리즘 사용
    • treatment과 control 그룹을 나누고 트리를 생성하여 Uplift 값을 예측

4. 활용영역

 

업리프트 모델링은 인과추론의 Treatment 효과를 관측하는데 활용되곤 합니다. 특히, 마케팅/의료/추천시스템 등 영역에서 서 일반적으로 사용되기도 합니다.

 

특히, 마케팅 영역에선 "진짜로 처치(Treatment)가 효과가 있는 고객만 타겟팅" 하는 방식으로 이용되곤 합니다.

 단순히 구매 확률이 높은 고객에게 쿠폰을 주는 것이 아니라, 쿠폰이 실제로 구매 결정에 영향을 주는 고객만 골라서 쿠폰을 주거나, 혹은 쿠폰을 주지 않아도 구매하질 않을 고객을 예측해서 기대이익을 높이는 방식으로 활용할 수 있습니다.


🔹4-1. Uplift 마케팅 모델링의 핵심 목표

  • 불필요한 마케팅 비용 절감
  • 어차피 구매할 고객에게 쿠폰을 낭비하지 않음
  • 정말로 쿠폰이 필요해서 구매로 이어질 고객을 타겟팅

이런 방식으로 마케팅 ROI를 극대화하는 것이 목표입니다.


🔹 4-2. 고객을 4가지 그룹으로 분류

Uplift 모델링에서는 고객을 개입(Treatment) 여부에 따른 반응에 따라 4가지 그룹으로 나눌 수 있습니다.

 

Persuadables (설득 가능 고객) 쿠폰을 주면 구매, 안 주면 구매 안 함 ✅ 쿠폰 제공
Sure Things (확실한 고객) 쿠폰을 주든 안 주든 구매 ❌ 쿠폰 불필요
Lost Causes (구매 불가 고객) 쿠폰을 줘도 안 사는 고객 ❌ 쿠폰 불필요
Sleeping Dogs (부정적 반응 고객) 쿠폰을 주면 오히려 구매 안 함 ❌ 쿠폰 제공 금지

 

 

💡 Uplift 모델링의 목표는 "Persuadables" 그룹을 정확히 찾아내어 쿠폰을 주어 구매를 할 고객을 파악하는 데 초점을 맞출수 있습니다. Sure Things, Lost Causes, Sleeping Dogs에게 마케팅 비용을 쓰지 않는 것이 핵심입니다.


🔹 4-3. 예제: 쿠폰 발송 최적화

업리프트 모델링을 활용한 마케팅 방식은 기존 머신러닝과 차이점이 있습니다.

기존 마케팅 (일반 머신러닝)

일반적인 머신러닝 모델은 고객이 구매할지 안 할지를 예측합니다.

즉, 이 모델은 개입(Treatment)이 고객 행동에 미치는 영향을 고려하지 않고, 단순히 "구매 확률이 높은 고객"을 찾는 것이 목표입니다.

 

  1. 구매 확률이 높은 고객을 찾음
  2. 이 고객들에게 무조건 쿠폰 제공
  3. 그러나 이들 중 일부는 쿠폰 없이도 구매했을 고객(Sure Things) → 마케팅 낭비 발생
    • 이 모델은 쿠폰(마케팅 개입)이 없더라도 구매할 고객(Sure Things)을 구별하지 못함
    • 즉, "마케팅 효과가 있는 고객"이 아니라, 단순히 "구매 확률이 높은 고객"만 예측
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 데이터셋 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 일반적인 구매 예측 모델 (Treatment 정보 없이 학습)
purchase_model = RandomForestClassifier()
purchase_model.fit(X_train, y_train)

# 예측 및 평가
y_pred = purchase_model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))

Uplift 모델링

Uplift 모델링은 개입(Treatment)이 실제로 영향을 미치는 고객을 찾아냅니다. 즉, "Persuadables (설득 가능 고객)" 을 타겟팅하는 것이 목표입니다.

  1. 쿠폰이 정말로 구매 결정에 영향을 주는 고객(Persuadables) 을 예측
  2. 이 고객들에게만 쿠폰 제공
  3. 불필요한 쿠폰 발송 최소화 → 마케팅 비용 절감 & 효율 극대화!
from sklift.models import TwoModels
from sklift.metrics import uplift_at_k
from sklearn.ensemble import RandomForestClassifier

# Two-Model Approach
model_treat = RandomForestClassifier()  # Treatment 그룹을 위한 모델
model_control = RandomForestClassifier()  # Control 그룹을 위한 모델

uplift_model = TwoModels(estimator_trmnt=model_treat, estimator_ctrl=model_control, method='vanilla')

# 학습 (X: 특징, treatment: 개입 여부, y: 구매 여부)
uplift_model.fit(X, treatment, y)

# Uplift 예측 (마케팅 개입 효과 예측)
uplift_preds = uplift_model.predict(X)

# Uplift 성능 평가 (상위 k% 고객에게 마케팅을 했을 때 효과)
print("Uplift Score:", uplift_at_k(y, uplift_preds, treatment, strategy='overall'))

 

코드를 보면, 모델로 모델의 결과를 학습하고 예측하여 Treatment 효과를 파악하는 데 초점이 맞춰져 있습니다.

 

5. 정리

  • 기존 예측 모델은 구매 확률이 높은 고객을 예측하지만, 마케팅이 실제로 효과적인 고객을 구별하지 못하는 문제가 있습니다.
  • Uplift 모델은 마케팅 개입이 영향을 주는 고객만 선별하여 비용을 절감하는 기대 효과를 가질 수 있습니다.
  • 즉, 단순 예측 vs 개입 효과 분석의 차이를 파악하는데 초점이 맞춰져 있습니다.
  • 실제 적용 사례: 만약 쿠폰을 100만 명에게 보내야 한다면, 기존 모델은 "구매할 확률이 높은 고객"을 찾아서 보낼 것이고, Uplift 모델은 "쿠폰이 있어야만 구매할 고객"에게만 보내기 때문에 ROI가 훨씬 높아짐을 기대할 수 있습니다.
반응형