본문 바로가기
서버 구축·실습

GCP BigQuery ML로 방문자의 재구매 가능성을 예측하는 방법 (실습 기반)

by joe2026 2026. 3. 22.

이 글은 BigQuery ML 실습을 처음 수행하는 데이터 분석 학습자를 위한 기록입니다.
단순 SQL 분석을 넘어 방문자가 다시 와서 구매할지 예측하는 흐름이 어려운 문제를 해결합니다.
이 글을 통해 BigQuery ML로 재구매 예측 모델을 만드는 방법을 이해할 수 있습니다.

핵심 질문
BigQuery ML을 사용해 방문자의 재구매 가능성을 어떻게 예측할 수 있는가?


실습 환경

  • Cloud: GCP
  • 서비스: BigQuery ML
  • 데이터: Google Analytics Ecommerce
  • 모델: logistic_reg (이진 분류)
  • 학습 데이터: 9개월
  • 평가 데이터: 2개월

아키텍처

전체 흐름은 다음과 같습니다.

 

Web Analytics → BigQuery → BigQuery ML → Prediction


문제 정의

전자상거래에서 중요한 질문은 단 하나입니다.
누가 다시 방문해서 구매할 것인가?

실제 데이터 기준으로 구매 전환율은 약 2.69% 수준입니다.
즉 대부분의 사용자는 구매하지 않습니다.


■ 강사 설명

실습은 다음 흐름으로 진행됩니다.
1. 데이터 분석
2. Feature 선택
3. 모델 생성
4. 모델 평가
5. 예측 수행


■ 내가 이해한 핵심

머신러닝의 핵심은 모델이 아닙니다.
입력 데이터(Feature)가 성능을 결정합니다.


■ 내가 실제로 겪은 문제

초기 모델의 정확도가 낮았습니다.
원인은 단순 Feature만 사용했기 때문입니다.


실습 단계

1. Feature 추출

SELECT
 IFNULL(totals.bounces, 0) AS bounces,
 IFNULL(totals.timeOnSite, 0) AS time_on_site

2. 모델 생성

CREATE OR REPLACE MODEL ecommerce.classification_model
OPTIONS(
 model_type='logistic_reg',
 labels=['will_buy_on_return_visit']
)
AS SELECT ...

3. 모델 평가

SELECT roc_auc FROM ML.EVALUATE(...)

결과: 약 0.72 (성능 보통)


실습 증거

roc_auc: 0.723
model_quality: decent

문제 원인

데이터가 부족하면 모델은 학습하지 못합니다.
특히 사용자 행동 정보가 중요합니다.


4. Feature 확장

  • pageviews
  • traffic source
  • device category
  • country
  • 구매 진행 단계

5. 개선된 모델

CREATE OR REPLACE MODEL ecommerce.classification_model_2
OPTIONS(model_type='logistic_reg')
AS SELECT ...

6. 재평가

SELECT roc_auc FROM ML.EVALUATE(...)

결과: 약 0.91 (성능 우수)


실습 증거 2

roc_auc: 0.909
model_quality: good

트러블슈팅

문제: 모델 정확도 낮음

원인: Feature 부족

해결: 행동 데이터 추가

예방: 모델보다 데이터 설계 우선


실무 핵심

상위 6% 사용자만 타겟팅하면
전체 구매자의 절반을 확보할 수 있습니다.

ROI 9배 개선 효과


결론

핵심 원칙
머신러닝 성능은 Feature가 결정한다

주의사항

  • 단순 지표로는 예측 불가
  • 행동 데이터 필수
  • 평가 지표 확인

다음 단계
Vertex AI 또는 실시간 ML 파이프라인 확장