Data Anaysis Process

·2023년 5월 13일
0

*모든 내용은 이미지 출처[2] : 데이터 분석? 그거 뭔데, 어떻게 하는건데 ! by 정준호를 참고 했습니다.

🔎 데이터 분석 과정

이미지 출처[1] : 제로베이스
이미지 출처[2] : 데이터 분석? 그거 뭔데, 어떻게 하는건데 !

데이터 분석 : 데이터를 기반으로 학습하고 적용하는 일련의 과정


🔎 문제 정의

가장 중요하지만 가장 어려운 단계
무엇을 위해 분석을 진행하는지, 어떤 데이터를 가지고있는지, 어떤 데이터가 필요한지, 어떤 방향성으로 분석할 것인지 정의하는 과정

문제 정의를 어느 정도 고민했느냐가 프로젝트의 성패를 가른다

문제 정의 이후에 개괄적으로 어떤 분석방법을 사용해야 할 지 방향성을 잡을 수 있다.

  • 분석의 목적 - 지도학습/비지도학습
  • 학습 방법 - 비지도-군집/차원축소/추천, 지도-분류/회귀 등 분석방법

어떤 분석방법을 사용할지 결정하였으면 이에 해당하는 머신러닝 모델까지 범위가 특정된다.


🔎 데이터 수집 및 가공

데이터 수집

기본적인 관점에서 필요한 데이터를 선별해서 수집합니다. 외부의 데이터 중에서 필요한 데이터는 수집 가능성여부를 파악하고 어떻게 수집할 것인지 계획.

탐색적 데이터 분석(Explorary Data Analysis)

수집한 데이터가 어떻게 구성되어있는지 파악하는 작업
정형데이터인지 비정형데이터인지, 데이터 사이즈는 어떻게 되는지, 데이터의 구조는 어떻게 구성되었는지, 데이터 속성과 분포는 어떤지, 결측값과 이상치는 어느정도인지 파악하고 탐색한다.

  • 데이터 속성 및 분포
  • 데이터 구조
  • 정형/비정형
  • 기술통계량
  • 데이터 사이즈
  • 결측값/이상치

탐색적 데이터 분석은 데이터 전처리 후에도 진행된다. 앞단에서의 EDA가 데이터의 구조파악에 목적을 두었다면, 데이터 전처리 후에는 조금더 분석 모델링에 초점을 두고 EDA를 진행한다.
독립변수들간의 관계라던가, 종속변수에 영향을 미치는 독립변수 파악 등 피쳐 엔지니어링 없이 변수들 자체의 관계를 파악하는데 사용된다.

데이터 전처리(Data Preprocessing)

탐색적 데이터 분석을 통해 데이터 핸들링 방향을 파악한 후 데이터 전처리를 통해 데이터 셋을 만들어야 한다. 결측치를 어떻게 처리할 지(대체, 삭제) 결정하고, 이상치를 다루는 방법을 고민하며 변수간의 단위와 분포가 다르다면 Scaling 작업을 통해 정규화 한다. 또한 변수 하나하나의 타입도 머신러닝 모델에 맞게 변경해 주는 작업을 한다.

Feature Engineering

Feature Engineering 과정은 더 나은 모델 알고리즘 성능을 위해 Raw Data로 부터 Feature를 만들거나 재구성하는 과정

변수들간의 결합으로 새로운 피쳐가 나오기도하고, 비슷한 변수들로 인해 모델이 복잡해지는 것을 방지하기 위해, 차원축소를 통해 변수를 대표하는 피쳐를 만들어 대체하거나 독립변수간의 상관성이 발견되면 변수를 제거하기도 하면서 모델에 사용할 Feature를 특정해 가는 작업이다.
범주형 타입의 변수가 있을때는 모델에 학습 가능한 데이터의 형태로 변환해 주어야 하는데, 이런 작업도 Feature Engineering의 영역에 속한다.

  • Feature Extrantion : 주어진 Feature를 바탕으로 새로운 Feature를 만들어 내는 과정.
    Feature가 추가되기도, 축소되기도 한다.

  • Feature Selection : 여러 Feature들 가운데 일부를 선택하는 것.
    무의미한 Feature는 모델 예측력에 안좋은 영향을 미치므로 Feature를 잘 선택하는 것이 중요하다.
    그러나 Feature와 예측값과의 관계를 특정할 수 없는 초기의 경우 보수적으로 선택해야 한다.

  • Encoding : 데이터의 타입에 따라 모델에 맞는 Feature로 변환 작업이 필요합니다. 범주형 데이터를 더미화 하거나 산발적인 값을 Binning 할 때 사용합니다.


🔎 모델 구현

분석 모델에 사용할 데이터 셋이 완성되었으면 실제 모델을 생성하고 학습시키는 작업을 한다.
주어진 데이터셋은 한정되어 있으므로, 학습용 데이터(Train_Data), 검증용 데이터(Validation_Data), 테스트용 데이터(Test_Data) 셋(set) 으로 나누는 작업을 진행해야 하며 때에 따라서 학습용과 테스트용으로만 나누기도 한다.

학습용 데이터로 모델을 생성하고 검증용 데이터로 생성된 모델의 성능을 측정한다.
모델의 성능을 높이기 위해 모델을 튜닝하기도 하고, Feature Engineering을 다시 진행하기도 하기도 한다. Feature Engineering과 모델 생성 및 평가를 반복하면서 최적의 모델을 선정한다.

알고리즘 모델의 종류에 따라 각자의 모델 평가 방법이 있는데, 가장 대표적인 방법으로는 예측 모델일 경우 RMSE, R-Squared를 사용하고 분류 모델일 경우 Confusion Matrix를 통한 Accuracy, ROC 등을 지표로 사용한다. 그렇게 선정된 모델에 테스트 데이터를 통해 모델의 최종 성능을 확인한다.


🔎 모델 적용

기존의 데이터셋이 아닌, 새롭게 생성되는 데이터에 학습된 모델을 적용한다.

머신러닝 모델은 데이터를 기반으로 생성되므로 좋은 성능을 나타내는 모델이 한 번 만들어 졌다고 해도, 발생하는 데이터의 흐름이 바뀌게 되면 모델의 성능은 저하되기도 한다. 그렇기 때문에 시간이 지남에 따라 머신러닝 모델은 고도화작업, 또는 새로운 모델 생성 작업이 필요하다.

profile
개발하고싶은사람

0개의 댓글