Skip to Content

03. 만족도 예측 모델 (Prediction)

전문가2시간

1. 개요 및 시나리오

상황: 고객이 설문조사에 답할 때까지 기다리면 너무 늦습니다. 이미 고객은 떠났을지도 모릅니다. 상담이 끝나는 순간, **“이 고객의 만족도는 5점 만점에 2점일 것이다”**라고 예측할 수 있다면? 매니저가 즉시 개입하여 사과 쿠폰을 보낼 수 있습니다.

이것이 **이탈 방지 예측 시스템(Churn Prevention System)**의 핵심입니다.


2. 데이터 준비 및 피처 엔지니어링

예측에 사용할 변수(Feature)를 선정합니다.

  • Target: csat_score (혹은 만족/불만족 이진 분류)
  • Features: first_response_time, resolution_time, issue_type, priority
# BigQuery ML을 사용하면 SQL만으로 모델링 가능 from google.cloud import bigquery client = bigquery.Client()

3. 모델 학습 (Training)

❓ 문제 1: 분류 모델 학습

Q. csat_score가 4점 이상이면 High, 3점 이하이면 Low로 예측하는 분류 모델을 만드세요.

💡

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를 확인하세요.

SELECT * FROM ML.EVALUATE(MODEL `your-project-id.retail_analytics_us.csat_classifier`);

결과 예시:

precisionrecallaccuracyroc_auc
0.850.820.840.91

❓ 문제 3: 실시간 예측 (What-If)

Q. 아직 설문에 답하지 않은 고객(혹은 가상의 상황)에 대해 예측해보세요. “응답 시간이 1시간일 때 vs 24시간일 때” 만족도 확률이 어떻게 변하나요?

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

🤖AI 모의면접실전처럼 연습하기