dataset 확보
: https://www.kaggle.com/datasets/chuckephron/leagueoflegends?select=LeagueofLegends.csv
League of Legends
Competitive matches, 2015 to 2018
www.kaggle.com
: API로 데이터를 받아와서 사용하기에는 요청 수 제한 등이 있어서 너무 제한적이었다.
: kaggle의 망령이 돼서....떠돌이해본 결과 다음의 적합한 데이터셋을 확보할 수 있었다.
dataset 분석
LeagueofLegends.csv
1. 기본 정보
- League: 리그 이름 (예: NALCS, LCK 등).
- Year: 경기 연도.
- Season: 시즌 정보 (예: Spring, Summer 등).
- Type: 경기 유형 (예: Season, Playoffs 등).
- blueTeamTag / redTeamTag: 블루 팀과 레드 팀의 이름.
- bResult / rResult: 블루 팀과 레드 팀의 경기 결과 (1: 승리, 0: 패배).
- gamelength: 경기 시간 (분 단위).
2. 골드 / 킬 관련
- golddiff: 경기 시간에 따른 블루 팀과 레드 팀의 골드 차이 배열(블루-레드)
- goldblue / goldred: 블루 팀과 레드 팀의 시간대별 골드 총량 배열.
- bKills / rKills: 블루 팀과 레드 팀의 킬 관련
[킬 발생 시간, 데스한 선수, 킬한 선수, 어시스트한 선수 리스트, 킬 당시 데스 선수 골드, 킬 당시 킬 선수골드]로 표현되어있는거 같다.
3. 오브젝트 데이터
- bTowers / rTowers: 블루 팀과 레드 팀이 파괴한 타워.
[파괴 시간, 라인, 차수] - bInhibs / rInhibs: 블루 팀과 레드 팀이 파괴한 억제기.
[파괴 시간, 라인] - bDragons / rDragons: 블루 팀과 레드 팀이 점령한 드래곤 시간.
[파괴 시간, None] -> None이 장로 효과 넣으려고 했나? -> 경기 시간이 긴 데이터, 장로용을 먹는 경기를 봐도 다 None - bBarons / rBarons: 블루 팀과 레드 팀이 점령한 바론 시간.
- bHeralds / rHeralds: 블루 팀과 레드 팀이 점령한 전령 시간.
4. 팀 구성 관련
- blueTop / blueTopChamp / goldblueTop: 블루 팀 탑 포지션의 선수, 챔피언, 시간대별 골드 배열.
- blueJungle / blueJungleChamp / goldblueJungle: 블루 팀 정글 포지션의 선수, 챔피언, 시간대별 골드 배열.
- blueMiddle / blueMiddleChamp / goldblueMiddle: 블루 팀 미드 포지션의 선수, 챔피언, 시간대별 골드 배열.
- blueADC / blueADCChamp / goldblueADC: 블루 팀 원거리 딜러(ADC) 포지션의 선수, 챔피언, 시간대별 골드 배열.
- blueSupport / blueSupportChamp / goldblueSupport: 블루 팀 서포터 포지션의 선수, 챔피언, 시간대별 골드 배열.
- blueBans: 블루 팀이 밴한 챔피언 리스트.
red도 마찬가지로 세팅
정말 게임에 필요한 모든 데이터가 있을 것 같다!!!
데이터를 보고 뭔지 잘 몰라도 게임을 좋아했어서 그런지 대충 이런거구나. 감으로 맞출 수 있었다.
해당 데이터로 무엇이 가능할까?
당장 드는 생각으로 가능한 것과 어떤 것을 쓸지 생각해보았다. (추후 변경될 수도 있음).
일단, 프로리그 기반의 데이터셋이라 핵을 쓴다거나 하는 행동은 없을 것으로 가정
1. 비정상적인 경기 패턴
- 킬 방생 시간과 골드 차이 데이터를 기반으로 어떤 시간대에 많은 골드가 발생했는 지
- 어시스트와 킬 수를 비교해서 팀별 팀워크 집중도 탐지
VAE, Lsolation Forest, Autoencoder 등등
2. 어떤 팀이 승리할 지 예측
- 분단위로 되어 있는 데이터가 많기에 분단위로 쪼개서 승리 팀을 예측
- 블루/레드 팀의 초기 골드, 킬/데스 비율, 오브젝트 현황, 어느 라인에 골드가 많이 투자되었는 지 등
해당 Feature들 기반으로 학습하고 타임라인별로 승리를 예측
TabNet, XGBoost, ...등등
3. 경기 중 어느 시점에 킬이 많이 발생하는지, 오브젝트를 점령하는지, 골드 추세
- 골드 차이의 미래 추세 예측
- 킬/데스 시점 예측
- 오브젝트 점령 시간대 예측
- 시간별 feature와 그에 따른 event feature로 나누어서 하면 될거 같다.
시간성이 중요하니까, LSTM, GRU 등을 기반으로 or TCN, Transformer
4. 그럼 여기에 강화학습은 어떤 식으로 적용할까?
- 킬/데스, 오브젝트, 골드차이 등에 따른 reward 계산
: 이에 따른 action을 어떤식으로 취하여야 승률이 올라가는 지 예측
강화학습 쪽은 아는 모델/알고리즘이 제한적이라 추후 학습하면서 진행
검증은 데이터셋 중 일부를 나눠서 사용하면 될 것 같다!
'Project > Data_Analysis' 카테고리의 다른 글
분석 1차(승리 예측) (0) | 2024.12.05 |
---|---|
롤이 너무 좋아서 riot api를 사용하기로 했다. (0) | 2024.06.28 |