데이터 전처리의 중요성 및 필수 기법
데이터 전처리는 머신러닝 및 데이터 분석에서 가장 중요한 과정 중 하나입니다. 원시 데이터는 불완전하거나 노이즈가 많고, 형식이 일관되지 않아 바로 모델링에 사용할 수 없습니다. 전처리는 이러한 데이터를 정리하고, 머신러닝 모델이 이해할 수 있는 형태로 변환하여 성능을 향상시킵니다. 이 과정을 통해 데이터 품질이 향상되면, 머신러닝 모델이 올바르게 학습되어 신뢰성 높은 분석 결과를 도출할 수 있습니다.
데이터 전처리 기법은 결측치 처리, 이상치 처리, 중복 데이터 제거, 데이터 타입 변환, 인코딩, 데이터 정규화 등 여러 방법을 포함합니다. 예를 들어, 데이터에 None 값이 포함되면 이는 빈 값이 되어 모델 학습에 방해가 됩니다.
1. 이상치 및 중복 데이터 처리
이상치 처리
이상치는 데이터에서 비정상적으로 크거나 작은 값을 의미합니다. 이러한 값은 모델 학습에 방해가 될 수 있기 때문에 적절히 처리해야 합니다.
- 예시 1: 사람이 측정한 키가 2m 70cm일 경우, 이는 비정상적인 값으로 판단할 수 있습니다.
- 예시 2: 연봉 데이터에서 마이클 조던이 포함된 경우, 이는 실제로 존재하는 값이지만 매우 드문 예시로, 모델에 큰 영향을 미칠 수 있습니다.
중복 데이터 처리
중복 데이터는 동일한 데이터가 여러 번 나타날 때 발생합니다. 중복 데이터는 모델 학습에 방해가 되므로 이를 제거하는 것이 중요합니다.
2. 데이터 전처리 기법의 필요성
불균형 데이터와 중복 데이터는 모델 학습에 과도한 영향을 미칠 수 있습니다. 예를 들어, 데이터에서 개의 사진이 99%, 고양이의 사진이 1%라면, 모델은 고양이 사진을 잘 예측하지 못할 수 있습니다. 따라서 데이터의 균형을 맞추고 중복 데이터를 제거하는 것이 매우 중요합니다.
또한, 데이터 타입 변환과 인코딩도 필요합니다. 모델은 수치형 데이터나 범주형 데이터만 처리할 수 있기 때문에, 데이터 타입을 모델에 맞게 변환하는 작업이 필요합니다.
3. 데이터 전처리 기법의 기본 개념
데이터 타입 변환
데이터 타입 변환은 머신러닝 모델이 데이터를 처리할 수 있는 형태로 변환하는 작업입니다. 예를 들어, 문자열로 되어 있는 값을 수치형 데이터로 변환하거나, 날짜를 수치형 데이터로 바꾸는 작업입니다.
인코딩 (Encoding)
인코딩은 카테고리형 데이터를 수치형 데이터로 변환하는 과정입니다. 예를 들어, 상의, 하의, 신발과 같은 값을 수치형으로 변환하여 모델이 이해할 수 있게 만듭니다. 이때 원-핫 인코딩을 사용하여 각 카테고리를 별도의 열로 분리하고, 해당 카테고리가 존재하면 1, 존재하지 않으면 0을 넣습니다.
데이터 정규화
데이터 정규화는 값의 범위를 일정하게 맞추는 작업입니다. 예를 들어, 재산과 키는 값의 범위가 다르기 때문에 정규화를 하지 않으면 모델 예측에 영향을 미칠 수 있습니다. 데이터 정규화는 보통 0과 1 사이로 값을 스케일링합니다.
샘플링
샘플링은 데이터셋을 분할하거나 크기를 줄여서 새로운 데이터셋을 만드는 작업입니다. 이 방법은 모델의 성능 향상에 도움이 됩니다.
4. 데이터 전처리 기법의 세부 방법
결측치 처리
결측치는 데이터셋에서 누락된 값을 의미합니다. 결측치를 처리하는 방법에는 삭제, 대체, 예측 방법이 있습니다.
- 삭제: 결측치를 포함한 행 또는 열을 삭제하는 방법입니다.
- 대체: 결측치를 평균, 중앙값, 최빈값 등으로 대체하는 방법입니다.
- 예측: 다른 특성을 이용하여 결측치를 예측하고 대체하는 방법입니다.
이상치 처리
이상치는 비정상적으로 크거나 작은 값들입니다. 이를 처리하는 방법은 제거와 변환이 있습니다.
- 제거: 이상치를 데이터셋에서 제거하는 방법입니다.
- 변환: 이상치 값이 범위를 벗어날 경우, 상한선이나 하한선을 설정해 해당 값을 변환하는 방법입니다.
IQR 방법은 이상치를 발견하는 방법으로, **Q1(25%)**과 Q3(75%) 값의 차이인 IQR을 구해 특정 범위를 넘는 값을 이상치로 판단합니다.
데이터 정규화와 표준화
- 정규화는 데이터의 범위를 0에서 1 사이로 맞추는 과정입니다. 이는 최소값과 최대값을 이용하여 수행됩니다.
- 표준화는 데이터의 평균을 0으로, 분산을 1로 맞추는 작업입니다. 이는 모델 학습의 안정성을 높여줍니다.
5. 특성 공학 및 데이터 분할
특성 공학
특성 공학은 데이터에서 새로운 유용한 특성을 추출하는 과정입니다. 예를 들어, 학생의 나이를 예측하는데 주민등록번호 앞자리는 의미 없는 정보일 수 있습니다. 이런 의미 없는 정보를 삭제하는 것이 중요합니다.
데이터 분할
데이터를 훈련 데이터셋, 검증 데이터셋, 평가 데이터셋으로 나누는 작업입니다. 이렇게 분할하여 모델을 평가할 때 훈련 데이터로만 평가하지 않도록 합니다.
6. 데이터 인코딩: 원-핫 인코딩과 레이블 인코딩
- **원-핫 인코딩 (One-Hot Encoding)**은 범주형 데이터를 이진 벡터로 변환하는 방식입니다. 각 범주가 하나의 열로 분리되어 1과 0으로 표시됩니다.
- **레이블 인코딩 (Label Encoding)**은 범주형 데이터를 숫자로 변환하는 방식입니다. 하지만 성능 차이로 인해 원-핫 인코딩이 더 많이 사용됩니다.
결론
데이터 전처리는 머신러닝에서 성공적인 모델 학습을 위한 필수적인 과정입니다. 이상치 처리, 결측치 처리, 데이터 타입 변환, 인코딩, 데이터 정규화 등 다양한 기법들이 있으며, 이를 잘 활용하면 모델의 성능을 크게 향상시킬 수 있습니다. 데이터 전처리 과정을 철저히 수행하여 깨끗한 데이터를 준비하면 더 신뢰성 높은 예측과 분석이 가능합니다.
'Python > Machine Learning' 카테고리의 다른 글
| 탐색적 데이터 분석(EDA) (4) | 2024.12.19 |
|---|---|
| [TIL] 241219 머신러닝 워크플로우 정리 (3) | 2024.12.19 |
| 챕터2 주택가격예측 과제설명 (3) | 2024.12.18 |
| [머신러닝] 지도학습 : 회귀모델 (1) | 2024.12.16 |
| 데이터 전처리 실습 (2) | 2024.12.15 |