728x90

12

챔피언 티어정보 만들기

수집한 데이터를 가지고 챔피언들의 티어를 계산하는 코드입니다. 어디서 가중치를 더 줄것인지 혹은 뺄 것인지 정할 수 있고 또 얼마나 더하고 뺄지 산정할 수 있습니다. 기본 틀은 이렇게 되고 사람마다 다 각자 생각이 다르니까 알아서 조정하면서 수정하시면 됩니다. 라인별로 정리했습니다. 라인별 티어 (입력할 라인정보 : 'TOP','JUG','MID','BOT','SUP') import numpy as np import pandas as pd from google.cloud import bigquery from google.oauth2 import service_account from google.cloud import storage import pprint import json credentials = s..

베스트 조합 찾아내는 코드 by CSV

바로 위에 업로드한 코드를 돌려서 생성된 csv 파일을 가지고 가장 승률이 좋은 조합들을 찾는 코드입니다. import numpy as np import pandas as pd from google.cloud import bigquery from google.oauth2 import service_account from google.cloud import storage import pprint import json credentials = service_account.Credentials.from_service_account_file('admin.json') bigquery_client = bigquery.Client(credentials=credentials, project='cslee-323908')..

RiotAPI를 가지고 인게임데이터 csv로 저장하는 자동화 코드

젠킨스와 빅스토리지를 잘 활용하면 계속해서 수집할 수 있습니다. var.txt로 저장된 매치아이디를 통해서 게임정보를 불러오고 csv로 저장함 from google.cloud import bigquery from google.oauth2 import service_account from google.cloud import storage import pandas as pd from datetime import datetime import csv from datetime import datetime import os # 인게임 데이터가져와서 팀조합, 포지션 모으는 함수 def combi_position(ingame): df3 = pd.DataFrame({'Win': [], 'Lose': [], 'Win_Po..

포지션정보넣으면 승률+밴픽률순서로 출력

롤의 포지션별로 승률과 밴픽률을 합산하면 어떤 챔프가 좋은 챔프인지 알 수 있지 않을까? 라는 생각으로 만들어본 코드 만들면서 생각하지 못했던 부분은 ban_rate는 전체챔프가 다들어있어서 편향되는 경우가 많았다. 일단 값을 승률에 비해서 1/100로 줄였다. from google.cloud import bigquery from google.oauth2 import service_account from google.cloud import storage import ast import pandas as pd import numpy as np import pyarrow credentials = service_account.Credentials.from_service_account_file('admin.js..

챔피언 별 밴픽률을 구해보자

플레티넘 1,2,3의 유저정보를 빅쿼리에 저장해두었다. 플레 1,2,3의 챔프 밴픽률을 구해보자 from google.cloud import bigquery from google.oauth2 import service_account from google.cloud import storage import ast import numpy as np import pyarrow credentials = service_account.Credentials.from_service_account_file('admin.json') bigquery_client = bigquery.Client(credentials=credentials, project='빅쿼리프로젝트') storage_client = storage.Clien..

Position 순서를 맞춰보자

대부분 게임 position은 1,2,3,4,5 순서대로 탑, 정글, 미드, 원딜, 서폿 순서로 정해진다. 그렇지만 실제 인게임에서는 라인을 스왑하는 경우도 생기고 다양한 변수들이 존재한다. 현재 포지션 정보도 변수로 정해둔 이상 순서도 맞춰주는 것이 맞는 방법이라고 생각하였다. 1,2,3,4,5를 맞추는 방법은 의외로 간단하다. 간단한 코테같달까? import pandas as pd import csv import json import pprint as pp a = pd.read_csv("TeamCombination_position.csv") f = open('210901lane_test.csv', 'a', encoding='utf-8', newline='') wr = csv.writer(f) wr.w..

인게임 데이터에서 챔피언 조합과 포지션 정보 취합하기

지난 포스팅에서 매치아이디를 가지고 유저들의 게임정보를 수집하였다. 이 정보를 가지고 어떤 것을 할 지에 대해 고민을 해야하는데...챔피언 조합 추천이 어떨까 생각을 해보았다. 그래서 각 게임마다 블루팀과 레드팀의 조합을 추출하고 각 챔피언이 어떤 라인에 섰는 지까지 뽑아보는 코드를 작성해보았다. import pandas as pd df = pd.read_csv("C:/RiotProject/aaa.csv", encoding='CP949') # df2 = pd.read_csv("C:/RiotProject/practice/Champtag_All.csv") df3 = pd.DataFrame({'Win':[], 'Lose':[], 'Win_Position':[], 'Lose_Position':[]}) 먼저 인게..

RiotAPI를 사용해서 인게임 정보를 모아보자

지난 포스팅에서 MatchId를 수집하였다. 이런 식으로 굉장히 많은 게임정보를 불러와버렸다. 이 매치아이디를 통해서 인게임정보를 알 수 있다! 이렇게 받아온 매치아이디를 match-v5에 넣게되면 인게임 정보가 호출 된다. 이전에도 어떤 데이터를 사용할 지에 대해서 작성한 적이 있지만 정보를 호출하면 아래와 같이 길게 나온다. 해당 게임의 클라이언트 버전, 게임 맵, 10명의 챔피언과 룬,특성, 아이템 등등 정말 많은 데이터가 담겨져 있다. 여기서 필요한 것만 뽑아올 것이다. 'assists', 'championId', 'deaths', 'firstBloodAssist', 'firstBloodKill', 'firstTowerAssist', 'firstTowerKill', 'individualPositi..

소환사이름으로 MatchId 저장하기

내가 하는 이번 프로젝트에서는 승리예측이 될지 피드백이 될지는 아직 확정되지 않았으나 적어도 브론즈, 실버, 골드를 위한 모델을 제작하려고 한다. 솔직히 롤 좀 해본 사람은 알거다. 소위 말하는 천상계 즉, 챌린저, 그랜드마스터, 마스터 유저들의 데이터를 잘 정리해주는 곳은 많긴 한데 그걸 내가 하면 잘 안된다...실력이 좋으면 모를까 어쨌든 난 가장 유저가 가장 많이 분포되어 있는 브실골을 위한 모델을 만들것이다!! 브실골 유저가 84% 사실 인터넷에서 농담으로 벌레티넘 벌레티넘하지만 실제로 플레티넘이면 꽤나 실력이 좋은 유저들이다. 현실적으로 게임을 참고하고 적용하기도 좋다고 생각하여 플레티넘 유저들을 대상으로 데이터를 수집할 것이다. 그중에서도 1,2,3티어의 유저들 4티어는 '주차'라는 형태로 더..

어떤 티어의 유저들을 가져올까?

롤 데이터를 수집하기에 앞서 데이터의 양이 너무나도 방대하기 때문에 어떤 티어의 유저를 수집할 것인지 정하는 것이 좋다. 나는 승리예측 or 피드백 모델을 만드려고 하고 있는데 내가 현재 골드이므로... 플레티넘 유저들의 정보를 찾아보는 것이 좋다고 생각했다. 챌린저, 그랜드마스터, 마스터의 경우는 피지컬 부분도 꽤나 크게 작용하고 실질적으로 다이아보다는 플레티넘이 현실적으로 알맞다고 생각하였다. 플레티넘에서도 플레티넘 1,2,3의 유저들을 가져오려 한다. 라이엇에서는 실제로 랭크별 유저들의 정보도 API를 통해서 제공하고 있다. LEAGUE-EXP-V4 API에서 'queue', 'tier', 'division'을 설정해주면 페이지별로 유저들의 정보가 나온다. 이런 식으로! 데이터를 모두 저장하는 코드..

728x90