개발/데이터 분석 20

배틀그라운드 유저 데이터 분석해보기 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 변..

도보에 따른 칼로리 소모량 분석해보기 2. 데이터 전처리

이전 내용과 이어집니다. https://songmin9813.tistory.com/39(1. 데이터 인사이트) 각 데이터는 ‘날짜’라는 동일한 값을 가지고 있음을 파악했기 때문에 이를 primary key로 삼아 join을 진행하여 하나의 테이블을 만드는 것이 도움이 될 것이라 판단했다. 이에 join 함수를 이용하여 세 개의 데이터를 한 번에 합치는 과정을 진행했고, 해당 데이터프레임 내 결측치가 존재하는지 info 함수를 통해 우선 확인하였다. 각 열은 167열로 이루어진 것을 확인할 수 있었고, 각 값에 대한 결측치는 존재하지 않는 것을 확인했다. 모두 join을 진행시키고 정규화 전 출력은 상기 그림과 같다. y축이 각 column 별로 제각각 존재했기에 column 별 정규화를 진행하여 그래프를..

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

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

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

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

Analytic SQL 4. Window 절 심화

window 절이 다른 절과 다르게 알아야 하는 것이 조금 있기 때문에 추가적인 장을 만들어 공부해보도록 한다. Analytic SQL의 기본 구문을 다시 한번 상기하고 시작해보도록 하자. (인자) over( -- partition 절 -- sorting 절 -- window 절 ) 상기 코드에서 window 절에 해당하는 구문을 더 자세히 뜯어보면 다음과 같다고 할 수 있다. --window 절의 사용 {rows | range} {between {unbounded preceding | current row | value_expr {preceding | following} } and {{unbounded preceding | current row | value_expr {preceding | follow..

Analytic SQL 3. 집계(Aggregate) SQL

일반적인 순위 함수 사용방법과 더불어 집계 함수를 사용하는 방법에 대해서도 소개하는 시간을 가진다. 집계 함수란? 전부터 계속 말하고 있지만, 특정 컬럼의 재가공과 아주 밀접한 관련이 있는 집계 함수. 그 종류에는 sum(), max(), min(), avg(), count() 등이 있으며, 해당 집계 함수를 window를 이용하여 행 레벨로 자유자재로 집계할 수 있는 기능을 Analytic SQL에서는 제공하고 있다. 아래의 쿼리 예시는 개요에서도 보여준 바가 있는 Analytic SQL의 사용 방법을 보여준다. (인자) over( -- partition 절 -- sorting 절 -- window 절 ) 여기에서 over 구문의 마지막으로 나오는 window의 첫 번째 사용 방법으로 집계 함수를 설명..

Analytic SQL 2. 순위(Rank) 함수

Analytic 함수에서 순위로 작동되는 함수에 대해서 알아보자. 일반적인 함수와 더불어 어떠한 방식으로 사용되는지도 아래의 표를 통해 간단히 살펴본다. 설명 종류 일반적인 순위 rank, dense_rank, row_number 0~1 사이의 정규화 순위 cume_dist(누적 분포), percent_dist 분위 ntile 등 제공하는 여러 함수가 있지만 가장 보편적으로 사용되는 일반적인 순위(rank, dense_rank, row_number)에 대해서 먼저 살펴보도록 하자. 세 가지의 일반적인 순위 함수의 로직은 기본적으로 동일하게 작동하나 공동 순위를 정함에 있어서 다른 차이를 보인다는 특징이 있음 rank 우리가 생각하는 일반적인 등수를 반환. 이때, 공동 순위가 존재할 경우 다음 순위는 공동..

Analytic SQL 1. 개요

그래서 이게 뭔데? SQL을 이용한 분석. 예전부터 존재는 했으나(OLAP 등) Analytic SQL이 나오면서 데이터 분석을 더욱 용이하게 함 RDBMS(Realtional DataBase Management System, 관계형 데이터베이스 시스템)에서 Analytic SQL을 제공한 이후 다시 데이터 분석의 중심에 설 수 있는 계기가 되었음 기존 집계 함수 : Group by를 사용할 때 원본 데이터 집합의 레벨을 변경하여 적용한다. 💡 Group by만을 이용해서 데이터 분석을 하기에는 너무 귀찮고 어렵고 레벨 변경에 한계가 있어! Analytic SQL : 원본 데이터 집합의 레벨을 그대로 유지하면서 적용한다는 차이를 가짐. 💡 Window function(=Analytic Function)을..