본문 바로가기

TFT

(11)
TFT 데이터분석 - 덱 classification 이번 포스트에서는 사용 챔피언과 활성화된 특성을 바탕으로 덱을 분류하는 모델링에 대해 정리했다. 1. Data setting classification을 위한 기본적인 library를 불러왔다. import numpy as np import pandas as pd import sklearn import plotly.express as px import matplotlib.pyplot as plt import seaborn as sns import import_ipynb import json 게임 경기 기록과 해당 경기에서 사용한 덱을 나타낸 데이터프레임을 불러왔다. game_deck = pd.read_csv('challenger_game_list_deck.csv') game_deck = game_deck..
TFT 데이터분석 - 덱 분석하기 이번 포스트에서는 분류한 각각의 덱의 특징을 정리했다. 1. Data setting 1) Data preprocessing 먼저 분석에 필요한 library를 불러왔다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import seaborn as sns import plotly.express as px import json import sklearn import scipy.stats as stats from datetime import datetime 게임 경기 결과 데이터프레임에 덱 종류 변수를 추가한 데이터프레임 'game_result_clustering', 게임 경기 당 유닛 통계 'unit_d..
TFT 데이터분석 - 메인 덱 클러스터링 (2) 이전 포스트 에서 이어지는 포스트이다. 1. Modeling 이전 포스트에서 EDA를 통해 얻은 특징을 바탕으로 모델링을 시작했다. 1) Sparse and high dimensional data 데이터프레임 element 내부에 0이 많고 column의 수도 59개로 적지 않은 편이다. 이를 해결하기 위한 방법으로 SVD (Singular Value Decomposition)을 이용하기로 했다. (1) Singular Value Decomposition Matrix $A$를 3개의 matrix $U, \Sigma, V$로 분해하는 방법이다. 이 때 $\Sigma$는 diagonal entry에 0 또는 양의 정수를 갖고, 나머지 entry는 0의 값을 가지는 matrix이다. $A$가 $m \times..
TFT 데이터분석 - 메인 덱 클러스터링 (1) 이번 포스트에서는 유저들의 게임 데이터를 이용, 유저들이 많이 사용한 덱을 확인해보려고 한다. 1. 분석 목표 이번 포스트에서의 목표는 게임 경기 데이터를 이용하여 유저들이 많이 사용하는 덱을 정의하는 것이다. 덱의 정보가 없기 때문에, 경기 데이터를 기반으로 클러스터링한 후, 각 클러스터의 특징을 파악하여 클러스터마다 덱 이름을 부여할 것이다. 1) 덱? TFT에서 해당 유저가 사용한 유닛 조합을 뜻한다. 덱을 결정짓는 다양한 요소가 존재하는데, 가장 대표적인 요소가 유닛과 특성 조합이다. 어떤 유닛을 사용할건지, 특성 중 어떤 특성을 사용해서 파워가 쌘 덱을 만들 수 있는지 생각해야 한다. 상황에 맞는 덱을 사용하면서 적절히 운영해 게임을 우승하는 것이 TFT 게임의 목표이다. 현재 8.5 시즌이 시..
TFT 데이터 분석- 유닛, 아이템, 증강체 summary 이전 포스트에서 만든 두 개의 데이터프레임(unit_dataframe, game_summary)을 이용하여 유닛, 증강체, 아이템 통계를 제작해보자! 이전 포스트부터 이어지는 이야기이다. 코드 중 이전 포스트 코드가 포함되어 있으니 참고하기. 1. Summary 데이터프레임 만들기 통계 정보 요약 데이터프레임을 만들기 위해, 해당 유닛을 사용한 유저의 등수가 필요하다. 따라서 join을 통해 두 데이터프레임을 묶어주고, 필요한 column만 추출해주는 함수를 만들었다. def joining_game_unit(game_result, item_result): result = pd.merge(item_result, game_result[['Game_id', 'Player_id', 'Placement', 'au..
TFT 데이터 분석- Summary 위한 데이터프레임 정리 저번 포스트에서 api에서 얻을 수 있는 원데이터에서 경기 데이터를 수집했다. 수집한 데이터를 바탕으로 실제 분석에 사용할 수 있는 유닛, 아이템, 증강체 데이터프레임 만든 과정을 정리했다. 이전 포스트부터 이어지는 이야기이다. 코드 중 이전 포스트 코드가 포함되어 있으니 참고하기. 1. 현재 만든 데이터프레임 현재까지 만든 데이터프레임은 다음과 같다. 하지만 해당 데이터프레임에서는 유닛과, 유닛에 해당하는 성(star)수, 아이템을 뽑기 어렵다. 따라서 해당 데이터프레임에서는 증강체만, unit 데이터프레임을 따로 만들어 두 데이터프레임을 합쳐줄 것이다. 2. 유닛 정보 데이터프레임 만들기 1) unit dataframe 만들기 첫 번째로 unit 데이터프레임을 만들어주어야 한다. player별로 사용..
TFT 데이터 분석- 경기 데이터 만들기 이번 포스트에서는 경기 데이터에 대해 정리했다. TFT api를 통해 얻은 데이터를 바탕으로 첫 번째로 만들고 싶은 데이터프레임은 다음과 같다. (출처 : 롤체지지) 현재까지 API에서 추출한 경기 데이터에 한글화를 진행했다. 다음 단계로 넘어가보자. 1. 경기 데이터에 필요한 column 현재까지 추출한 데이터프레임은 다음과 같다. 경기 데이터이고(participants), 해당 column의 augments에는 증강체가, traits에는 특성이, units에는 사용한 유닛과 아이템이 적혀있다. (여기서 증강체는 한글 변환이 진행되어 있다.) 특성 데이터이다. (participants에는 해당 데이터프레임이 8개 존재한다. 해당 데이터프레임은 첫 번째 유저의 특성 결과이므로 first_user_trai..
TFT 데이터 분석- Data Dragon과 한글 변환 지난 포스트에서 riot api를 통해 데이터를 추출해보았다. 이번 포스트에서는 Data Dragon과 이를 이용하여 유닛, 증강체, 아이템 한글 변환 방법에 대해 정리했다. 1. 추출된 데이터 지난 포스트에서 추출한 데이터는 다음과 같았다. Game id를 입력하여 해당 게임 정보를 추출했고, 첫번째 데이터프레임의 participants를 데이터프레임으로 만들어주었다. 여기서 각 참여 유저별 특성과 유닛 데이터프레임은 다음과 같다. 2. 영어를 한글로 변환하기 첫번째로 할 작업은 영어로된 증강체, 유닛, 아이템을 한글로 바꿔주는 작업이다. 이를 진행하기 위해서는 다음 사이트에서 게임 데이터 파일을 다운 받아야 한다. Data Dragon 최신 패치 폴더(현 시점 기준 13.5이다.) - cdragon ..