데이터 전처리

데이터 전처리란?

데이터 전처리는 원시 데이터를 분석과 모델링에 적합하도록 정리하고 변환하는 작업입니다. 원시 데이터에는 누락 데이터, 이상값, 형식 지정 문제 같은 기타 불일치가 포함된 경우가 많습니다. 전처리 단계에는 데이터 정리, 데이터 정규화, 데이터 변환이 포함됩니다. 데이터 전처리의 목표는 다운스트림 분석 및 모델링의 정확도와 효율성 모두를 개선하는 것입니다.

MATLAB®은 입력 데이터를 통계 모델링, 머신러닝 알고리즘 및 기타 데이터 주도 응용 사례에 적합하도록 전처리하기 위한 앱과 함수를 제공합니다.

그림 1은 누락값과 이상값이 포함된 원시 데이터를 보여주며, 이러한 값으로 인해 분석 중에 잘못된 결론이 도출될 수 있습니다. 그림 2는 동일 데이터에 누락 데이터 채우기, 이상값 제거, 평활화라는 세 가지 데이터 전처리 기법을 적용한 결과를 보여줍니다. 데이터 품질이 향상되어 크기, 주파수, 주기성 같은 특성들이 눈에 잘 띕니다.

누락값과 이상값이 포함된 원시 데이터셋의 MATLAB 플롯.

그림 1. 누락값과 이상값이 포함된 원시 데이터의 MATLAB 플롯.

누락 데이터 채우기와 이상값 제거 같은 데이터 전처리 기법으로 사전 및 사후 평활화를 적용한 데이터가 표시된 MATLAB 플롯.

그림 2. 원본 데이터와 MATLAB에서 smoothdata 함수 적용을 마친 후의 전처리된 데이터.

데이터 전처리 기법

데이터 전처리 기법은 데이터 정리, 데이터 변환, 구조 관련 작업이라는 세 가지 주요 범주로 분류할 수 있습니다. 다음 단계들은 어떤 순서로든 그리고 반복적으로 진행될 수 있습니다.

데이터 정리

데이터 정리는 다음과 같은 기법으로 데이터셋에서 이상을 해결하는 과정입니다.

  • 이상값 관리: 이상값을 식별한 후 제거하거나 통계적으로 추정된 값으로 대체
  • 누락 데이터 채우기: 누락되거나 유효하지 않은 데이터 점을 식별하고 보간된 값으로 대체
  • 평활화: 이동 평균, 선형 회귀, 그리고 더 특화된 필터링 방법과 같은 기법으로 잡음 필터링
누락값이 포함된 일사량 원시 입력 데이터 시간 플롯을 MATLAB에서 플로팅한 스크린샷.

그림 3. 누락값이 포함된 일사량 원시 데이터셋의 시계열 플롯.

원시 데이터셋에서 누락값을 채운 후 일사량 데이터의 MATLAB 플롯.

그림 4. 누락값 채우기를 위해 MATLAB의 fillmissing 함수로 전처리를 마친 일사량 데이터.

데이터 변환

데이터 변환은 다음과 같은 작업을 통해 데이터셋을 원하는 형식으로 수정하는 과정입니다.

  • 정규화 및 재스케일링: 스케일이 서로 다른 데이터셋을 균일한 스케일로 표준화
  • 추세 제거: 다항식 추세를 제거하여 데이터셋 내부 편차의 가시성 향상
원시 데이터의 추세를 파악한 플롯과 추세 제거 데이터 전처리 기법으로 추세 편향을 제거한 MATLAB 플롯.

그림 5. 원시 데이터와 그 추세, 그리고 MATLAB의 detrend 함수를 통해 추세 편향이 제거된 전처리 버전.

구조 관련 작업

구조 관련 작업은 데이터셋을 결합, 재구성, 범주화하는 용도로 자주 사용되며, 여기에는 다음이 포함됩니다.

  • 결합: 공통된 키 변수를 사용하여 행을 기준으로 두 개의 테이블 또는 타임테이블 결합
  • 변수 쌓기 및 변수 해체: 다차원 배열 형태 변경으로 테이블 내의 데이터를 통합 또는 재분포하여 분석 편의성 증진
  • 그룹화 및 비닝: 가치 있는 통찰력을 도출하기 위해 데이터셋 재구성
  • 피벗 테이블 계산: 대규모 테이블 형식 데이터셋을 하위 테이블로 나누어 세부적으로 집중된 정보 획득

데이터 전처리 및 데이터 유형

데이터 전처리 단계는 데이터의 유형에 따라 다를 수 있습니다. 다양한 데이터 유형에 사용할 수 있는 세 가지 데이터 전처리 방법의 예는 다음과 같습니다.

시계열 데이터 테이블 형식 데이터 영상 데이터
누락값 제거, 필터링, 평활화, 타임스탬프가 지정된 데이터를 다른 시간 스텝으로 동기화하기 같은 다양한 데이터 정리 및 전처리 작업을 수행할 수 있습니다. 테이블의 데이터가 정리되지 않은 경우, 누락값을 채우거나 제거하고 테이블의 행과 변수를 다른 순서로 재정렬하여 테이블을 정리할 수 있습니다.  데이터 전처리는 AI를 포함한 영상 관련 응용 사례에 유용합니다. 사용자는 영상의 크기를 조정하거나 자르거나 딥러닝 모델의 훈련 데이터 양을 늘려서 데이터를 전처리할 수 있습니다.

 

 

 

 

 

타임스탬프가 지정된 데이터 전처리 후 탐색하기 테이블에서 정리되지 않은 데이터와 누락된 데이터 정리하기 딥러닝을 위해 영상 전처리하기

