[EDA] 탐색적 데이터 분석

Meosun·2024년 8월 23일

EDA

현재 EDA(탐색적 데이터분석)은 AI 모델을 만들거나, 분석할때 빠질 수 없는 부분이다.
과거 데이터 분석은 통계적 데이터 분석에 기반하였는데, 통계적 데이터 분석은 추론(Inference)가 주요 핵심이었다.
현재는 추론 뿐만 아니라 시각화 및 각종 작업을 통한 데이터들의 형태를 낱낱이 파헤치는데 목적이있다.

이작업이 제대로 이루어지지 않으면, 추후 AI 모델 작업이나 데이터 관련 작업시 문제가 생길 여지가 많으므로 꼼꼼히 이루어져야 한다.
또한 데이터 처리 작업을 하면서도 지속적으로 EDA를 하여 데이터의 흐름을 파악하여야한다.

왜 데이터에 초점이 맞춰져 있는가?

데이터에 초점이 맞춰진 이유로 3가지를 이야기하려고한다.

1. 해석

현재 문제 혹은 현재 발생된 상황에 대해 해석을 해야하는 일이 종종 있다.
경험 기반으로 추론하여 해석하기도 하지만, 요즘은 데이터 기반으로 해석을 한다.
과거 혹은 현재 데이터 기반으로 현재 상태를 파악하여 패턴과 같은 결과물을 만들어낸다.
또한 이러한 결과물을 바탕으로 왜 발생했는지 혹은 왜 문제가 생겼는지를 해석할 수 있게 된다.

2. 의사결정

1번의 해석을 바탕으로 우리는 데이터에서 인사이트를 얻을 수 있었다.
이후 문제를 해결하기 위해서 어떻게 진행할지에 대해 의사결정을 해야한다.
그렇다면 이 의사결정을 위해 해석에서 활용된 특정 데이터를 기반 혹은 바탕으로 사용하게 된다.

데이터는 의사결정에서도 빠질 수 없는 중요한 포인트가 된다.

3. 예측

1번의 해석과 2번의 의사결정이 끝났다면, 그다음에 같은 문제가 발생하지 않도록 미리 파악해야한다.
이 과정이 예측이다.
예측에서는 과거 데이터에서 패턴을 파악하고 예측하기도 하며,
통계 모델AI/ML을 통한 다양한 모델 방법론을 활용하기도 한다.
또한 경험을 바탕으로 예측하기도 하는데, 요즘은 대부분 데이터를 기반으로한 예측 모델을 만들어 하기때문에 데이터는 예측에서도 빠질 수 없는 중요한 포인트이다.

데이터관련 업계의 문제점?

데이터로 모든 것이 예측 가능하고, 해석도 가능할 것으로 보인다.
하지만 이것은 잘 못되었다고 말할 수 있다.
데이터의 오남용으로 인해, 업계간에 문제도 생기고 개인간의 문제도 발생된다.

그렇다면 무엇때문에 데이터 업계에서 오남용 혹은 문제가 발생하는 걸까?

1. 명확한 목표의 부재 및 잘못된 Target

데이터를 활용할때는 내가 하고자하는 명확한 목표가 있어야한다.
하지만 몇몇 사람들은 내가 세운 목표가 명확하지 않음에도, 명확하다고 착각하는 경우가 있다.

예를 몇가지 들자면

  • 주식과 코인을 차트만으로 예측할 수 있다
  • 지구의 미래는 현재 상황만으로 예측 가능하다
  • 부동산 시장은 실 거래 현황만으로도 예측 가능하다.

위의 Case가 어떻게 보면 가능한 것처럼 보이지만, 실제로 그것 외에도 많은 요인이 존재한다.
또한 명확하게 어떠한 상황을 무엇을 가지고 예측하는지가 아닌, 일부 데이터만을 가지고 불명확한 미래에 대해 예측하려고한다.
이러한 예측은 잘못된 예측이 될 확률이 높다.

2. 데이터와 리소스의 부족(부재)

가끔 일을 하다보면, 데이터가 없음에도 AI 모델을 만들어 달라는 제안을 받는다.

실제로 들었던 이야기를 예로 들어 보겠다.

  1. 요즘 GPT가 유행이라는데 우리회사를 위해 하나 만들어줘
    : 데이터도 없고 GPU는 없지만, 금방 하는 거 아니야?
  2. 우리 해외 업체에 물건을 납품해야하는데, 그 업체의 사정에 딱 맞게 동작하는 AI 모델을 만들어줘
    : 마찬가지로 데이터도 없고 GPU는 없지만, 그냥 만들어서 넣어줘

이뿐만 아니라 많은 이야기들이 있었지만, 대체적으로 보면 데이터가 한두개만 있어도 있다고 생각하는 사람들이 종종 있다.
AI/ML모델을 쓸 수 있을 정도로 만드려면, 생각 보다 많은 데이터와 리소스가 필요하다.

하지만 많은 사람들이 데이터 몇개만으로도 충분하고 GPU가 부족하더라도 가능할 것이라고 생각한다.
이러한 문제로 인해 데이터 업계에서 문제가 발생하기도 한다...

개발자 살려...

3. 데이터에 대한 잘못된 인식

