데이터 전처리는 머신러닝 파이프라인에서 원시적이고 지저분한 데이터를 분석과 모델 훈련에 적합한 깨끗하고 구조화된 형식으로 변환하는 단계이다. 여기에는 결측값, 일관되지 않은 형식, 이상치, 중복 정보와 같은 문제를 해결하는 정제, 변환, 축소, 특성 엔지니어링을 포함한 광범위한 기법 집합이 포함된다. 목표는 데이터 품질을 향상시키고, 결과적으로 고전적 알고리즘 또는 딥러닝 네트워크와 같은 하위 모델의 정확성과 신뢰성을 높이는 것이다. 종종 평범한 단계로 여겨지지만, 전처리는 데이터 과학자의 시간 중 상당 부분을 소비할 수 있으며 편향되거나 오류가 있는 예측을 피하는 데 중요하다.
전처리의 필요성은 실제 세계의 데이터가 직접 소비되기에는 거의 준비되지 않았다는 사실에서 비롯된다. 센서, 사용자 입력, 웹 로그와 같은 소스는 노이즈가 많고 불완전하며 이질적인 레코드를 생성한다. 예를 들어, 데이터셋에는 중복 항목, 다른 형식의 날짜 필드, 오타가 있는 범주형 변수가 포함될 수 있다. 전처리 없이는 모델이 수렴하지 못하거나, 왜곡된 결과를 생성하거나, 관련 없는 패턴에 과적합될 수 있다. 인공지능 시스템의 맥락에서 전처리는 기울기 기반 최적화를 위한 스케일링 또는 신경망 아키텍처를 위한 인코딩과 같은 알고리즘의 특정 요구 사항에 데이터를 맞추는 데도 도움이 된다.
데이터 정제
데이터 정제는 첫 번째이자 가장 기본적인 전처리 단계이다. 여기에는 오류 식별 및 수정, 결측값 처리, 중복 제거가 포함된다. 결측 데이터는 삭제(결측률이 높은 행 또는 열 제거) 또는 대체(평균, 중앙값, 최빈값과 같은 통계적 측정값 또는 k-최근접 이웃과 같은 고급 방법으로 공백 채우기)를 통해 처리할 수 있다. 정상 범위에서 크게 벗어난 극단값인 이상치는 종종 z-점수 또는 사분위수 범위를 사용하여 감지되며, 상황에 따라 상한 설정, 변환 또는 제거될 수 있다. 데이터 병합 오류에서 발생할 수 있는 중복 레코드는 일반적으로 키 필드를 기반으로 식별되어 과대 표현을 방지하기 위해 제거된다.
데이터 변환
변환은 데이터를 일관된 척도 또는 분포로 변환한다. 일반적인 기법에는 정규화(특성을 0에서 1 사이의 범위로 스케일링)와 표준화(평균을 0으로 중심화하고 분산을 1로 스케일링)가 포함된다. 이는 k-최근접 이웃과 같은 거리 측정에 의존하는 알고리즘과 아담 옵티마이저 및 SGD 변형과 같은 기울기 기반 최적화기에 필수적이다. 왜곡된 분포의 경우 로그 또는 거듭제곱 변환이 왜도를 줄이고 패턴을 더 명확하게 만들 수 있다. 범주형 변수 인코딩은 또 다른 핵심 변환이다. 레이블 인코딩은 범주에 정수를 할당하는 반면, 원-핫 인코딩은 각 범주에 대한 이진 열을 생성하며, 이는 순서 관계를 가정하지 않는 모델에서 종종 선호된다. 날짜 및 시간 필드는 연도, 월, 요일과 같은 구성 요소로 분해될 수 있다.
데이터 축소 및 특성 엔지니어링
데이터 축소는 필수 정보를 보존하면서 데이터의 양을 줄이는 것을 목표로 한다. 주성분 분석(PCA) 및 t-SNE와 같은 차원 축소 기법은 고차원 데이터를 저차원 공간으로 투영하여 계산 비용을 줄이고 차원의 저주를 완화한다. 필터, 래퍼, 임베디드 접근 방식을 포함한 특성 선택 방법은 가장 관련 있는 변수를 식별하고 중복된 변수를 버린다. 반면 특성 엔지니어링은 기본 패턴을 더 잘 포착하기 위해 기존 특성에서 새 특성을 생성한다. 예를 들어, 타임스탬프에서 '시간대' 또는 '주말 여부'를 파생하고, 구매 이력에서 '평균 거래 금액'을 계산할 수 있다. 이미지 및 텍스트 작업에서 흔한 전처리 형태인 데이터 증강에서는 데이터셋 크기를 늘리고 일반화를 개선하기 위해 합성 변형을 생성한다.
딥러닝을 위한 전처리
딥러닝 모델, 특히 대규모 언어 모델과 같은 트랜스포머 기반 아키텍처에는 특정 전처리 요구 사항이 있다. 텍스트 데이터는 토큰화(단어, 하위 단어 또는 문자로 분할)되고 훈련 중에 구축된 어휘를 사용하여 숫자 ID로 변환되어야 한다. 시퀀스는 배칭을 가능하게 하기 위해 고정 길이로 패딩 또는 잘림 처리된다. 이미지 데이터의 경우 전처리에는 크기 조정, 자르기, 색상 정규화가 포함될 수 있다. 또한 배치 정규화 및 레이어 정규화와 같은 기법이 네트워크 내에서 훈련을 안정화하기 위해 적용되지만, 이는 때때로 전처리보다는 모델 아키텍처의 일부로 간주된다. 시퀀스-투-시퀀스 작업의 경우 전처리에는 계산을 최적화하기 위해 시퀀스를 길이별로 정렬하는 것이 포함될 수 있다. 전처리 단계의 선택은 잔차 네트워크 또는 U-Net과 같은 모델의 성능에 상당한 영향을 미칠 수 있으며, 전체 파이프라인의 일부로 조정되는 경우가 많다.
도구 및 모범 사례
실제로 데이터 전처리는 Python의 pandas 및 scikit-learn과 같은 프로그래밍 라이브러리 또는 아마존 웹 서비스, 애저, 구글 클라우드와 같은 클라우드 플랫폼 내의 전용 도구를 사용하여 수행된다. 모범 사례에는 모든 변환 문서화, 재현 가능한 파이프라인 생성, 데이터 누출을 방지하기 위해 전처리 전에 데이터를 훈련, 검증, 테스트 세트로 분할하는 것이 포함된다. 스케일링 매개변수는 훈련 세트에만 맞추고 테스트 데이터에 적용해야 한다. 2020년대 중반 현재, 자동 머신러닝(AutoML) 도구는 점점 더 전처리 단계를 통합하고 있지만, 변환이 도메인 지식과 일치하고 편향을 도입하지 않도록 인간의 감독은 여전히 필수적이다.
결론
데이터 전처리는 모든 머신러닝 또는 AI 프로젝트의 기초 단계이다. 이는 원시 데이터와 모델 준비 상태 사이의 간극을 메우며 예측 품질에 직접적인 영향을 미친다. 모델 아키텍처나 훈련 알고리즘의 화려함은 부족하지만, 그 중요성은 아무리 강조해도 지나치지 않다. 잘 전처리된 데이터셋은 실패하는 모델과 생산 환경에서 안정적으로 작동하는 모델의 차이를 만들 수 있다. 데이터 양이 증가하고 소스가 더 다양해짐에 따라 전처리의 역할은 더욱 중요해질 것이며, 자동화되고 적응적인 방법에 대한 지속적인 연구가 진행되고 있다.