728x90
반응형
🧭 개요
대부분의 게임은 서비스 초기에 많은 유저가 유입되지만, 일정 기간이 지나면 빠르게 이탈하는 유저가 생기기 시작합니다.
- 어떤 유저가 왜 떠나는가?
- 이탈을 예측해서 막을 수는 없을까?
- 어떤 행동 패턴이 이탈을 예고하는가?
이 질문에 답하기 위해 머신러닝 기반 유저 이탈 예측 모델이 필요합니다.
🎯 실무 목표
유저의 지난 7일간 활동 데이터를 분석하여, 다음 7일 안에 이탈할 가능성이 높은 유저를 예측하는 것
예측에 성공하면:
- 조기 이탈자에게 보상 푸시
- 핵심 유저 유지율 향상
- 마케팅 비용 최적화
🔍 Step 1: 이탈(Churn) 정의
정의 기준 예시 (모바일 MMORPG 기준):
- 최근 7일간 로그인 기록이 없는 유저
- OR 최근 7일간 퀘스트/전투/결제 활동이 모두 없음
-- 이탈 여부 계산 SQL 예시
SELECT account_id,
MAX(login_date) AS last_login,
CASE
WHEN MAX(login_date) < DATE_SUB(NOW(), INTERVAL 7 DAY) THEN 1
ELSE 0
END AS is_churn
FROM login_log
GROUP BY account_id;
이 값을 머신러닝의 **타겟 라벨(Label)**로 사용합니다.
📊 Step 2: 입력 데이터 정의
7일간의 행동 데이터를 기반으로 예측합니다.
입력 피처(Features) 예시:
Feature설명
login_days | 최근 7일 중 로그인한 일수 |
play_time_avg | 일 평균 플레이 시간 |
quest_completed | 7일간 완료한 퀘스트 수 |
battle_count | 전투 참여 횟수 |
party_join_rate | 파티 매칭 참여율 |
gold_change | 획득한 골드량 변화 |
cash_spent | 유료 재화 사용량 |
pvp_win_rate | PvP 승률 |
📦 Step 3: 데이터 수집 예시
SQL로 원본 데이터 추출 → Pandas로 처리
import pandas as pd
# 예시 CSV 파일 로딩
df = pd.read_csv("user_behavior_last7days.csv")
# 예시 피처
df.head()
account_id login_days play_time_avg quest_completed gold_change cash_spent is_churn
10001 | 5 | 120.5 | 8 | 3500 | 0 | 0 |
10002 | 2 | 40.0 | 2 | 100 | 0 | 1 |
✅ 이 데이터를 기반으로 모델을 학습시킬 수 있음
🤖 Step 4: 예측 모델 정의
다음 Part 2에서 사용할 기본 분류 모델:
- 랜덤 포레스트 (Random Forest Classifier)
- XGBoost
- 향후 확장: LightGBM, 딥러닝(LSTM 등)
분류 문제 (Binary Classification)
- Target: is_churn (0 = 유지, 1 = 이탈)
- Input: 유저 활동 피처들
🛠 실무 적용 팁
상황적용
신규 유저 3일차 행동만 보고 예측 | t+3 기준 예측 → 빠른 전환 대응 |
장기 유저 대상 프리미엄 유저 분류 | LTV + 이탈 예측 결합 모델 |
유료 유저 이탈 예측 | cash_spent > 0 필터링 후 별도 예측 모델 운영 |
클러스터링 결합 | 먼저 유저를 군집화하고 각 군집별 이탈 예측 모델을 운영 |
📁 확장 과제 제안
- 로그인 로그 + 퀘스트 로그 + 결제 로그 조합하여 피처 생성
- datetime → 요일/주말 여부, 시간대 파생 피처 구성
- PyCaret, AutoML 도구로 모델 자동 탐색
📌 마무리 요약
오늘은 이탈 예측을 위한 전처리와 설계에 집중했습니다.
정확한 라벨 정의 + 고품질 피처 구성이 좋은 예측 모델의 출발점입니다.
728x90
반응형
'AI > Game AI' 카테고리의 다른 글
🤖 유저 이탈 예측 모델 만들기 – Part 2: 모델 학습과 평가 실습 (0) | 2025.07.19 |
---|---|
💬 LLM으로 NPC 대사 자동 생성하기 – ChatGPT와 프롬프트 디자인 (0) | 2025.07.04 |
ControlNet과 Pose Estimation을 이용한 캐릭터 자세 보정 (0) | 2025.07.04 |
Stable Diffusion으로 게임 캐릭터 컨셉 아트 생성하기 (0) | 2025.07.04 |
게임 산업에서 AI가 필요한 진짜 이유 (0) | 2025.07.04 |