MATLAB을 사용한 데이터 전처리

올바른 전처리 접근법을 선택하는 것이 항상 명확하지 않습니다. MATLAB은 대화형 방식 기능(앱 및 라이브 편집기 작업)과 상위수준 함수를 모두 제공하여 손쉽게 다양한 방법을 시도해 보고 데이터에 적합한 방법을 결정할 수 있도록 돕습니다. 다양한 구성을 반복하여 최적의 설정을 선택하면 추가적인 분석을 위해 데이터를 준비하는 데 도움이 됩니다.

대화형 방식 기능

데이터 정리기 앱은 코드 작성 없이 시계열 데이터를 전처리할 수 있는 독립 실행형 대화형 방식 툴입니다. 그림 6은 데이터를 가져와서 정리하고 누락 데이터를 채우고 이상값을 제거하는 방법을 보여줍니다. 그런 다음에는 수정된 데이터를 MATLAB 작업 공간에 저장하여 추가 분석을 수행할 수 있습니다. 또한 MATLAB 코드를 자동으로 생성하여 단계를 문서화하고 나중에 재현할 수 있습니다.

그림 6. MATLAB에서 데이터 정리기 앱을 사용한 시계열 데이터 탐색 및 정리.

라이브 편집기 작업은 특정 작업 수행을 위해 스크립트에 직접 추가할 수 있는 간단한 포인트 앤 클릭 인터페이스입니다. 이러한 작업은 다양한 설정을 반복하고 응용 사례에 가장 적합한 구성을 파악하도록 대화형 방식으로 구성할 수 있습니다. 데이터 정리기 앱과 마찬가지로, 사용자는 작업 재현을 위해 MATLAB 코드를 자동으로 생성할 수도 있습니다.

누락 데이터 정리, 이상값 데이터 정리, 데이터 정규화 같은 일련의 라이브 편집기 작업을 사용해서 데이터를 각 단계에서 시각화하며 대화형 방식으로 전처리할 수 있습니다.

사용 가능한 실시간 작업 모음을 보여주는 MATLAB의 데이터 전처리 도구 모음 스크린샷.

그림 7. 실시간 작업 모음이 포함된 데이터 전처리용 MATLAB 도구 모음.

입력 데이터셋은 A로, 정리 방법은 선형 보간을 통한 이상값 채우기로 설정되었고 검출 방법은 중앙값으로 설정된 이상값 데이터 정리 작업과 함께 두 개의 채워진 이상값이 표시된 결과 플롯을 보여주는 스크린샷.

그림 8. 중앙값의 임계값 적용으로 이상값을 검출하고 선형 보간으로 이상값을 채우는 이상값 데이터 정리 라이브 편집기 작업.

MATLAB 함수 사용

MATLAB은 데이터 전처리를 포함한 일반적인 수학, 과학 및 공학 계산을 위해 수천 개의 상위수준 내장 함수를 제공합니다.

사용자는 MATLAB에서 원시 데이터셋을 시각화하여 살펴볼 수 있습니다. 그림 9은 누락값과 이상값으로 구성된 원시 데이터를 보여줍니다. 이 데이터셋은 일반적인 날의 일사량을 보여줍니다. 혹독한 기상 조건은 무선 원격 측정 데이터 전송을 방해하여 원시 데이터셋에 불완전성을 더할 수 있습니다.

누락값과 이상값을 강조 표시한 일사량 원시 입력 데이터의 MATLAB 2차원 플롯.

그림 9. 누락값과 이상값이 식별된 일사량 원시 데이터의 시계열 플롯.

MATLAB을 사용하여 그림 9에 표시된 원시 일사량 데이터셋에 적용한 다섯 가지의 일반적인 데이터 전처리 기법은 다음과 같습니다. 

데이터 전처리 기법 MATLAB 플롯

이상값 처리:

원격 측정 데이터의 이상이 이상값으로 표시됩니다. 이상값은 filloutliers를 통해 제거됩니다. 어떤 값이 이상값인지 판단하는 데 쓰이는 방법과 이상값 데이터 점을 대체할 값을 추정하는 채우기 기법을 지정할 수 있습니다.

 

 

누락 데이터 채우기:

통신이 끊기면 원격 측정에서 데이터 누락이 발생하게 됩니다. fillmissing을 사용하여 데이터셋의 NULL 값을 추정된 값으로 대체합니다. 보간 또는 이동 윈도우에 기반한 기법을 지정하여 누락값을 추정할 수 있습니다.

 

 

데이터 평활화:

잡음이 있는 일사량 데이터가 smoothdata를 통해 제거됩니다. 데이터에 가장 적합한 평활화 방법을 선택하고 지정할 수 있습니다.

 

 

데이터 정규화:

normalize 함수를 사용함에 따라 오전 8시부터 오후 4시 사이에 최대 일사량의 50% 이상을 받는 것을 이 데이터셋에서 손쉽게 확인할 수 있습니다.

 

 

그룹화:

retime을 사용해서 일사량 데이터를 4시간 간격으로 그룹화하여 해당 시간대의 평균 일사량을 파악할 수 있습니다.

 

 

데이터는 정리가 되어 있지 않을 수도 있지만, 데이터 전처리 기법을 사용하면 데이터 품질을 향상하고 추가적인 분석을 위해 데이터를 준비할 수 있습니다. 자세한 내용은 아래 자료를 참조하십시오.

참조: 데이터 정리, MATLAB을 사용한 데이터 분석, MATLAB 그래픽