History
home
BDA 연혁
home

- 다양한 데이터 형태 전처리 복습 (2)

데이터 전처리를 진행하는 이유

데이터 전처리는 데이터 분석 파이프라인을 구성하는데 있어 중요한 단계이다. 전처리 과정은 정제되지 않은 raw data를 분석에 적합한 형태로 변환하면서,모델의 정확성과 효율성을 향상시킨다. 이를 통해 보다 모델의 예측을 신뢰할 수 있고 해석 가능한 결과가 나올 수 있도록 해준다.
데이터를 수집하는 과정에서 아래와 같은 방해물이 존재한다. 데이터 전처리를 통해 이를 분석에 적합한 데이터로 변환하는 과정이 필요하다.
1.
잡음(noise) - 수집 과정에서 무작위로 발생하여 측정한 데이터의 오차를 발생시킨다. - 전처리는 데이터를 정제하고, 노이즈가 모델에 미치는 영향을 줄일 수 있다.
2.
인위적 생성물(artifact) - 데이터를 수집하는 데에 있어서 어떠한 요인으로 인하여 반복적으로 발생하는 왜곡이나 오차가 존재한다. - 예를 들어, 카메라 렌즈에 얼룩이 묻어있는 상태로 찍힌 이미지 데이터를 처리하는 데에 있어서 이러한 얼룩을 전처리를 통해 수정해주지 않는다면 왜곡이 발생한다.
3.
정밀도(precision) - 어떠한 대상을 반복적으로 측정하여 데이터를 수집한다고 해보자. 관측자의 실수나, 관측 장비 자체의 오차등으로 인해 매 측정마다 일관적인 결과가 나오지 않을 수 있다. - 같은 1g을 측정한다해도 0.991g, 1.003g, 0989g등의 결과값이 나올 수 있다. 어느정도의 편차를 고려하여 전처리를 하는 과정이 필요하다.
4.
결측지 (missing values) - 수집된 데이터는 종종 결측값을 포함하고 있다. 예를 들어 설문조사를 진행할 경우, 어떤 참여자들은 특정 질문에 대답을 원치 않을 수 있다. - 결측값을 대체하거나, 결측값이 포함된 행/열을 제거하는 방법으로 이를 해결해야 한다.
5.
편향(bias) - 데이터 수집 과정에서 특정 유형의 개체 또는 사례가 다른 것보다 더 많이 또는 적게 선택되어, 샘플이 전체 모집단을 대표하지 못하는 경우가 발생할 수 있다.
6.
이상치(outlier) - 이상치(Outlier)란 수집된 데이터 중에서 나머지 데이터에서 크게 벗어난 값을 가진 샘플이다. 이상치는 데이터 집합의 전반적인 패턴과 크게 다르거나 예상 범위를 벗어난 값이기에 모델링이나 분석과정에서 문제를 발생시킬 수 있다. - 잡음(noise)는 임의로 발생하는 예측하기 어려운 요인이지만, 이상치는 확인이 가능하다. - 제조과정에서 불량품을 탐지하거나, 신용사기를 예측하는 등 이상치를 찾아내는 것 자체가 중요한 분석의 목적이 될 수 있다.

데이터 전처리 기법들

1. 결측치 처리

다음과 같은 데이터셋을 만들어보고 결측치를 처리해보자.
import pandas as pd import numpy as np # Sample DataFrame with missing values data = { 'A': [1, 2, np.nan, 4, 5], 'B': [5, np.nan, np.nan, 8, 10], 'C': [10, 20, 30, np.nan, 50] } df = pd.DataFrame(data)
Python
복사
결측치를 처리하는 가장 간단한 방법은 결측치를 데이터셋에서 제거하는 것이다.
판다스에서는 dropna() 함수를 통해 실행해볼 수 있다. dropna() 의 파라미터 how='all' 은 행에 있는 모든 값이 결측값일때, how ='any' 는 하나라도 결측값이면 삭제한다. 또한 axis 를 통해 제거하는 방향을 선택할 수 있다. 1일 경우 열방향으로 삭제를 진행한다.
기본값은 how='any'이다.
df_dropped = df.dropna(how ='all', axis=1)
Python
복사
다음으로 생각해볼 방법은 분포를 고려하여 특정값으로 채워넣는 방법이다. 보통 평균이나 최빈값을 활용하여 결측값을 채워넣는다.
판다스에서는 fillna() 함수를 통해 적용이 가능하다. 다음은 평균을 이용하여 결측값을 채워넣는 방법이다.
df_filled_mean = df.fillna(df.mean())
Python
복사