가끔 데이터가 모든 것을 해결해 줄 것이라고(=만능) 생각하는 사람들이 있다.
과거 데이터를 적재를 잘해놓았다고, 많은 데이터가 있다고 하여 데이터 분석을 해달라는 의뢰를 받은 적이 있었다.

데이터가 정리된 상태로 적재가 잘되어 있을 것이라고 기대하고 간 나는...
실제로 그렇지 못한 환경에 부딪혔다.

적재가 되어있다던 데이터는 위치도 제각각에 저장되어 있으며, 일정한 규칙 또한 없었다.
또한 많다던 데이터는 일정한 패턴이나 정리 없이 무작정 적재만 되어있었다.

또다시 눈물이...
의뢰인은 위의 데이터만 있어도 더이상의 처리 없이 분석이 빠르게 될 것이라고 생각했다.

실제는 데이터 가공하고 적재하는 것을 정리하는데만 오래 걸렸다.
또한 분석할 수 있는 데이터는 실제로 많지 않았다..

이처럼 데이터만 있으면 모든 것이 될 것이라고 생각하는 사람들 또한 종종 있다.

어떻게 하면 데이터를 잘 활용할 수 있을까?

데이터를 잘 활용하기 위해서는 데이터 문해력이라는 것을 길러야 한다.

데이터 문해력 이란

데이터를 건전한 목적과 윤리적인 방법으로 사용한다는 전제하에,
현실 세상의 문제에 대한 끊임없는 탐구를 통해 질문하고 대답하는 능력

그렇다면 데이터 문해력은 어떻게 기를 수 있을까?

대표적으로 데이터 문해력을 기르는 방법은 아래와 같다.

1. 좋은 질문을 할 수 있어야 한다.
2. 필요데이터를 선별하고 검증할 수 있어야한다.
3. 데이터 해석을 바탕으로 유의미한 결론을 낼 수 있어야 한다.
	(Modeling 포함)
4. 가설 기반 혹은 A/B 테스트 후, 결과를 판별할 수 있어야 한다.
	(Model간 비교/선택 포함)
5. 의사결정자들이 이해하기 쉽게 분석 결과를 표현할 수 있어야한다.
	(보기 좋은 시각화 혹은 정리)
6. 데이터 스토리 텔링을 통해 관리자가 전체 그림을 이해하고, 분석 결과에 따라 실행할 수 있도록 만들 수 있어야한다.

위와 같은 방법을 통해 데이터 문해력을 기르고 더 나아가 목적에 맞는 EDA를 잘 진행할 수 있을 것이다.

EDA 진행 방법

그렇다면 AI 모델 학습을 위한 EDA는 어떻게 진행하면 될까?
일반적인 AI 공모전 혹은 모델 학습을 예로 들어서 설명 하겠다.

1. Input Data 파악
(데이터 유형 / 유사 데이터 파악)
2. 데이터 전처리
(Input Data를 어떻게 가공할 지)
3. 모델 후보 선정
(AI 모델과 학습 방법론 선정)
4. Target Data와 Metric 정보 파악
(Baseline 모델 / Baseline 점수 파악)

위의 순서로 EDA를 진행하여 모델을 만드는 것이 일반적이다.

데이터 선별 과정

EDA를 잘 진행하기 위해서, 데이터를 선별하는 과정 또한 중요하다.
데이터를 잘 선별하기 위해선 기준이 있어야 하는데, 그 기준은 아래와 같다.

1. 데이터 수집이 올바르게 되었는지?
2. 이상치(Outlier)는 어떤 기준으로 선별 되는지?
3. 이상치(Outlier)는 이후 분석에서 어떻게 사용할지?
4. 결측치가 생긴 부분은 어느 부분인지?
5. 결측치가 있는 부분을 사용할 것인지?
6. 외부 데이터를 가져온 다면 어떤 것이 가장 큰 차이를 만들지?
7. 새로 만들거나 생길 데이터에서 고려하지 못한 부분이 어떤 것이 있을지?(Edge Case)

모델 선정 방법

AI 모델을 선정할때 가장 중요한 것은 결과이지만, 실제 Product를 만든다면 배포 또한 중요하게 고려해야한다.

결과만 중시한다면, 성능적인 부분만 고려해도 되지만
배포가 고려된다면 시간비용적인 측면 또한 고려를 해야한다.

배포시 모델 선정 방법에 대해 간단하게 정리 해보겠다.

1. 학습시간(Training Time)
2. 예측/추론 시간(Inference Time)
3. 비용(Cost)
4. 안정성과 보안(Stablility and Security)
5. 지속적 업데이트를 위한 비용 과 방법 (CI/CD)

결과물

해당 EDA모델작업이 완료되면 결과물로써, 타인에게 공유를 해야한다.
이때 EDA에서는 해석을 도울 방법론을 고려해야하는데, 가장 많이 사용되는 것은 시각화이다.

결과를 시각화 하게되면 미적 요소로 인해 보기 편하고 해당 부분으로 인해
파악해야하는 부분이 명확해지며, 설득에 효과적이게 된다.
여기에 부족한 부분은 테이블형태로 제공하게 되면, 더욱 적절한 EDA결과물이 만들어 지게 되는 것이다.

profile
데이터와 AI를 잘 활용하는 Backend Developer가 되자

0개의 댓글