Introduction
인공지능을 통해 문제를 해결할 때, 기본적인 인공지능 개발의 절차에는 "데이터 전처리" 라는 단계가 있습니다.
"데이터 전처리"는 정확하고, 좋은 성능의 예측 모델은 잘 정리된 데이터가 필수적으로 기반되어야하기 때문에 존재하는 단계 입니다. 즉, 정교한 예측 분석 모델을 얻기 위해서는 수집된 데이터에 누락된 부분이나, 오차, 또는 데이터 처리에 있어서 가공할 부분은 없는지를 살펴보아야 합니다.
이러한 "데이터 전처리"를 하기 위해서는 데이터를 살펴 보아야 하는 "탐색적 데이터 분석 (Exploratory Data Analysis)" 를 통해 진행하게 됩니다.
"탐색적 데이터 분석 (Exploratory Data Analysis)" 진행하기 위해서 데이터를 눈으로 확인할 수 있도록 "데이터 시각화" 작업이 굉장히 중요합니다.
본 포스트에서는 "탐색적 데이터 분석"에 대해 살펴 보고, 데이터에 따른 시각화 전략, 시각화 방법등이 잘 기록된 사이트를 공유하고자 합니다.
탐색적 데이터 분석(EDA)란?
탐색적 데이터 분석은 데이터를 분석하고 조사하여 주요 특성을 파악하는 데 사용되는 방식을 뜻합니다. 데이터의 사건에 따른 변수들이 어떻게 구성되어 있는가?, 즉 데이터의 분포와 경향성을 파악하는 작업입니다.
제가 생각하는 탐색적 데이터 분석에 대한 생각의 흐름은 다음과 같습니다.
(1) Raw 데이터 수집
(2) 데이터의 사건(행)에 따른 변수(열)을 시각화
(3) 데이터의 사건마다 데이터 수가 밸런스 맞게 구성되어있나?
(4) 값의 전체 평균은 어떤가?
(5) 결측치는 있을까?
(6) 이상치는 있을까? (Domain-specific, 기존에 데이터의 변동성을 안다면)
(7) 데이터의 수집에는 문제가 있을까?
..등등
이러한 부분들을 고려하여서 데이터 클린이 이루어진 후에 예측 모델로 넘어가는 것이 차후에 발생하는 문제들이 줄어들고 오히려 워크 플로우에 시간이 단축되고 예측 모델의 성능에도 직접적인 영향을 주기 때문에 굉장히 중요한 단계입니다.
탐색적 데이터 분석의 핵심
<1. 데이터 백업>
데이터 분석은 Raw 데이터를 통해서 뿐아니라, 가공된 데이터를 통해서도 해야합니다. 즉, 데이터를 가공할 때마다 또는, 변형할 때마다 해당 데이터가 적합한지 분석을 계속 진행하고 수정해야합니다. 그러므로, 항상 백업을 해두는게 좋습니다.
<2. 데이터에 대한 정확한 이해>
데이터 분석에서 가장 중요한 것은 해당 데이터에 대한 "Domain Specific Knowlege" 라고 볼 수 있습니다.
테이블 데이터의 row, column의 의미는 무엇인지?
데이터 값의 Feasibility를 정량/정성적으로 판단할 수 있는가?
(예시. 대한민국 사람의 신장 통계치에 300cm 기재시, 이게 맞는가? 라는 의문)
<3. 데이터 결측치에 대한 합리적인 처리>
수집한 데이터가 모두 채워져 있는 경우는 많지 않을 것입니다. 이때, 결측치를 어떻게 처리할지는 데이터 분석에서 중요한 요소입니다.
수집한 데이터의 결측치 처리는 결국 "Domain Specific Knowlege" 따라 판단해야합니다.
해당 결측치를 특정 값으로 처리할지?, 버릴지? 등등의 판단이 필요합니다.
종국에는, 결측치에 의해 예측모델의 성능에 영향을 주어선 안됩니다.
<4. 데이터 시각화>
데이터 시각화는 "데이터에 대한 통찰을 직관적으로 이해", "팀간의 소통" 을 위한 것입니다.
업무의 의사결정을 하는 사람에게 반드시 시각화를 통해 보여주는 것이 가장 효율적이라는 것은 자명합니다.
여기서 어떻게 보여주느냐 역시, "Domain Specific Knowlege" 따라 판단해야합니다.
데이터 처리자를 위해서~
- 나도 오해/착각 할수 있다!
- 기본적인 것은 꼭 표시하자!( legend, 축, 단위 등)
청자/독자를 위해서 ~
- 사소한 것 까지 알려줘야 한다.
- 저들은 모른다.
- 누구나 이해하기 쉽도록 시각화 하기
- 초등 학생 정도가 들어도 이해할 수 있도록
유용한 시각화 전략 사이트
데이터를 어떻게 표현해야지, 청자가 잘 이해할 수 있을까?
데이터 시각화에서 많은 시간이 걸리는 이유가 되지 않을까 생각합니다. 유용하게 사용될 수 있는 시각화 전략 사이트가 있습니다. 가장많이 사용되는 차트 순위, 차트 표현된 블로그, html, python 코드 등등 많은 부분 영감을 얻어 가실 수 있을거라 생각합니다.
<Datavizcatalogue>
많이 사용되는 차트 순위나, 데이터에 따른 차트 사용에 대한 내용을 정리되어 있습니다.
https://datavizcatalogue.com/search/comparisons.html
<The Python Graph Gallery>
대부분의 차트에 대한 파이썬코드를 공유하고 있습니다.
https://www.python-graph-gallery.com/
'AI Study' 카테고리의 다른 글
[AI Study] Roboflow 탐험하기(2) - 데이터 Annotation 만들기 (0) | 2022.01.26 |
---|---|
[AI Study] Roboflow 탐험하기(1) - 시작, 무료 데이터셋 접근 (0) | 2022.01.20 |
[AI Study] 활성화 함수가 비선형성이 필요한 이유 (0) | 2022.01.19 |
[AI Study] R-CNN 시리즈 훑어 보기 (0) | 2022.01.05 |
[AI Study] Object Detection 1-stage vs 2-stage (0) | 2022.01.04 |