데이터분석 40

[Python/Analytic] 배틀그라운드 유저 데이터 분석 코드 공유

본 게시글은 필자가 배그 데이터 시각화 프로젝트를 진행하며 작성한 데이터 가공 코드를 자동화버전으로 재가공하여 배포하는 배포용 코드이다. Python으로 작성되었으며, 필자의 가공이 들어간 'phase', 'ai' 정보를 제외한 모든 정보는 아래의 PUBG Open API 사이트에서 확인해 볼 수도 있다. https://developer.pubg.com/(PUBG Open API) 개인 전용 토큰 키 발행 필수 해당 코드를 어떠한 생각으로 짰는지 궁금하다면 이전의 시리즈들을 참고하면 좋을 것 같다. https://songmin9813.tistory.com/43(1. 프로세스 수립) https://songmin9813.tistory.com/44(2. 데이터 인사이트 및 추출) https://songmin9..

Steam 버전 배틀그라운드 유저 데이터 분석해보기

개인 프로젝트 결과를 토대로 어떤 데이터 동향이 있는지 파악해 보는 시간을 가져보고자 합니다. 개발자 관점에서 어떤 프로세스와 고난이 있었는지 궁금하시다면 아래의 URL을 참고해 주시면 감사하겠습니다. https://songmin9813.tistory.com/43(1. 프로세스 수립) https://songmin9813.tistory.com/44(2. 데이터 인사이트 및 추출) https://songmin9813.tistory.com/49(3. 데이터 가공) https://songmin9813.tistory.com/50(4. 데이터 추가 가공 및 시각화) 시작 하기에 앞서 제가 만든 결과물은 아래의 URL에서 확인하실 수 있습니다. https://public.tableau.com/app/profile/s..

배틀그라운드 유저 데이터 분석해보기 4. 데이터 추가 가공 및 시각화

완성된 프로젝트를 보고 계십니다. 분석 결과만을 보고 싶으시다면 아래의 URL에 접속해주세요. https://songmin9813.tistory.com/51(Steam 버전 배틀그라운드유저 분석해보기) 이전 내용과 이어집니다. https://songmin9813.tistory.com/49(3. 데이터 가공) 데이터 추가 가공 - AI 여부 파악하기 페이즈 별 생존 시간이라는 새로운 가공 데이터 외에도 여러 정보들을 살펴보고 있던 도중 흥미로운 정보를 하나 찾아냈다. 아래는 매치 별 유저에게서 뽑아낼 수 있는 정보의 예시를 JSON 형태로 표현하고 있다. { "DBNOs": 1, "assists": 0, "boosts": 0, "damageDealt": 67.100006, "deathType": "bypl..

배틀그라운드 유저 데이터 분석해보기 3. 데이터 가공(+팁)

완성된 프로젝트를 보고 계십니다. 분석 결과만을 보고 싶으시다면 아래의 URL에 접속해주세요. https://songmin9813.tistory.com/51(Steam 버전 배틀그라운드유저 분석해보기) 이전 내용과 이어집니다. https://songmin9813.tistory.com/44(2. 데이터 인사이트 및 추출) 사람마다 사용하거나 손에 익은 언어가 있다고는 하지만. 그리고 SQL을 능숙히 다루기 위해 시작한 프로젝트이기도 하다만. 결국 손에 맞는 Python을 먼저 찾게 되더라...ㅋㅋㅋ 지금 같은 경우에는 내가 원하는 데이터를 처음부터 다시 뽑고 나만의 데이터 마트를 만드는 것이 주된 목적이었기 때문에 SQL보다는 Python을 이용한 데이터 가공을 주된 목적으로 삼았다. SQL을 따로 배워서..

배틀그라운드 유저 데이터 분석해보기 2. 데이터 인사이트 및 추출

완성된 프로젝트를 보고 계십니다. 분석 결과만을 보고 싶으시다면 아래의 URL에 접속해주세요. https://songmin9813.tistory.com/51(Steam 버전 배틀그라운드유저 분석해보기) 이전 내용과 이어집니다. https://songmin9813.tistory.com/43(1. 프로세스 수립) 데이터 타입 및 추출 방법 PUBG 내 모든 데이터의 반환은 JSON을 통해 이루어지는 것을 확인했다. 몇 개의 예시 Execute를 통해 Request 되는 URL의 특징을 파악해 낼 수 있었고, 이를 코드에 담아 추출하는 과정을 담았다. 다만 인증 여부를 떠나 curl 형식으로 작성되어있는 항목이 많기에 request url을 직접 넣는 것보다 curl 코드를 request 형식으로 변환한 후 ..

배틀그라운드 유저 데이터 분석해보기 1. 프로세스 수립

