본문 바로가기
라이프

데이터 전처리의 필수, 스케일링이 중요한 이유

by 2봉이 2024. 5. 29.

데이터 전처리는 머신 러닝 모델의 성능을 향상시키기 위해 필수적인 작업이다. 그 중 스케일링은 변수들의 범위를 조정하여 모델이 더 잘 학습할 수 있게 돕는다. 스케일링이 중요한 이유는 첫째, 변수들 간의 단위 차이로 인해 학습 속도가 저하될 수 있다. 둘째, 비슷한 중요도를 가진 변수가 있다면 스케일링 전에 무작위로 선택되거나 가중치를 부여하기 어렵다. 셋째, 스케일링은 이상치로부터 모델을 보호하고 오차를 최소화하는 데 도움을 준다. 따라서 스케일링은 변수들 사이의 관계를 더 명확하게 해주고 모델의 성능을 향상시킬 수 있다.








1. 일관된 계산을 위한 데이터 정규화

데이터 정규화란 입력 데이터의 범위를 조정하여 일관된 계산을 가능하게 하는 과정이다. 이 과정은 데이터 간의 상대적 크기 차이를 극복하고, 모델의 학습 성능을 향상시키는 데에 도움을 준다.

주로 사용하는 데이터 정규화 방법은 크게 선형 정규화, Z-점수 정규화, 로그 변환 등이 있다.

1. 선형 정규화: 입력 데이터의 범위를 [0, 1] 또는 [-1, 1]로 조정하는 방법이다. 입력 데이터에서 최소값을 뺀 뒤, 최대값과 최소값의 차이로 나눔으로써 정규화된 데이터를 얻을 수 있다.

2. Z-점수 정규화: 입력 데이터의 평균을 0으로, 표준편차를 1로 만드는 방법이다. 입력 데이터에서 평균을 뺀 뒤, 표준편차로 나누어 정규화된 데이터를 얻을 수 있다.

3. 로그 변환: 입력 데이터가 한쪽으로 굉장히 치우쳐 있는 경우, 로그 변환을 통해 분포를 정규분포에 가깝게 만들 수 있다. 로그 변환은 주로 양수 데이터에 적용되며, 데이터에 로그 함수를 적용하여 정규화된 데이터를 얻을 수 있다.

이러한 데이터 정규화 방법들은 데이터의 분포를 조정하여 모델의 학습 속도를 향상시키고, 이상치에 덜 민감하도록 도와준다. 하지만, 어떤 데이터 정규화 방법을 사용할지는 데이터의 특성과 해당 모델에 따라 달라질 수 있다. 따라서, 데이터 정규화는 데이터 분석의 첫 단계에서 중요한 작업 중 하나이다.

 

2. 다양한 변수들의 적절한 비교를 위한 데이터 표준화

데이터 표준화는 다양한 변수들을 비교하고 분석하기 위해 필요한 과정입니다. 데이터가 서로 다른 단위나 척도를 가지고 있을 때, 데이터를 표준화하여 동일한 기준으로 비교할 수 있게 됩니다.

표준화는 크게 두 가지 방법으로 수행될 수 있습니다. 첫 번째는 Min-Max 정규화 방법입니다. 이 방법은 데이터의 최솟값을 0, 최댓값을 1로 설정하여 데이터를 [0,1] 범위로 변환합니다. 이는 데이터 간 상대적인 크기 차이를 없애주며, 어떤 변수의 중요도를 비교할 때 유용합니다.

두 번째 방법은 Z-score 정규화 방법입니다. 이 방법은 평균과 표준편차를 이용하여 데이터를 정규분포로 변환합니다. 데이터의 평균을 0, 표준편차를 1로 설정하여 데이터를 변환합니다. 이는 데이터가 평균으로부터 얼마나 떨어져 있는지를 측정할 수 있게 해주며, 이상치를 식별하는 데에도 효과적입니다.

데이터를 표준화하는 이유는 다양한 변수들을 동일한 기준으로 비교하기 위함입니다. 예를 들어, 나이와 소득 데이터를 비교한다고 가정해보겠습니다. 나이는 숫자의 크기로 비교가 가능하지만, 소득은 단위가 다르고 숫자의 크기 자체로 비교가 어렵습니다. 데이터를 표준화하면 나이와 소득을 동일한 기준으로 비교할 수 있게 됩니다.

데이터 표준화는 데이터 분석과 모델링에서 중요한 전처리 과정입니다. 데이터를 분석하고 모델을 만들기 전에 데이터 표준화를 통해 변수들을 비교 가능한 상태로 만들어야 합니다. 이를 통해 정확한 분석 결과를 얻을 수 있고, 모델의 성능을 향상시킬 수 있습니다.

 

3. 모델의 성능 향상을 위한 데이터 변환

모델의 성능을 향상시키기 위해 데이터 변환은 매우 중요합니다. 데이터 변환은 데이터의 특성을 더 잘 나타내거나 모델링에 적합하도록 데이터를 조작하는 작업을 의미합니다.

