데이터 사이언티스트 이거나 머신 러닝을 학습하고자 하는 사람들이라면 EDA 가 탐색적 데이터 분석(Exploratory Data Analysis)을 의미한다는 것을 알고 있을 것입니다.
이번 포스팅에서는 EDA가 단순한 준비 단계가 아니라 머신러닝 프로젝트의 성패를 좌우할 수 있는 중요한 단계인 이유에 대해서 설명하려고 합니다.
EDA란?
EDA는 ML 알고리즘이나 모델을 적용하기 전에 데이터를 탐색하고 이해하는 프로세스입니다. 여기에는 데이터의 패턴, 이상치, 이상치를 시각화 하고, 요약하여 찾는 작업이 포함됩니다. EDA는 데이터에 대한 통찰력과 직관을 얻는 데 도움이 되며, 이를 통해 ML 알고리즘 선택에 도움을 주고, 안내하고 결과를 개선할 수 있습니다.
EDA가 ML에서 수행되는 이유
데이터 품질 문제를 식별하고 해결하기 위해
여기에서는 누락된 값, 잘못된 라벨, 중복 또는 오류 문제를 포함합니다. 이러한 문제는 ML 모델의 성능과 정확성에 영향을 미칠 수 있으므로 조기에 처리하는 것이 좋습니다.
데이터를 이해하기 위해
EDA는 데이터의 분포, 범위 및 변동성을 파악하는 데 도움이 됩니다.
적절한 ML 알고리즘을 선택하기 위해
EDA를 통해 데이터를 이해하면 데이터를 향상하고 기계 학습에 더 적합하게 만들 수 있는 확장, 정규화, 변환 또는 feature engineering과 같은 올바른 ML 알고리즘을 선택하는 데 도움이 됩니다.
가장 관련성이 높은 feature를 선택하기 위해
EDA는 변수 간의 관계와 상관 관계를 발견하는 데 도움을 줍니다. 이를 통해 ML 모델에 가장 관련성이 높고 유익한 함수를 선택하고 다중 공선성 또는 중복성을 방지할 수 있습니다.
새로운 feature 생성 및 엔지니어링을 위해
EDA는 기존 feature를 결합하거나 파생하여 새로운 feature를 생성 및 생성하기 위한 영감을 제공하거나 방법을 보여줍니다.
특이치 및 이상치를 감지하고 처리하기 위해
이상치는 데이터의 정상 범위에서 벗어나는 극단적인 값입니다. 이상치는 데이터의 예상 패턴이나 동작을 따르지 않는 값입니다. 이상치와 이상치 모두 ML 모델의 성능과 일반화에 영향을 미칠 수 있습니다.
따라서, 이상치를 식별하고 처리 방법(예: 제거, 교체 또는 유지)을 결정하는 것이 중요합니다.
데이터에 대한 가정과 가설을 테스트하기 위해
EDA는 확실한 결론을 도출하기에는 충분하지 않지만 데이터에 대한 직관적인 가정/가설을 테스트하는 데는 도움을 줍니다.
예를 들어, 데이터가 어떻게 보여야 하는지, 변수가 서로 어떻게 상호 작용해야 하는지에 대한 사전 지식이나 기대치가 있을 수 있습니다. EDA는 이러한 가정과 가설을 검증하거나 무효화하고 그에 따라 조정하는 데 도움을 줄 수 있습니다.
발견한 내용과 통찰력을 다른 사람에게 전달하고 제시하기 위해
내가 제시한 통찰력은 다른 사람들이 이해할 때만 가치가 있습니다.
EDA에는 복잡한 정보를 간단하고 직관적인 방식으로 전달하는 데 도움이 되는 차트, 그래프, 플롯, 지도 등의 시각화 생성을 포함합니다. 시각화는 또한 데이터로 스토리를 전달하고 청중을 위한 핵심 사항과 시사점을 강조하는 데 도움을 줍니다.
결론
ML 모델을 구축하고 직관만을 기반으로 feature를 선택하는 것은(EDA를 힘들게 수행하지 않고) 나쁜 습관이며 모델의 능력을 약화 시킵니다.
탐색적 자료 분석을 실제로 어떻게 수행해야 하는 지 궁금하시다면, 아래 포스팅 글을 참고하시면 됩니다.
감사합니다.