03. 만족도 예측 모델 (Prediction)
전문가2시간
1. 개요 및 시나리오
상황: 고객이 설문조사에 답할 때까지 기다리면 너무 늦습니다. 이미 고객은 떠났을지도 모릅니다. 상담이 끝나는 순간, **“이 고객의 만족도는 5점 만점에 2점일 것이다”**라고 예측할 수 있다면? 매니저가 즉시 개입하여 사과 쿠폰을 보낼 수 있습니다.
이것이 **이탈 방지 예측 시스템(Churn Prevention System)**의 핵심입니다.
2. 데이터 준비 및 피처 엔지니어링
예측에 사용할 변수(Feature)를 선정합니다.
- Target:
csat_score(혹은 만족/불만족 이진 분류) - Features:
first_response_time,resolution_time,issue_type,priority…
BigQuery (SQL)
# BigQuery ML을 사용하면 SQL만으로 모델링 가능
from google.cloud import bigquery
client = bigquery.Client()3. 모델 학습 (Training)
❓ 문제 1: 분류 모델 학습
Q. csat_score가 4점 이상이면 High, 3점 이하이면 Low로 예측하는 분류 모델을 만드세요.
BigQuery ML
💡
Hint: CREATE OR REPLACE MODEL ... OPTIONS(model_type='LOGISTIC_REG')을 사용합니다.
정답 코드 보기
CREATE OR REPLACE MODEL `your-project-id.retail_analytics_us.csat_classifier`
OPTIONS(
model_type='LOGISTIC_REG',
input_label_cols=['satisfaction_label']
) AS
SELECT
IF(s.csat_score >= 4, 'High', 'Low') as satisfaction_label,
TIMESTAMP_DIFF(t.first_response_at, t.opened_at, HOUR) as response_hours,
TIMESTAMP_DIFF(t.resolved_at, t.opened_at, HOUR) as resolution_hours,
t.issue_type,
t.priority,
t.channel
FROM `your-project-id.retail_analytics_us.cs_tickets_dummy` t
JOIN `your-project-id.retail_analytics_us.survey_cs_dummy` s ON t.ticket_id = s.related_ticket_id
WHERE t.status = 'solved'
AND s.csat_score IS NOT NULL;4. 모델 평가 (Evaluation) 및 예측 (Prediction)
모델이 얼마나 정확한지 확인하고, 실제 데이터에 적용해봅니다.
❓ 문제 2: 모델 평가
Q. 학습된 모델의 정확도(Accuracy)와 ROC-AUC를 확인하세요.
BigQuery ML
SELECT *
FROM ML.EVALUATE(MODEL `your-project-id.retail_analytics_us.csat_classifier`);결과 예시:
| precision | recall | accuracy | roc_auc |
|---|---|---|---|
| 0.85 | 0.82 | 0.84 | 0.91 |
❓ 문제 3: 실시간 예측 (What-If)
Q. 아직 설문에 답하지 않은 고객(혹은 가상의 상황)에 대해 예측해보세요. “응답 시간이 1시간일 때 vs 24시간일 때” 만족도 확률이 어떻게 변하나요?
BigQuery ML
SELECT
response_hours,
predicted_satisfaction_label,
predicted_satisfaction_label_probs
FROM ML.PREDICT(
MODEL `your-project-id.retail_analytics_us.csat_classifier`,
(
SELECT 1 as response_hours, 2 as resolution_hours, 'shipping' as issue_type, 'high' as priority, 'email' as channel
UNION ALL
SELECT 24 as response_hours, 48 as resolution_hours, 'shipping' as issue_type, 'high' as priority, 'email' as channel
)
);5. Feature Importance (변수 중요도)
어떤 요인이 만족도에 가장 큰 영향을 미쳤나요?
BigQuery ML에서는 ML.FEATURE_IMPORTANCE 함수를 제공합니다.
SELECT *
FROM ML.FEATURE_IMPORTANCE(MODEL `your-project-id.retail_analytics_us.csat_classifier`);- 결과: 보통
response_hours(응답 속도)나resolution_hours(해결 속도)가 상위권에 랭크됩니다. - 인사이트: “상담 내용을 친절하게 하는 것보다, 빨리 답장하는 것이 만족도에 더 중요하다”는 결론을 얻을 수 있습니다.
💡 요약
- Classification: 만족/불만족, 이탈/유지 등을 예측.
- BigQuery ML: SQL 기반으로 모델링부터 배포, 예측까지 All-in-One으로 처리 가능.
- Actionable Insight: 모델링 결과(Feature Importance)를 통해 비즈니스 전략(예: 응답 속도 개선)을 수립.
Project 1 완료! 이제 여러분은 데이터를 분석하고, 검증하고, 예측할 수 있는 Full-Stack 데이터 분석가가 되었습니다. 다음 단계는 이 모든 것을 **대시보드(Streamlit)**로 만들어 팀원들과 공유하는 것입니다.
Last updated on