일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- count
- 파이썬 몫
- 데이터
- Django
- Join
- pcce 기출문제
- css
- 프로그래머스
- 프로젝트
- map
- ORDER BY
- YOLOv5
- sql
- Python3
- 아이엠어바텐더
- 단어 공부
- where
- GIT
- 코딩테스트 연습
- 파이썬
- 설계
- List Comprehension
- 백준
- Len
- date_format
- 파이썬 슬라이싱
- 슬라이싱
- html
- SQL 고득점 Kit
- python
- Today
- Total
nan + nan = 2nan
[DATAHERO 3기] 1주차 미션 (EDA) 본문
데이터 분석 직무의 인턴을 수행하고 있지만, 아직 많이 부족한 점이 많은 것 같아서 이런 저런 것들을 찾아보다가 DataHero라는 온라인 부트캠프 형식의 데이터 분석 과정이 있어 신청을 했다.
아무래도, 개인적으로 이 분야에 대한 공부를 하는데 있어 조금이라도 도움이 되지 않을까 하는 마음이 컸고, 그 중에서도 항상 데이터를 뜯어보고 시각화를 하다 보면 뻔한 인사이트를 도출하게 되는데 보다 넓은 시각에서 데이터를 바라보는 노하우를 배우고 싶었다.
1주차 미션은 EDA에 관한 내용이었다.
EDA(Exploratory Data Analysis, 탐색적 데이터 분석)는 벨연구소의 수학자 ‘존 튜키’가 개발한 데이터분석 과정에 대한 개념으로, 데이터를 분석하고 결과를 내는 과정에 있어서 지속적으로 해당 데이터에 대한 ‘탐색과 이해’를 기본으로 가져야 한다는 것을 의미한다고 한다.
얼마 경험이 많지 않지만, 직접 느꼈던 부분은 데이터를 수집, 전처리, 모델링 하는 과정에서 가장 중요한 것은 데이터를 얼마나 잘 다루느냐가 관건이었던 것 같다. 좋은 모델을 쓰고, 파라미터를 조정하면서 모델의 성능을 올리는 작업은 크게 영향을 미치지 않았던 것으로 기억한다. 그렇기 때문에, 처음부터 어떤 데이터를 어떻게 활용할 지에 대한 목적을 정확히 하고, 목적에 맞게끔 데이터를 다루는 작업이 가장 중요하기 때문에 이 부분에 대한 경험을 늘려가면서 나만의 노하우를 쌓는 것이 중요하다고 느꼈다.
DataHero 측에서 제공 받아 사용한 데이터셋은 Hans rosling의 dataset이다.
HeartCount에서 계정을 지급 받아 시각화 툴을 사용해서 직접 실습을 해봤다.
1. 숫자(Y)와 숫자(X) 간 관계
1-1. 기대수명과 상관관계가 가장 높은 숫자형 변수의 관계를 scatterplot(산점도)으로 시각화
대륙 간 색을 달리 해서 기대 수명과 가장 상관관계가 높은 5세 이하 영유아 1,000명 당 사망자 수와의 관계를 산점도로 표현해봤다. 사망자 수가 늘어날수록 기대 수명이 낮아지는건 어찌 보면 당연한 관계이기 때문에, 대륙 별 분포를 살펴보는 것이 더 의미가 있을 것으로 판단했다.
1-2. 위에서 찾은 상관관계의 세기가 가장 큰 대륙(Continent)을 찾아 scatterplot으로 시각화
대륙 별로 분할해서 살펴본 결과, Americas / Oceanina 가 각각 0.96으로 가장 높은 음의 상관도를 보이는 것을 확인했다.
즉, 1,000명 당 사망자 수가 증가할수록 기대수명은 줄어드는 방향성이 가장 뚜렷한 데이터임을 의미한다.
Oceania의 경우, 데이터의 크기가 크지 않지만, 보통 1,000명당 사망자 수가 30명 이하에서 데이터가 밀집하게 형성되어 있어 기대 수명의 평균치가 높게 나오는 것으로 확인할 수 있었다.
Americas의 경우 반비례하는 선형 그래프의 방향성과 거의 비슷한 흐름을 보이는 산점도의 형태로 나타났다. 사망자 수 200 ~ 220 구간에서 이상치가 존재하기는 했지만, 대부분은 선형성을 띄며 높은 음의 상관관계를 보이는 것으로 확인했다.
1-3. 국가별 평균 기대수명과 소득을 보여주는 bubble chart
해당 그래프는 제출 후 블로그를 작성하면서 Bubble chart의 형태인지 그저 산점도인지 의문이 든다.
내가 알기로는 Bubble chart의 경우, 데이터의 크기에 따라 원의 크기를 달리해 보다 직관적으로 설명하는 데이터인 것으로 알고 있는데, 해당 툴에 대한 이해가 아직 부족해서 산점도로 밖에 표현을 못 했던 것 같다.
해당 그래프를 보았을 때, 보통 평균 소득이 증가함에 따라 기대수명이 평균적으로는 증가하는 양상을 보이는 것을 확인할 수 있다. 다만, 데이터의 분포가 곡선의 형태로 초반에 급격하게 형성이 되다가 완만하게 기우는 것으로 봐서 소득이 낮은 국가들도 기대수명이 평균적으로 높은 국가들도 존재하는 것으로 봐서 무조건적으로 평균 소득이 낮다고 해서 기대 수명이 낮은 것은 아니라는 결론을 도출할 수 있었다.
2. 숫자(Y)와 범주(X) 간 관계
2-1. 전 기간 동안 국가별 평균 인구 바차트 시각화 (인구숫자 내림차수로 sorting)
Bar chart로 국가 별 평균 인구 수를 내림차순으로 시각화를 해보았다. 국가 수가 워낙 많아 해당 국가의 정보를 마우스를 올려두지 않는다면 한 눈에 파악하기 어려웠다. 다음에는 데이터를 축소해서 별로 차이가 없고 변화가 크지 않으며 적은 데이터들은 배제하고 상위 10 ~ 20개의 데이터만 시각화해서 해당 국가의 정보도 한꺼번에 볼 수 있는 방향으로 하는 것이 중요할 것 같다.
2-2. 2010~2014년 기간 동안 국가별 평균 일인당 소득 ranking 시각화
이 또한 위의 Bar chart의 문제점과 비슷한 것 같다. 가장 높은 평균 소득을 가지는 싱가포르, 쿠웨이트 등에 대한 데이터를 이 표만 보고서는 알기 힘들기 때문에, 해당 데이터를 잘 볼 수 있게끔 데이터의 수량을 조절해 시각화를 해야겠다.
2-3. 대륙(X축)별 x 국가(하위그룹)별 Income의 총합을 stacked bar chart로 표현
해당 그래프로서 확인할 수 있는 부분은, 평균 소득이 유럽, 아시아, 아메리카 대륙 순으로 높다는 것이다. 다만, 대륙에 속한 국가의 절대적인 수 차이 등 때문에 이러한 결과가 나온 것 같다. (Asia에 한국 데이터는 존재하지 않았던 것으로 기억한다.) 이러한 절대적인 수는 stack된 색을 통해 유추해볼 수 있었다.
- 인구 당 평균 소득이 아니라 총 소득을 표현했어야 하는데 평균으로 해서 이러한 결과가 나왔을수도..
3. 분포와 Percentile
3-1. 대륙별 기대수명의 분포를 박스플롯(boxplot)으로 시각화 (boxplot 해석해 보기)
대륙 간 기대수명의 분포를 Boxplot으로 표현해보았다.
우선, 중앙값의 경우 오세아니아, 유럽, 아시아 순으로 높음을 확인할 수 있었다.
오세아니아의 경우 최소값과 최대값의 차이가 크지 않았다. 반면 유럽의 경우, 1분위 수와 3분위 수의 간격은 오세아니아와 비슷하지만, 최소값과 최대값 간 차이가 큼을 알 수 있다. 또한 최소값 이하의 값(이상치)가 다소 존재하는 데이터로, 가장 데이터가 많은 대륙이기 때문에 이러한 결과값이 나왔을 것이라는 유추를 해봤다.
미 대륙의 경우 최소값과 최대값의 간격이 가장 컸고, 최소값 / 최대값과 1분위 수 / 3분위 수의 간격이 매우 좁게 형성됨을 알 수 있었다. 데이터가 많지 않은데, 국가 간 기대 수명의 차이가 크기 때문에 해당 결과가 나타남을 유추해볼 수 있다.
3-2. 소득 percentile(5분위) 구간별 인구 percentile(5분위)에 따른 평균 기대수명 시각화
소득 분위가 늘어남에 따라 기대 수명이 높아진다는 것은 당연히 유추해볼 수 있는 결과였다. 다만, 해당 소득 분위 내에서도 인구를 분위수로 나누었을 때, 차이가 생기는데 인구에 대한 분위수를 나누는 기준이 무엇인지 정확하게 모르겠다. 해당 기준을 정확히 안다면, 현재 나타나는 양상에 대해서 조금 다른 인사이트를 얻는게 가능하지 않을까 생각해봤다.
4. 시계열 추이
4-1. Oceania 대륙에 속한 국가들을 대상으로 평균 기대수명의 추이를 시각화
오세아니아에는 호주, 뉴질랜드 두 국가만 존재하기 때문에, 해당 두 국가에 대한 연도 별 기대 수명 추이를 Lineplot으로 시각화해봤다.
과거에 비해 시간이 지남에 따라, 전반적으로 의료 수준, 먹거리 등 삶의 질이 개선되기 때문에 기대 수명은 상승하는 것은 당연하게 유추할 수 있었다.
다만 중간, 완만하지 않은 초, 중반 구간의 경우 기대 수명의 등락에 대해서 질병 혹은 전쟁 등으로 인한 이유를 들어 유추해볼 수 있지 않을까 생각이 든다.
4-2. 소득 수준의 등락(변동)이 가장 컸던 국가를 선택(선택보기)하여 시각화
해당 데이터는 쿠웨이트의 연도별 평균 소득 수준에 대한 시계열 데이터를 시각화한 결과이다.
초반에는 완만하게 성장을 하다, 어느 순간 급격하게 성장하고 급격하게 하락하는 구간에서는 아무래도 중동 국가이기 때문에 석유 사업을 통해 국가의 급격한 성장을 이뤄냈지만, 국제적인 상황, 정치, 내전 등 다양한 요인들로 인해 급격히 감소하며 편차가 큰 데이터의 양상이 나타나지 않았나 싶다. 쿠웨이트의 정치, 경제, 국제적인 역사, 배경 등을 자세히 살펴보면서 해당 그래프와 대조해본다면 데이터에 대한 유추를 심화해서 해볼 수 있을 거라는 생각이 든다.
** 해당 데이터와 시각화 툴(HeartCount)은 DataHero 3기에 참여해 제공 받아 사용했습니다.
'Statistics > Machine Learning' 카테고리의 다른 글
[NLP] 딥러닝을 이용한 자연어 처리 입문_01)토큰화 (2) | 2022.09.08 |
---|---|
[DATAHERO 3기] 2주차 미션 (회귀분석) (0) | 2022.07.26 |
[M/L] GridSearchCV, RandomSearchCV (0) | 2022.05.21 |
[통계] 딥러닝 모델 성능 평가 지표 - mAP (0) | 2022.05.19 |
[인턴] Data Cleansing 및 Undersampling, Modeling (0) | 2022.04.27 |