1. 활용 데이터 설명
활용 데이터 : https://www.kaggle.com/datasets/sohyunjun0401/game-rawdata-240705
Game Data - Utilize Advanced Data Analysis
This dataset can be used for various machine learning.
www.kaggle.com
☑️ 이 데이터 세트는 게임 도메인의 데이터 분석가를 위해 만들어졌습니다. 여기에는 고객 정보 및 경험 값, 레벨, 위치, 국가 및 OS와 같은 게임 내 데이터에 대한 열이 포함되어 있습니다. 기본 분석 및 통계적 가설 검정이 가능합니다. 또한 머신 러닝에 사용하도록 설계되었습니다.
| 컬럼(국문) | 컬럼(영문) | 예시 |
| 계정id | account_id | lzp4q7rw-z30g-8jpz-v50m-12poovfh29b5 |
| ip주소 | ip_addr | 70.30.233.132 |
| 나라 | country | CN |
| 위도 | latitude | 35.86166 |
| 경도 | longitude | 104.1954 |
| 나이 | age | 34 |
| 성별 | gender | MALE |
| OS | os | iOS |
| 첫 접속일자 | first_login_date | 2020-12-16 |
| 마지막 접속일자 | last_login_date | 2024-12-16 |
| 레벨 | level | 88 |
| 획득 경험치 총량(레벨과비례아님) | exp | 999972 |
| 서버번호 | serverno | 16 |
| 캐릭터 직업 | job | 전사 |
| 주요 활동 | action_type | PVE |
| 마케팅 정보제공 활용동의 여부 | marketing_info_yn | Y |
| 누적 결제금액 | pay_amont | 99997151 |
| 누적 환불금액 | refund_amount | 0 |
| 서비스 평가점수 | review_score | 5 |
| 총 플레이타임(초) | total_playtime_second | 60481276 |
| 유입경로 | channel | Social |
| 주요 결제상품 | main_purchase_category | 레벨업패키지 |
| 주요 결제방식 | main_purchase_type | 간편결제 |
| 배틀패스 레벨 | battle_pass_level | 12 |
| 길드 멤버수 | guild_member_cnt | 35 |
| 인던 입장 횟수 | instance_Dungeon_enter_cnt | 3 |
2) 컬럼 내용 설명
[주요활동]
QUEST
- 퀘스트 수행을 의미하며, 게임 내 스토리 진행, NPC 의뢰, 일일/주간 퀘스트 등이 포함됩니다.
- 일반적으로 경험치(exp)나 아이템 보상을 얻는 주요 방법 중 하나입니다.
FISHING
- 낚시 활동을 의미합니다.
- 게임 내에서 낚시 콘텐츠가 존재하며, 특정한 아이템(물고기, 재료, 특별한 보상 등)을 얻기 위한 활동입니다.
- 생활형 콘텐츠로, 전투를 하지 않고도 게임 내 재화를 획득할 수 있는 방법일 가능성이 높습니다.
PVP
- 플레이어 간 전투(Player vs Player)
- 유저들이 서로 싸우는 콘텐츠로, 결투장(Arena), 랭킹전, 길드전 등이 포함될 수 있습니다.
경쟁 요소가 강하고, 게임 내에서 매출과 연관이 클 가능성이 높습니다(예: PVP 장비 강화, 승리 보상).
RAID
- 레이드 전투를 의미하며, 일반적으로 여러 명의 유저가 함께 강력한 보스를 상대하는 콘텐츠입니다.
- 보스 처치 후 높은 등급의 장비나 희귀한 아이템을 얻을 수 있습니다.
- 협동 플레이 요소가 강하며, 길드 활동과 밀접한 관련이 있을 가능성이 큽니다.
PVE
- 몬스터와의 전투(Player vs Environment)
- 일반 필드 사냥, 던전 클리어 등이 포함되며, 주로 캐릭터 성장과 장비 파밍을 위한 활동입니다.
- 자동 사냥 시스템과 연관될 수도 있으며, 반복 플레이가 많을 가능성이 있습니다.
배틀패스란?
- 일정 기간 동안 특정 미션을 수행하면 보상을 받을 수 있는 시스템
배틀패스 레벨이란?
- 유저의 배틀패스 진행 정도를 나타내는 레벨 값
- 레벨이 높을수록 배틀패스를 많이 플레이하거나 결제를 통해 레벨을 올린 유저일 가능성이 큼.
인던 입장 횟수란?
- 인스턴스 던전에 입장한 횟수를 나타냅니다.
- 인스턴스 던전은 특정 유저 그룹(파티)이 독립적인 공간에서 플레이하는 콘텐츠입니다.
- 값이 높을수록 던전 콘텐츠를 자주 즐기는 유저.
2. 프로젝트 목적 설명
☑️ 1주일 내에 대시보드를 제작하여 매출, 유저 행동 데이터를 시각화하고 이를 통해 마케팅 전략을 제시한다.
- 대시보드 별 주요 목표
- 매출 대시보드를 통해 유저의 결제금액을 높여 매출을 상승시킬 수 있는 방법을 제시한다.
- 유저 대시보드를 통해 신규 유저를 유치하고, 챠밍 포인트(좀 더 게임을 플레이하고 돈을 더 사용하게 하는 포인트)를 만들어 최종적으로 매출을 상승시킬 수 있는 방법을 제시한다.
1) 문제 정의
- 분석 및 시각화의 중점
- 지역별, 날짜별, 게임 특성별 매출 데이터에서 매출이 적은 부분을 파악해서 이를 개선할 마케팅 전략을 제안할 수 있을까?
- 고액 결제 유저와 일반 결제 유저를 분류해서 고액 결제 유저의 특징을 파악해 결제를 유도할 수 있을까?
- 문제의 필요성 및 중요성
- 매출이 적은 지역을 분석하면 그곳에 자원을 더 분배하거나 매출이 많은 지역에 자원을 분배해 매출을 더 강화할 수 있음
2) 분석 배경
(1) 우리는 2017년 4월에 출시된 모바일 게임 회사 데이터 분석팀으로 게임데이터 대시보드 구축’ 프로젝트를 담당 하게 됨.
(2) 게임 데이터를 탐색하여 아래 현황을 살펴볼 수 있는 자료를 만들고자 함
- 현 상태 확인
- 사업수립 방향 결정
- 고객 세그먼트별 인사이트 도출
- 이슈, 특이사항 확인
(3) 본 자료가 사용되는 회의는 게임 사업부, 현지 영업부, 임원이 참석하는 전사 전략기획회의임.
3. 데이터 전처리
1) 데이터 컬럼명이 0 행에 들어가있어서 영문 컬럼명으로 변경
- 데이터 불러올 때 header =1 로 불러오면 1행으로 컬럼명 변경됨
df1 = pd.read_csv('/Users/gim-yeon-a/Desktop/[실전프로젝트] 한눈에 보는 게임 데이터 _집이조아/game_rawdata.csv', header=1)