데이터의 변환은 크게 두 가지 방법으로 수행할 수 있습니다. 첫 번째로는 데이터 스케일링입니다. 데이터 스케일링은 주어진 데이터의 범위를 조절하여 데이터의 분포를 적절하게 맞추는 작업을 의미합니다. 스케일링은 일반적으로 표준화(Standardization)와 정규화(Normalization)의 두 가지 기법으로 수행됩니다. 표준화는 데이터의 평균을 0으로, 표준 편차를 1로 맞추는 작업을 의미하고, 정규화는 데이터를 일정한 범위로 변환하는 작업을 의미합니다. 데이터 스케일링은 모델의 성능을 향상시키는데 중요한 역할을 합니다.

두 번째로는 데이터 인코딩입니다. 데이터 인코딩은 범주형 데이터를 모델에 사용할 수 있는 형태로 변환하는 작업을 의미합니다. 범주형 데이터는 문자열 형태로 표현되는데, 이러한 데이터는 모델에 바로 사용할 수 없고 수치형 데이터로 변환해야 합니다. 데이터 인코딩의 대표적인 방법은 원-핫 인코딩(One-hot Encoding)입니다. 원-핫 인코딩은 각 범주형 변수마다 새로운 이진 변수를 생성하여 해당 변수가 해당 범주에 속하는지 여부를 나타내는 방식입니다. 이렇게 생성된 새로운 변수들은 모델 학습에 사용됩니다.

데이터 변환은 모델의 성능을 향상시키는데 큰 영향을 미칩니다. 적절한 데이터 스케일링과 인코딩 기법을 선택하여 데이터를 변환하면 모델에 더 적합한 학습 데이터를 제공할 수 있고, 더 나은 성능을 얻을 수 있습니다. 따라서 데이터 변환은 머신 러닝 모델 구축 과정에서 필수적인 단계입니다.

 

4. 이상치의 영향력 완화를 위한 데이터 조정

이상치의 영향력을 완화하기 위해 데이터 조정은 다양한 방법으로 수행될 수 있습니다.

1. 이상치 제거 (Outlier Removal):
이상치를 감지하고 제거하는 방법으로, 이상치를 가지는 샘플을 데이터셋에서 제외시킵니다.
이상치는 일반적인 데이터 패턴에서 크게 벗어나는 값을 가지는 샘플로 정의될 수 있습니다.

2. 이상치 대체 (Outlier Imputation):
이상치를 대체하는 방법으로, 제거하지 않고 대체값으로 대체합니다.
예를 들어, 평균, 중간값, 가장 흔한 값 등의 대체값을 사용하여 이상치를 채울 수 있습니다.

3. 이상치 영향 감소 (Outlier Impact Reduction):
이상치로 인한 영향을 완화하기 위해 이상치에 가중치를 부여하는 방법으로, 다른 값들에 비해 작은 가중치를 가지도록 조정합니다.
가중치 부여에는 로버스트 회귀 (Robust Regression)와 같은 방법이 사용될 수 있습니다.

4. 데이터 변환 (Data Transformation):
이상치의 영향을 완화하기 위해 데이터의 분포를 변환하거나 스케일링하는 방법입니다.
예를 들어, 로그 변환, 정규화, 표준화 등의 방법을 사용하여 데이터를 조정할 수 있습니다.

이상치의 영향력을 완화하기 위한 데이터 조정은 원본 데이터의 품질과 분석 목표에 따라 선택되어야 하며, 데이터 조정 후에도 적절한 검증과 평가가 필요합니다.

 

5. 다른 스케일을 가진 변수 간의 상대적 중요성 비교를 위한 데이터 조정

다른 스케일을 가진 변수들 간의 상대적 중요성 비교를 위해 데이터를 조정하는 방법에는 여러 가지가 있습니다.

1. Standardization (표준화): 이 방법은 변수들을 평균이 0이고 표준편차가 1인 스케일로 조정하는 것입니다. 이를 통해 변수들 간의 상대적 크기 비교가 가능해집니다.

2. Normalization (정규화): 이 방법은 변수들을 0과 1 사이의 범위로 조정하는 것입니다. 각 변수의 값들을 최소값으로 빼고 최대값과 최소값의 차이로 나누어 정규화합니다. 이를 통해 변수들 간의 상대적 크기 비교가 가능해집니다.

3. Log Transformation (로그 변환): 이 방법은 변수들을 로그를 취하여 변환하는 것입니다. 일부 변수들은 큰 값들을 가지고 있을 수 있으므로 로그 변환을 통해 변수들 간의 크기 비교를 보다 명확하게 할 수 있습니다.

4. Min-Max Scaling (최소-최대 확장): 이 방법은 변수들을 특정 범위 내로 조정하는 것입니다. 최소값과 최대값을 정하여 각 변수들의 값을 해당 범위의 값으로 변환합니다. 이를 통해 변수들간의 크기 비교가 가능해집니다.

이러한 데이터 조정 방법들은 변수들 간의 상대적 중요성을 비교하는 목적에 맞추어 사용되며, 변수들이 다른 스케일을 가지는 경우에 유용하게 활용될 수 있습니다.