본문 바로가기

PROGRAMMING

데이터 통계 및 전처리 - EDA 및 Preprocessing 과정

반응형

데이터 분석 및 머신러닝 모델링을 수행하기 위해서는 데이터의 품질이 매우 중요하다. 원본 데이터(raw data)는 다양한 오류와 결측치(missing values)를 포함하고 있을 수 있으며, 이를 효과적으로 정리하고 가공하는 과정이 필수적이다. 이번 포스트에서는 데이터의 통계 분석과 전처리 방법을 체계적으로 정리해 보겠다.

preprocessing
Preprocessing - 출처 : OpenAI

1. 데이터 탐색 및 통계 분석

데이터를 이해하기 위한 첫 번째 단계는 탐색적 데이터 분석(Exploratory Data Analysis, EDA)이다. EDA 과정에서는 다음과 같은 방법을 활용하여 데이터의 특성을 분석한다.

1.1 데이터 개요 확인

  • 데이터셋의 크기 및 차원 확인 (df.shape)
  • 컬럼명 및 데이터 타입 확인 (df.info())
  • 샘플 데이터 확인 (df.head(), df.tail())

1.2 기초 통계 분석

  • 기술 통계 (df.describe())를 통해 평균(mean), 중앙값(median), 표준편차(std), 최솟값(min), 최댓값(max) 등을 확인한다.
  • 카테고리형 데이터의 빈도 분석 (df['column'].value_counts()).
  • 결측치 개수 및 비율 확인 (df.isnull().sum() / len(df)).

1.3 이상치 탐지

  • 박스플롯(box plot)을 활용한 이상치 탐색.
  • IQR (Interquartile Range) 방법을 활용하여 이상치 식별 및 제거.
  • Z-score를 활용한 이상치 탐색 (scipy.stats.zscore).

 

2. 데이터 전처리

데이터의 품질을 향상시키기 위해 다양한 전처리 방법을 수행한다.

2.1 결측치 처리

결측치는 데이터 분석 결과에 영향을 미칠 수 있으므로 적절한 방법으로 처리해야 한다.

  • 제거: 결측치가 있는 행이나 열을 제거 (df.dropna()).
  • 대체: 평균, 중앙값 또는 최빈값으로 결측치를 대체 (df.fillna(value)).
  • 예측 기반 대체: 머신러닝 모델을 활용하여 결측값 예측.

2.2 데이터 정규화 및 표준화

  • 정규화(Normalization): 데이터 값을 [0,1] 범위로 조정 (MinMaxScaler).
  • 표준화(Standardization): 평균이 0이고 표준편차가 1이 되도록 변환 (StandardScaler).

2.3 범주형 데이터 처리

  • 레이블 인코딩(Label Encoding): 문자열 데이터를 숫자로 변환 (LabelEncoder).
  • 원-핫 인코딩(One-Hot Encoding): 고유값 개수가 적은 범주형 변수 변환 (pd.get_dummies()).

2.4 데이터 축소 및 차원 축소

  • 주성분 분석(PCA): 차원을 줄여서 계산 효율성 향상.
  • 특징 선택(Feature Selection): 상관분석을 통해 중요 특징만 선택.

2.5 데이터 정리 및 변환

  • 날짜 데이터를 datetime 형식으로 변환.
  • 중복 데이터 제거 (df.drop_duplicates()).
  • 문자열 데이터 정제 (공백 제거, 소문자 변환 등).

 

3. 성능 최적화를 위한 데이터 전처리

대용량 데이터에서는 전처리 성능 최적화가 필요하다.

  • 병렬 처리: Pandas의 swifter, Dask 또는 PySpark 활용.
  • 배치 처리: 데이터를 작은 단위로 나누어 처리.
  • 데이터베이스 활용: SQL을 활용하여 데이터 정리 및 필터링.

 

데이터 전처리는 데이터 분석 및 모델링의 성공을 결정하는 중요한 과정이다. 적절한 데이터 탐색과 전처리를 통해 신뢰성 높은 데이터를 구축하고, 이를 바탕으로 보다 정확한 예측 모델을 개발할 수 있다. 다양한 기법을 활용하여 데이터 품질을 개선하고, 실무 환경에 맞는 최적의 전략을 적용하는 것이 중요하다.

반응형