데이터 변환이란?
데이터 변환(Data Transformation)은 수집된 원시 데이터를 데이터 마이닝에 적합한 형태로 변환하거나 결합하는 전처리 단계입니다. 잘 정제되고 구조화된 데이터는 분석 모델의 성능과 정확도를 좌우하기 때문에, 데이터 변환은 데이터 마이닝 파이프라인에서 매우 중요한 역할을 담당합니다.
주요 데이터 변환 기법
1. 스무딩(Smoothing)
데이터에 포함된 노이즈(noise)를 제거하는 기법입니다. 빈닝(binning), 회귀(regression), 클러스터링(clustering) 등의 방법이 대표적이며, 사실상 데이터 정제(data cleaning)의 한 형태로 볼 수 있습니다.
2. 집계(Aggregation)
데이터에 요약(summary) 또는 집계 연산을 적용하는 과정입니다. 예를 들어 일별 판매 데이터를 집계하여 월간 및 연간 총매출을 산출할 수 있습니다. 이 단계는 여러 입자성(granularity) 수준에서 데이터를 분석하기 위한 데이터 큐브(data cube)를 구축할 때 널리 활용됩니다.
3. 일반화(Generalization)
개념 계층(concept hierarchy)을 활용해 저수준의 원시(raw) 데이터를 상위 수준의 개념으로 치환하는 기법입니다. 예를 들어 '거리'와 같은 범주형 속성은 '도시'나 '국가'처럼 더 높은 수준의 개념으로 일반화할 수 있으며, '나이'와 같은 수치형 속성 값도 '청년', '중년', '노년'으로 매핑할 수 있습니다.
4. 정규화(Normalization)
속성 값을 -1.0 ~ 1.0 또는 0.0 ~ 1.0처럼 지정된 작은 범위 안으로 스케일링하는 과정입니다.
5. 속성 생성(Attribute Construction)
기존 속성 집합으로부터 새로운 속성을 만들어 추가함으로써 마이닝 프로세스를 효율적으로 돕는 기법입니다.
스무딩은 데이터 정제 과정의 일종으로, 사용자가 지정한 변환 규칙을 통해 데이터 불일치를 수정합니다. 반면 집계와 일반화는 데이터 축소(data reduction)의 형태로 작동합니다.
정규화가 중요한 이유
정규화는 신경망(neural network)이나 최근접 이웃(nearest-neighbor) 분류, 클러스터링과 같은 거리 기반 알고리즘에서 특히 유용합니다. 신경망 역전파(backpropagation) 알고리즘을 분류 마이닝에 사용할 경우, 학습 튜플의 각 속성 입력값을 정규화하면 학습 단계의 속도를 크게 높일 수 있습니다.
또한 거리 기반 방법에서는 정규화를 통해 초기 값 범위가 넓은 속성(예: 소득)이 범위가 좁은 속성(예: 이진 속성)보다 과도하게 큰 영향을 미치는 현상을 방지할 수 있습니다. 대표적인 데이터 정규화 방법은 다음과 같습니다.
1. 최소-최대(Min-Max) 정규화
원본 데이터에 선형 변환(linear transformation)을 적용하는 방식입니다. 속성 A의 최솟값과 최댓값을 각각 minA, maxA라 할 때, 값 v는 다음 식을 통해 [new_minA, new_maxA] 범위의 v'로 변환됩니다.
v' = ((v − minA) / (maxA − minA)) × (new_maxA − new_minA) + new_minA
2. Z-점수(Z-Score) 정규화
Z-점수 정규화(또는 평균 0 정규화, zero-mean normalization)는 속성 A의 평균과 표준편차를 기준으로 값을 정규화합니다. 속성 A의 값 v는 다음과 같이 v'로 변환됩니다.
v' = (v − Ā) / σA
여기서 Ā와 σA는 각각 속성 A의 평균과 표준편차입니다. 이 방법은 속성 A의 실제 최솟값·최댓값을 알 수 없거나, 이상치(outlier) 때문에 최소-최대 정규화 결과가 왜곡될 때 특히 유용합니다.
3. 소수점 자릿수(Decimal Scaling) 정규화
속성 A의 값들에 대해 소수점 위치를 이동시키는 방식으로 정규화를 수행합니다. 소수점을 이동하는 자릿수 j는 A의 최대 절댓값에 따라 결정되며, 값 v는 다음과 같이 v'로 변환됩니다.
v' = v / 10j
여기서 j는 Max(|v'|) < 1을 만족하는 가장 작은 정수입니다.