• [파이썬 프로젝트] 오버워치2 게임 데이터 분석 프로젝트 [1] 분석편

    2024. 1. 2.

    by. KAEY


    [파이썬 프로젝트] 오버워치2 게임 데이터 분석 프로젝트 [1] 분석편   [ 해당 게시글 링크 ]   ⬅️현재 게시물

    [파이썬 프로젝트] 오버워치2 게임 데이터 분석 프로젝트 [2] 발표편   [ 해당 게시글 링크 ]  

     

     


    프로젝트를 하기에 앞서

    파이썬에서 plt와 pandas, seaborn, csv 등을 이용한 데이터 분석 프로젝트를 수행하였다.

    주어진 데이터를 보고 내가 예상하고자 하는 결과를 예측했고, 이를 통해 이외에도 더 필요한 것이 무엇일지

    데이터와 데이터 사이의 연관성을 분석해 결과값을 예측한 것에 대한 근거로 활용하였다.

     

     


    개발 배경

    (1) python 언어, plt, pands, seaborn 그리고 csv 등을 활용하는 능력을 향상시킨다.

    (2) 데이터를 보고 결과를 예측, 데이터간의 연관성을 분석한다.

    (3) 시각적 자료를 활용하여 좀 더 확실한 정보 전달을 한다.

     

     


    프로젝트 기간

    < 2023-11-21 ~ 2023-11-27 >

     

     


    개발 과정

    원래는 라이엇의 API를 받아서 API 호출을 통해 데이터를 직접 수집하고 정제해서 원하는 데이터를 만들고자 했다.

    하지만 알아보는 과정에서 라이엇 API 승인 요청을 하고 승인이 나는 기간이 대략 1주일 정도 소요된다 하였다.

    이번 데이터 프로젝트 기간이 일주일정도 였기 때문에, 불가능하다고 생각했고

    데이터의 양 또한 유의미하게 많이 수집될 것이란 판단이 되지 않았다.

     

     

    따라서 2010년에 설립된 예측모델 및 분석 대회 플렛폼인 Kaggle에서 제공된 

    ' Overwatch2 statistic, "MYKHAILO KACHAN" ' 의 데이터를 바탕으로 진행하였다.

    해당 링크 : Overwatch 2 statistics (kaggle.com)

     

    Overwatch 2 statistics

    overwatch 2 seasons 1-4 statistics + quick play

    www.kaggle.com

     

     


     

    먼저 데이터를 수집하고 분석하는 과정에서 가장 먼저 생각난 것은 유튜브의 '프로관전러 P.S' 였다.

    해당 채널에서는 자체적으로 규정한 KDA와 카운터 챔피언 등 여러 요소를 고려하여

    자체적으로 규정 해놓은 PS스코어라는 데이터 값을 통해 여러 챔피언을 평가 분석하고 있었다.

     

     

    이러한 데이터 값을 나 또한 자체적으로 규정했고, 데이터 정규화에 대한 간단한 정의와 설명은

    상단에 있는 내가 제작한 PPT의 캡쳐에서 확인할 수 있다.

    단순히 말해, 데이터의 범위를 일정한 범위로 규정해서 한 눈에 보기 좋게 만들겠다는 것.

     

     


    왜 필요했을까?

    당시에 내가 데이터를 뽑아놓은 차트.

    '바티스트'와 '브리기테'는 똑같이 최하위 픽률을 보이고 있지만, 승률은 브리기테는 1등, 바티스트는 최하위이다.

    데이터에 근거한다면, 바티스트보다 브리기테가 월등하게 좋다고 말할 수 있다.

     

     

    하지만 누군가는 이렇게 말할 수 있을 것이다.

    "난 바티스트 개 잘하는데?"

    난 이것에 대해 "당신 말이 맞다"고 대답한다.

     

     

    엄연히 롤에도 장인 챔피언이 있고, 대회 챔피언이 있듯이. 대상혁의 아지르라던가...

    이러한 데이터만 보고 해당 시즌에서 브리기테가 무조건 좋다고 말하기에는 조금 어려운 감이 있다.

    오버워치로 말하면 '학살' 선수의 겐지나 '류제홍' 선수의 아나가 있겠다.

    한때 오버워치를 하던 플레이어들의 가슴을 불태웠던 그 사람들이 있으니까.

     


    정규화 점수

     

    물론 여러가지 데이터가 평가 점수가 될 수 있겠지만, 오로지 승률에만 집중해서 볼 것이다.

    ( 승률 / ( 킬뎃 + 픽률 + 승률 ) ) * 100 (소숫점 셋 쨰자리 이후 반올림)

    을 해서 킬뎃과 픽률, 승률을 고려했을 때 승률이 높게 잡히는 캐릭터를 골라내겠다는 의미이다.

     

     

    * 정규화된 데이터는 다 더했을 때 1이 나온다.

    * ASHE 캐릭터를 기준으로 분자에 있는 값을 각각 킬뎃, 픽률, 승률을 넣었을 때,

      각각 (0.053, 0.041, 0.904) 으로 다 합치면 1이 된다. 

     

    어느 정도 데이터를 1을 넘지 않도록 규정해서 한 눈에 보기 좋게 정렬하겠다는 의미로 보면 된다.

     

     


    해당 개발편을 마치며,

    데이터를 찾아서 원하는 결과를 세우고 데이터간의 상관관계를 분석하는 것.

    사실 데이터를 보면서 가장 많이 든 생각은 '이걸로 뭐하지' 였다.

    무엇을 예측할 것인지, 그것을 위해 무엇이 필요할 것인지. 이러한 것들을 규정하는 것에 오랜 시간이

    걸린 것 같다. 단순히 데이터를 파이썬 코드랑 plt 등으로 뽑아 내는 것 자체는 오랜 시간이 안 걸렸기 때문.

     

     

    재미는 있는데 데이터간의 상관 관계를 분석해서 예측하는 과정이 생각보다 재밌기도 하고 어려웠다.

    내가 A, B 데이터를 보니 C라는 결과가 예측된다고 했을 때 이것에 대한 근거를 명확하게 하는 것이 생각보다

    어렵기도 하고 좀 더 반론이 나오지 않도록 완벽하게 하고 싶은 욕심도 있었다.

     


     

    댓글 (비로그인 댓글 허용하지 않습니다.)