Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

변수 변환이란? 단순 함수 변환과 정규화·표준화 완벽 정리

변수 변환의 정의

변수 변환(variable transformation)은 변수의 값에 적용되는 일종의 변환 규칙을 의미합니다. 즉, 모든 객체(object)에 대해 해당 객체가 가진 변수 값에 동일한 변환이 일괄적으로 적용됩니다. 예를 들어 변수의 부호보다 크기만 중요하다면, 절댓값을 취하는 방식으로 변수 값을 변환할 수 있습니다.

변수 변환은 크게 두 가지 유형으로 나눌 수 있습니다. 하나는 단순 함수 변환(simple functional transformation)이며, 다른 하나는 정규화 또는 표준화(normalization or standardization)입니다.

단순 함수 변환(Simple Functions)

단순 함수 변환은 각 값에 독립적으로 수학 함수를 적용하는 방식입니다. 변수가 x라면 xk, log x, ex, √x, 1/x, sin x, |x| 등이 대표적인 예입니다.

통계학에서는 특히 제곱근(sqrt), 로그(log), 역수(1/x) 같은 변환을 활용해 정규분포(가우시안 분포)를 따르지 않는 데이터를 정규분포에 가까운 형태로 바꾸는 데 사용합니다. 다만 데이터 마이닝에서는 분포 형태보다 다른 목적이 더 우선하는 경우도 많습니다.

예를 들어 관심 변수가 '세션(session)에서 전송된 데이터 바이트 수'이고, 그 값이 1바이트부터 10억 바이트까지 폭넓게 분포한다고 가정해 봅시다. 이처럼 범위가 매우 넓은 경우에는 log10 변환으로 값을 압축하는 것이 유용합니다. log10 변환을 적용하면 108바이트와 109바이트를 전송한 세션은, 10바이트와 1,000바이트를 전송한 세션보다 서로 더 유사하게 취급됩니다(9 − 8 = 1 vs. 3 − 1 = 2).

변수 변환은 데이터의 본질적인 성격을 바꾸기 때문에 반드시 신중하게 적용해야 합니다. 변환의 특성을 충분히 이해하지 못한 채 사용하면 문제가 발생할 수 있습니다. 예를 들어 1/x 변환은 1 이상의 값들의 상대적 중요도는 낮추지만, 0과 1 사이의 값들의 중요도는 오히려 높입니다.

정규화와 표준화(Normalization / Standardization)

또 다른 대표적인 변수 변환 방식은 변수의 표준화(standardization) 또는 정규화(normalization)입니다. 그 목표는 특정 속성을 만족하는 값들의 집합을 만드는 것입니다. 통계학에서 흔히 말하는 "변수 표준화"가 좋은 예입니다. 변수 값들의 평균을 μ, 표준편차를 sx라고 할 때, z = (x − μ) / sx 변환을 적용하면 평균이 0이고 표준편차가 1인 새로운 변수가 만들어집니다.

여러 변수를 결합하거나 함께 사용해야 하는 경우, 값의 크기가 큰 변수가 계산 결과를 지배하는 현상을 막기 위해 이러한 변환이 자주 필요합니다.

그런데 평균과 표준편차는 이상치(outlier)에 매우 민감합니다. 그래서 실무에서는 앞선 변환을 다음과 같이 수정해 사용하기도 합니다. 첫째, 평균 대신 중앙값(median), 즉 가운데 위치한 값을 사용합니다. 둘째, 표준편차 대신 절대 표준 편차(absolute standard deviation)를 사용합니다. 구체적으로 변수 x에 대한 절대 표준 편차는 σA = Σi=1m |xi − μ|로 정의됩니다. 여기서 xi는 변수의 i번째 값, m은 객체 수, μ는 평균 또는 중앙값입니다.