데이터 전처리란?
데이터 전처리는 원시 데이터를 분석과 모델링에 적합하도록 정리하고 변환하는 작업입니다. 전처리 단계에는 데이터 정리, 데이터 정규화, 데이터 변환이 포함됩니다. 데이터 전처리의 목표는 다운스트림 분석 및 모델링의 정확도와 효율성 모두를 개선하는 것입니다.
원시 데이터에는 누락값과 이상값이 포함되는 경우가 많으며, 이러한 값으로 인해 분석 중에 잘못된 결론이 도출될 수 있습니다. MATLAB®을 사용하여 누락 데이터 채우기, 이상값 제거, 평활화 등의 데이터 전처리 기법을 적용하여 크기, 주파수, 주기성 같은 특성이 눈에 잘 띄도록 시각화할 수 있습니다.
![MATLAB에서 플로팅된 누락값과 이상값을 보여주는 선 차트.](https://kr.mathworks.com/discovery/data-preprocessing/_jcr_content/mainParsys/columns/ea6621a2-c1e5-4dff-bef7-76b57a753e25/image.adapt.full.medium.jpg/1738303507502.jpg)
누락값과 이상값이 포함된 원시 데이터의 MATLAB 플롯.
![누락 데이터 채우기와 이상값 제거 같은 데이터 전처리 기법으로 사전 및 사후 평활화를 적용한 데이터가 표시된 MATLAB 플롯.](https://kr.mathworks.com/discovery/data-preprocessing/_jcr_content/mainParsys/columns/ace41182-5167-4030-afc5-93dcda485845/image.adapt.full.medium.jpg/1738303507517.jpg)
원본 데이터와 smoothdata
함수가 적용된 전처리된 데이터. (MATLAB 코드 보기.)
데이터 전처리 기법
데이터 전처리 기법은 데이터 정리, 데이터 변환, 구조 관련 작업이라는 세 가지 주요 범주로 분류할 수 있습니다. 다음 단계들은 어떤 순서로든 그리고 반복적으로 진행될 수 있습니다.
데이터 정리
데이터 정리는 다음과 같은 기법을 사용하여 데이터셋에서 이상을 해결하는 과정입니다.
- 이상값 관리: 이상값을 식별한 후 제거하거나 통계적으로 추정된 값으로 대체
- 누락 데이터 채우기: 누락되거나 유효하지 않은 데이터 점을 식별하고 보간된 값으로 대체
- 평활화: 이동 평균, 선형 회귀, 그리고 더 특화된 필터링 방법과 같은 기법으로 잡음 필터링
![누락값과 데이터 전처리의 필요성을 보여주는 24시간 범위에 걸친 일조 강도의 선 차트.](https://kr.mathworks.com/discovery/data-preprocessing/_jcr_content/mainParsys/columns_659105705/35da610d-be03-45d1-b702-191612fe63e7/image.adapt.full.medium.jpg/1738303507584.jpg)
누락값이 포함된 일조 강도 원시 데이터셋의 시계열 플롯.
![데이터 전처리 이후 MATLAB의 일조 강도 데이터 플롯은 원시 데이터셋의 누락값이 채워졌음을 보여줍니다.](https://kr.mathworks.com/discovery/data-preprocessing/_jcr_content/mainParsys/columns_659105705/ada045ab-de52-4a88-8131-768acebeb1c5/image.adapt.full.medium.jpg/1738303507600.jpg)
누락값을 채우기 위해 fillmissing
함수로 전처리한 일조 강도 데이터. (MATLAB 코드 보기.)
데이터 변환
데이터 변환은 다음과 같은 작업을 통해 데이터셋을 원하는 형식으로 수정하는 과정입니다.
- 정규화 및 재스케일링: 스케일이 서로 다른 데이터셋을 균일한 스케일로 표준화
- 추세 제거: 다항식 추세를 제거하여 데이터셋 내부 편차의 가시성 향상
![추세 제거가 적용된 이후에는 추세 편향이 제거되며 추세가 제거된 데이터는 더 이상 추세선을 따르지 않습니다.](https://kr.mathworks.com/discovery/data-preprocessing/_jcr_content/mainParsys/columns_1625709749/b45ba266-b2d0-42cb-843b-8b73e872860c/image.adapt.full.medium.jpg/1738303507639.jpg)
원시 데이터와 그 추세, 그리고 detrend
함수를 통해 추세 편향이 제거된 전처리 버전. (MATLAB 코드 보기.)
구조 관련 작업
구조 관련 작업은 데이터셋을 결합, 재구성, 범주화하는 용도로 자주 사용되며, 여기에는 다음이 포함됩니다.
- 결합: 공통된 키 변수를 사용하여 행을 기준으로 두 개의 테이블 또는 타임테이블 결합
- 변수 쌓기 및 변수 해체: 다차원 배열 형태 변경으로 테이블 내의 데이터를 통합 또는 재분포하여 분석 편의성 증진
- 그룹화 및 비닝: 가치 있는 통찰력을 도출하기 위해 데이터셋 재구성
- 피벗 테이블 계산: 대규모 테이블 형식 데이터셋을 하위 테이블로 나누어 세부적으로 집중된 정보 획득
데이터 전처리 및 데이터 유형
데이터 전처리 단계는 데이터의 유형에 따라 다를 수 있습니다. 다양한 데이터 유형에 사용할 수 있는 세 가지 데이터 전처리 방법의 예는 다음과 같습니다.
시계열 데이터 | 테이블 형식 데이터 | 영상 데이터 |
누락값 제거, 필터링, 평활화, 타임스탬프가 지정된 데이터를 다른 시간 스텝으로 동기화하기 같은 다양한 데이터 전처리 작업을 수행할 수 있습니다. | 테이블의 데이터가 정리되지 않은 경우, 다양한 데이터 전처리 기법을 사용하여 누락값을 채우거나 제거하고 테이블의 행과 변수를 다른 순서로 재정렬하여 테이블을 정리할 수 있습니다. | 데이터 전처리는 AI를 포함한 영상 관련 응용 사례에 유용합니다. 사용자는 영상의 크기를 조정하거나 자르거나 딥러닝 모델의 훈련 데이터 양을 늘려서 데이터를 전처리할 수 있습니다. |
타임스탬프가 지정된 데이터 전처리 후 탐색하기 | 테이블에서 정리되지 않은 데이터와 누락된 데이터 정리하기 | 딥러닝을 위한 영상 전처리 |
데이터 전처리의 모범 사례
데이터 전처리는 일률적으로 적용할 수 있는 접근법이 아닙니다. 이는 데이터의 특성, 머신러닝 알고리즘, 해결하고자 하는 문제에 따라 달라집니다. 모범 사례는 데이터 전처리 기법을 선택할 때 도움이 될 수 있습니다.
- 응용 사례에 맞게 기법 조정: 적절한 데이터 전처리 기법을 선택하는 것은 신뢰성 있고 정확한 결과를 달성하는 데 매우 중요합니다. 효과적인 데이터 전처리 기법은 다양한 응용 사례의 요구사항을 충족하도록 조정해야 하는 경우가 많습니다. 예를 들어, 금융 응용 사례에서의 기법과 의료 영상 응용 사례에서의 기법은 크게 다를 수 있습니다. 특정 응용 사례에 맞게 데이터 전처리 기법을 조정함으로써 입력 데이터 내의 가장 중요한 특징이 강조되어 정확도가 높은 맞춤형 모델을 생성할 수 있습니다. 이 맞춤형 접근법을 통해 데이터가 분석 또는 모델링에 최적이 되도록 준비하여 더욱 정확하고 효과적인 결과를 도출할 수 있습니다.
- 영향 평가: 적합한 데이터 전처리 기법은 모델 정확성, 효율성 및 해석 가능성을 개선할 수 있습니다. 하지만 전처리 기법은 일부 경우 모델 정확성에 부정적인 영향을 미칠 수도 있으므로 모델을 구축하는 전체 과정에 걸쳐 모델 성능을 평가하는 것이 필수적입니다. 데이터 전처리 단계의 영향을 정기적으로 검증하면 전체 모델 성능에 긍정적으로 기여하는 모든 조정 사항을 확인할 수 있습니다. 예를 들어, 의료 데이터 분석의 데이터 전처리에서 환자 실험실 검사 결과의 정규화 및 누락값 입력은 중요한 단계입니다. 이러한 기법을 통해 각 테스트 결과가 예측 모델에 동등한 영향을 미치고 누락되거나 불균형적으로 스케일링된 데이터로 인해 분석이 편향되지 않도록 보장하여 더 정확하고 실행 가능한 인사이트를 확보할 수 있습니다.
머신러닝 워크플로에서의 데이터 전처리
데이터 전처리는 머신러닝 파이프라인에서 매우 중요한 단계로, 데이터셋이 깔끔하고 연관성이 있으며 모델링에 사용할 준비가 되어 있도록 만듭니다. 적절하게 전처리된 데이터는 정확하고 연관성이 있으며 표준화된 입력을 제공하여 머신러닝 모델의 성능을 대폭 향상할 수 있습니다.
일반적으로 데이터를 전처리를 마친 후에는 머신러닝 모델을 생성하고 훈련시키기 전에 몇 가지 단계를 더 거쳐야 할 수 있습니다. 데이터 전처리 후에 수행되는 특징 엔지니어링은 원시 데이터를 머신러닝에 사용할 수 있는 특징으로 변환하는 반복적 공정입니다. 다음과 같은 작업이 포함됩니다.
- 특징 추출은 원시 데이터를 머신러닝 알고리즘에 적합한 정보로 변환하여 중요한 정보를 보존하는 방식으로 모델 성능을 개선합니다. 이 단계는 영상, 신호, 텍스트 같은 특정 데이터 형식에 대한 분야별 지식을 활용해 수작업으로 수행하거나 알고리즘 또는 딥러닝 신경망을 통해 자동으로 수행할 수 있습니다. 예를 들어, 웨이블릿 산란은 신호나 영상에서 특징을 추출하는 자동화된 방법으로, 데이터에서 모델 개발로의 전환을 간소화합니다.
- 특징 변환은 기존의 특징을 새로운 특징(예측 변수)으로 변경하는 동시에 덜 기술적(descriptive)인 특징은 제거합니다. MATLAB에서는 PCA(주성분 분석), 인자 분석 및 t-SNE(t-분포 확률적 이웃 임베딩) 등 다양한 접근법을 사용할 수 있으며, 이를 통해 모델의 더 의미 있는 특징을 생성할 수 있습니다.
- 특징 선택은 모델링을 위한 최상의 예측 검정력을 제공하는 특징(예측 변수)의 서브셋을 선택하는 차원 축소 기법입니다. MATLAB은 NCA(이웃 성분 분석), MRMR(최소 잉여도-최대 연관성), F-검정, 카이제곱 특징 선택 등 다양한 방법을 지원하여 모델에서 가장 관련성이 높은 특징이 사용되도록 할 수 있습니다.
다양한 데이터 전처리 기법이 서로 다른 머신러닝 알고리즘의 유형에 어울립니다. 이러한 기법은 다양한 유형의 알고리즘 및 활용 사례에서 모델 정확성, 효율성 및 보편성을 개선하는 것을 목표로 하는 머신러닝 모델을 위한 데이터 준비의 기초가 됩니다.
전처리 기법 | 목적 | 응용 가능한 머신러닝 알고리즘 |
데이터 정리 | 누락 데이터 처리, 이상값 제거 및 오차 수정 | 모든 유형 |
데이터 표준화 및 정규화 | 균일성 보장 및 모델 성능 개선을 위한 특징 스케일링 | 모든 유형, 특히 SVM(서포트 벡터 머신) 및 신경망 |
범주형 인코딩 | 알고리즘에서 사용할 목적으로 범주형 변수 변환 | 신경망, 결정 트리 및 포레스트 |
특징 스케일링 | 거리 계산 및 수렴을 목적으로 특징의 스케일 조정 | SVM, 신경망 및 KNN(k-최근접이웃) |
특징 선택 및 특징 변환 | 모델 복잡도 감소, 해석 가능성 및 모델 피팅 개선 | 결정 트리, 포레스트 및 회귀 모델 |
차원 축소 | 변수를 줄여 가장 유익한 정보에 집중 | 군집화 및 PCA |
MATLAB을 사용한 데이터 전처리
올바른 전처리 접근법을 선택하기란 항상 명확하지는 않습니다. MATLAB은 대화형 방식 기능(앱 및 라이브 편집기 작업)과 상위수준 함수를 모두 제공하여 손쉽게 다양한 방법을 시도해 보고 데이터에 적합한 방법을 결정할 수 있도록 돕습니다. 다양한 구성을 반복하여 최적의 설정을 선택하면 추가적인 분석을 위해 데이터를 준비하는 데 도움이 됩니다.
대화형 방식 기능
데이터 정리기 앱을 사용하면 코드를 작성하지 않고 시계열 데이터를 전처리할 수 있습니다. 데이터를 가져와서 정리한 다음, 누락 데이터를 채우고 이상값을 제거할 수 있습니다. 그런 다음에는 수정된 데이터를 MATLAB 작업 공간에 저장하여 추가 분석을 수행할 수 있습니다. 또한 MATLAB 코드를 자동으로 생성하여 단계를 문서화하고 나중에 재현할 수 있습니다.
라이브 편집기 작업은 특정 작업을 수행하기 위해 스크립트에 직접 추가할 수 있는 간단한 포인트 앤 클릭 인터페이스입니다. 이러한 작업은 다양한 설정을 반복하고 응용 사례에 가장 적합한 구성을 파악하도록 대화형 방식으로 구성할 수 있습니다. 데이터 정리기 앱과 마찬가지로, 사용자는 작업 재현을 위해 MATLAB 코드를 자동으로 생성할 수도 있습니다.
누락 데이터 정리, 이상값 데이터 정리, 데이터 정규화 같은 일련의 라이브 편집기 작업을 사용해서 데이터를 각 단계에서 시각화하며 대화형 방식으로 전처리할 수 있습니다.
![데이터 전처리 도구 모음에는 데이터 정리, 변화 지점 찾기 및 극값 찾기, 추세 제거, 데이터의 정규화 및 평활화를 수행하는 라이브 작업이 있습니다.](https://kr.mathworks.com/discovery/data-preprocessing/_jcr_content/mainParsys/columns_915228778_co/879facb8-4e44-4e4d-9ccf-6e88dc1f099b/image_copy_copy.adapt.full.medium.jpg/1738303507963.jpg)
다양한 라이브 작업이 있는 MATLAB의 데이터 전처리 도구 모음.
MATLAB 함수 사용
MATLAB은 데이터 전처리를 포함한 일반적인 수학, 과학 및 공학 계산을 위해 수천 개의 상위수준 내장 함수를 제공합니다.
사용자는 MATLAB에서 원시 데이터셋을 시각화하여 살펴볼 수 있습니다. 예를 들어, 일반적인 날에 받은 일조 강도의 데이터셋 에는 누락값과 이상값이 있습니다. 혹독한 기상 조건은 무선 원격 측정 데이터 전송을 방해하여 원시 데이터셋에 불완전성을 더할 수 있습니다.
이 원시 일조 강도 데이터셋에는 MATLAB으로 다음 5가지 일반적인 데이터 전처리 기법을 적용할 수 있습니다.
데이터 전처리 기법 | MATLAB 플롯 |
---|---|
이상값 처리 원격 측정 데이터의 이상이 이상값으로 표시됩니다. 이상값은 |
|
누락 데이터 채우기 통신이 끊기면 원격 측정에서 데이터 누락이 발생하게 됩니다. |
|
데이터 평활화 잡음이 있는 일조 강도 데이터가 |
|
데이터 정규화
|
|
그룹화
|
|
데이터는 정리가 되어 있지 않을 수도 있지만, 데이터 전처리 기법을 사용하면 데이터 품질을 향상하고 추가적인 분석을 위해 데이터를 준비할 수 있습니다. 자세한 내용은 아래 자료를 참조하십시오.
예제 및 방법
소프트웨어 참조
참조: 데이터 정리, MATLAB을 사용한 데이터 분석, MATLAB 그래픽, 시계열 분석