[데이터 전처리]
세상에는 방대한 양의 데이터가 존재하지만, 대부분은 가공되지 않은 원시 데이터의 형태이다.
이러한 데이터는 컴퓨터나 사람이 분석할 수 없기 때문에, 분석과 모델링에 맞게 변환하는 전처리 과정이 필수적이다.
데이터 전처리는 AI 데이터 분석의 세 번째 단계로, 이 단계에서 데이터를 정제하고 가공하여 분석에 적합한 형태로 만드는 작업이 주로 이루어진다. 이번 글에서는 데이터 전처리 과정의 주요 방법과 종류를 살펴보며, 데이터의 신뢰성과 분석 정확도를 높이는 데 필요한 과정을 설명해보려고 한다.
1. 데이터 정리
데이터 정리는 AI 모델이 이상적인 데이터를 학습할 수 있도록 불완전하거나 오류가 있는 데이터를 처리하는 것이다.
여기에는 이상치(outliers), 결측치(missing values), 중복 값(duplicates) 등이 포함된다.
- 이상치 확인과 처리
- 이상치는 보통 관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 큰 값을 말한다.
- 방법: 이상치 탐지를 위해 Box plot, Z-score, IQR(사분위 범위) 등을 사용할 수 있다.
- 예시: 어떤 판매 데이터에서 특정 아이템이 100,000개 판매된 기록이 있다면 이는 다른 데이터와 동떨어진 값일 수 있어, 이상치로 판단될 수 있다.
- 결측치 확인과 처리
- 결측치는 데이터가 누락된 경우를 의미하며, 잘못된 예측을 초래할 수 있다.
- 방법: 결측치는 평균, 중앙값 등으로 대체하거나, 비슷한 샘플의 값으로 채우거나 해당 샘플을 제거하는 방법으로 처리할 수 있다.
- 예시: 키와 몸무게 데이터를 가진 데이터셋에서 키가 누락된 경우, 같은 성별과 연령대의 평균 키로 채울 수 있다.
- 중복 값 확인과 처리
- 중복 값은 같은 데이터를 여러 번 기록한 경우로, 분석에 왜곡을 일으킬 수 있다.
- 방법: Pandas의 drop_duplicates() 함수를 통해 중복 데이터를 제거할 수 있다.
- 예시: 고객 정보가 중복으로 들어있는 데이터셋에서 하나의 고객 정보만 남기고 중복된 값을 삭제할 수 있다.
2. 데이터 변환
데이터 변환은 각 데이터 포인트를 모델에 적합한 범위와 형태로 변환하여, 학습이 더욱 효율적으로 이루어지도록 하는
과정이다. 정규화와 스케일링이 주로 사용된다.
- 정규화(Normalization)
- 정규화는 데이터의 범위를 주로 , 변수 간의 스케일(크기) 차이가 큰 경우에 유용하다. 특히, 최솟값과 최댓값 사이의 데이터를 동일한 범위로 맞춰줌으로써 학습 시 특정 변수의 영향이 과도하게 반영되는 것을 방지할 수 있다.
- 목적: 데이터의 범위를 [0,1] 또는 [-1,1] 사이로 조정하여, 변수 간의 스케일 차이를 줄인다.
- 방법: Min-Max Scaling(정규화)를 사용하여 각 데이터 포인트를 0과 1 사이로 변환할 수 있다.
- 예시: 집 크기(평수) 데이터가 30부터 300까지 다양한 범위로 나타난다면, Min-Max 정규화를 통해 모든 값을 0과 1 사이로 조정하여 모델이 데이터를 학습하는 데 유리한 환경을 만들 수 있다. (30에 가까울 수록 0 에 수렴하고, 300에 가까울 수록 1에 수렴한다.)
- 스케일링(Scaling)
- 스케일링은 데이터의 분포와 상관없이 특정 범위로 맞추는 방법이다. 주로 평균이 0, 표준편차가 1인 정규분포 형태로 변환하는 표준화가 포함되는데, 이는 분포가 치우친 경우나, 큰 값과 작은 값 사이의 차이가 클 때 유용하다.
- 목적: 데이터를 평균과 표준편차를 기준으로 조정하여, 극단값이나 비대칭 분포로 인한 영향을 줄다.
- 방법: Z-score 표준화 방식을 적용하여 평균이 0, 표준편차가 1이 되도록 데이터를 변환한다.
- 예시: 매출 데이터에서 최소 100원, 최대 10,000원으로 매우 큰 차이가 있다면, Z-score를 사용해 평균 0, 표준편차 1로 스케일링하여 극단적인 값의 영향을 줄일 수 있다.
3. 인코딩 (Encoding)
인코딩은 텍스트나 범주형 데이터를 숫자로 변환하는 작업이다. 모델이 숫자 데이터를 다루는 데 최적화되어 있으므로,
텍스트나 카테고리형 데이터를 숫자형 데이터로 바꿔주는 작업이 필요하다.
- 예시: 성별이 "남"과 "여"로 표현되어 있을 때, 이를 0과 1로 변환하거나, 색상이 "빨강", "파랑", "초록"일 때 각각 숫자 코드로 변환한다.
- 주요 방법:
- 레이블 인코딩: 각 카테고리를 하나의 숫자로 변환한다.
- 원-핫 인코딩: 각 카테고리를 이진 벡터로 변환하여 데이터 손실을 줄인다.
- 원핫 인코딩: 범주 간 순서가 없고, 범주의 수가 적거나 중간 수준일 때 사용.
- 라벨 인코딩: 범주 간 순서가 있거나, 범주의 수가 많아 메모리 효율이 중요한 경우 사용.
단, 순서가 없는 데이터에 사용하는 경우 주의 필요.
요약
- 스케일링는 데이터를 변수 간 스케일 차이 제거를 위해 특정 범위로 조정한다.
- 표준화 데이터 분포를 조정해 극단값의 영향을 줄이기 위해 데이터를 평균 0 표준편차 1로 맞춘다.
- 인코딩은 텍스트나 범주형 데이터를 숫자 형태로 변환한다.
'AI' 카테고리의 다른 글
| AI #8 (머신러닝 모델) (0) | 2024.10.29 |
|---|---|
| AI #7 (데이터 시각화) (0) | 2024.10.28 |
| AI #5 (데이터 수집) (1) | 2024.10.25 |
| AI #4 (데이터 분석의 단계) (1) | 2024.10.24 |
| AI #3 (딥러닝, 머신러닝, 그리고 AI) (3) | 2024.10.23 |