완성된 프로젝트를 보고 계십니다. 분석 결과만을 보고 싶으시다면 아래의 URL에 접속해주세요. https://songmin9813.tistory.com/51(Steam 버전 배틀그라운드유저 분석해보기) 게임 데이터 시각화 프로젝트 시작합니다. 다사다난했던 2022년을 보내고 새로운 해를 맞이하면서 지금까지 관심 있게 보고 있던 항목에 대한 개인 프로젝트를 진행해보고자 한다. 대주제로는 'Open API가 존재하는 게임 데이터의 시각화 프로젝트', 그 첫 번째 프로젝트로 모바일로 자주 즐기곤 했던 '배틀그라운드'를 기준으로 데이터를 수집하고, 시각화하는 시간을 가져보고자 한다. 이번 프로젝트를 통해 얻고자 하는 것은 크게 두 가지이다. 1. PUBG Open API에서 가공할 수 있는 데이터의 확인 및 추..

Tableau 대시보드 제대로 활용하기 - 콘텐츠 구성편

파이썬이라든가, SQL을 배우는 것은 좋은데, 이를 시각적으로 표현하는 것 또한 사용자에게 있어서 굉장히 중요한 경험 중 하나라는 것을 알고 있다. 정제된 데이터를 사용자에게 시각적으로 보여주기 위한 툴로 Tableau를 소개하고, 이를 활용하는 방법에 대해 설명하는 시간을 가져본다. Tableau 대시보드를 사용함에 있어서 부족함을 느낄때마다 작성해보는 비정기적 시리즈이니 다음 편을 손꼽아 기다릴 필요까지는 없을 것 같다. 어떤 Dashboard가 좋은 걸까? 1. 전체론적인 대시보드(Wholistic) 만드는 부분이 하나하나의 조합된 정보체계이며, 디테일을 수반하는 큰 그림이 만들어져야 한다. 이는 부분이나 디테일을 포기하면서 전체를 보여주는 것이 아니라는 말과 같음. 디테일이 모여 모여 하나의 큰 ..

도보에 따른 칼로리 소모량 분석해보기 3. 선형 회귀 분석(+분석 코드)

이전 내용과 이어집니다. https://songmin9813.tistory.com/40(2. 데이터 전처리) 독립 변수의 개수도 적고, 데이터의 상관관계 또한 우상향 그래프를 그리고 있기에 단순 선형 회귀 모델을 이용한 ML 모델을 만들어보고자 한다. 모델을 만듦에 있어서 독립 변수는 distance, steps로, 종속 변수는 calories로 둔 채 최소 자승법을 이용한 회귀 분석을 진행한다. 우상단 R-squared 값이 0.786으로 약 78% 설명력을 보이고 있지만, distance와 steps의 p-value 값이 충분한 신뢰도를 보이고 있지 않다. (각각 0.982, 0.582) 이는 각 값이 서로를 설명할 수 있는 다중 공선성 문제라 판단했기에 p-value가 가장 높은 distance 변..

도보에 따른 칼로리 소모량 분석해보기 1. 데이터 인사이트

해당 프로젝트는 학교에서 진행한 개인 프로젝트를 게시글 형태로 가공하여 발행하는 시리즈이다. 아마 현재까지 발행된 게시글 중 필자의 주관적인 판단이 가장 많이 들어간 시리즈이지 않을까 싶다. 사실 데이터 분석과 관련된 인사이트를 많이 보여주고 싶은 마음이 제일 크다. 도대체 이 작자가 어떤 데이터에 대해 어떤 생각을 가지고 있는지 소개하는 시간을 가져보도록 하자. 프로젝트로 주어진 3개의 데이터를 분석하고 시각화하는 과제를 부여받았다. 이에 주어진 3개의 데이터의 종류는 다음과 같다. results_calories.txt results_distance.txt results_stpes.txt 학교에서는 이 세 개의 파일을 띡 주고 '분석해 봐~'하는 것으로 과제가 주어졌기에, 어떤 방식으로 분석해야 하는지..

Analytic SQL 5. 이동 평균(Moving Average)과 유의 사항

다른 집계 함수와 데이터 처리 관련 개념을 따로 빼놓기는 했다. 이는 window절의 심화 과정보다는 응용에 가까운 개념이라 판단되어 새로운 장으로 설명해보도록 한다. 이동 평균(Moving Average)이란? 평균을 구하는 범위 구간을 이동시키면서 구하는 평균값을 의미함. 지금껏 자주 사용되는 누적합과 더불어 누적 평균도 존재는 하다만, 누적평균보다는 이동 평균이 더 보편적으로 쓰이는 편. 여기서의 범위 구간 = 이미 배웠던 window의 정의와 연결시켜 생각한다면 쉽게 이해할 수 있을 것 같다. 이를 구하는 이유는 뭘까? 주식과 같은 항목처럼 단기간 변동성이 심한 항목들에 대해서 이동 평균을 접목시키면 효과적인 시각화가 가능하다. 전반적인 추세를 확인하기 어려운 항목에 대해 효과적인 집계/시각화가 ..