2) 날짜 데이터 변환
1) first_login_date 27141 non-null object > datetime64[ns]
2) last_login_date 27141 non-null object > datetime64[ns]
3) NaN값 (결측치) 처리
1) latitue, longitude 결측치 확인
2) 국가코드 BD(방글라데시) 확인하여 결측치 데이터 채움
# 위도와 경도가 비어 있는 Bangladesh(BD) 데이터 채우기
df1.loc[(df1["country"] == "BD") & (df1["latitude"].isna()), "latitude"] = 23.65
df1.loc[(df1["country"] == "BD") & (df1["longitude"].isna()), "longitude"] = 90.35

4) 범주형 변수 인코딩 : 라벨 인코더 사용
- 추후 프로젝트에 머신러닝을 돌리게 된다면 사용할 예정
from sklearn.preprocessing import LabelEncoder
# 라벨 인코딩할 컬럼 목록
categorical_columns = df1[[
"gender", "os", "action_type", "channel",
"main_purchase_category", "main_purchase_type",
"job", "marketing_info_yn"
]]
# 각 컬럼에 대해 라벨 인코딩 수행
for col in categorical_columns:
if col in df1.columns:
le = LabelEncoder()
df1[col + "_encoded"] = le.fit_transform(df1[col]) # 인코딩된 값 새 컬럼에 저장'Project Archive' 카테고리의 다른 글
| [온보딩] 건강보험 의료비 데이터를 활용한 보험료 모델링 및 마케팅 전략(1) (0) | 2025.02.12 |
|---|