데이터 스케일링을 하는 이유
데이터 스케일링이란 피쳐들의 범위를 재조정하는 과정이다. 모델링을 진행하기 전 전처리 단계에서 스케일링은 모델의 학습 속도와 정확도를 높일 수 있다. 스케일링을 진행하는 이유는 다음과 같다.
1.
피쳐 간의 균일한 중요도 부여: 서로 다른 단위나 범위를 가진 여러 특성들이 있을 때, 이들을 동일한 스케일로 조정함으로써 모델이 모든 특성을 공평하게 고려할 수 있게 한다.
2.
학습 속도 향상: 많은 기계학습 알고리즘들, 특히 경사 하강법(gradient descent)을 사용하는 알고리즘들은 스케일링된 데이터에서 더 빠르고 효과적으로 수렴하낟.
3.
수치적 안정성: 컴퓨터는 제한된 정밀도로 숫자를 처리하기 때문에, 매우 크거나 작은 값은 수치적 문제를 일으킬 수 있다. 데이터 스케일링은 이러한 문제를 완화할 수 있다.
4.
거리 기반 알고리즘의 효율성: K-최근접 이웃(KNN)이나 K-평균(K-means)과 같은 거리 기반 알고리즘은 데이터의 스케일에 민감하다. 이러한 알고리즘에서 스케일링은 거리 계산을 더 효율적으로 할 수 있도록 해준다.
5.
규제화(regularization)의 올바른 적용: 모델의 복잡도가 높거나 학습데이터셋이 적을 때, 학습데이터에 너무 민감하게 모델이 학습 될 수 있다. 이 때 규제화를 통해 이를 완화할 수 있다. 선형 회귀나 로지스틱 회귀와 같은 알고리즘에서 규제화 기법을 사용할 때, 모든 특성이 동일한 스케일을 가져야 규제화가 제대로 작동한다.
스케일링의 종류
데이터를 스케일링하는데는 다양한 방법이 있다. 우리는 최대-최소 스케일링, 정규화 스케일링에 대해서 알아보겠다. 더 다양한 방법들은 사이킷런에서 제공하는 (sklearn.preprocessing:Preprocessing and Normalization)에서 확인해보자.
최대-최소 스케일링
개의 샘플과 개의 피쳐를 포함한 데이터셋 에 대해서 최대-최소 스케일링은 각 피쳐벡터에 대해서 다음과 같은 전처리를 수행한다.
최대-최소 스케일링에서 각 피쳐 벡터들은 최소값을 빼고, 각 피쳐마다의 (최대 - 최소)만큼을 나누므로 0과 1사이의 값을 가짐을 알 수 있다.
정규화 스케일링
정규화 스케일링은 통계학에서 많이 쓰이는 방법으로 각 피쳐벡터들의 평균을 0, 분산이 1이 되도록 전처리를 진행한다. 각 피쳐 벡터 의 평균이 이고, 분산이 일 때, 정규화 스케일링은 다음과 같다.
스케일링을 사용해야 하는 경우
스케일링은 피쳐들의 범위를 제한해주는 전처리 과정으로, 거리-기반 모델들을 사용해야 할 때 진행해햐함을 유추해볼 수 있다.
Q1. 스케일링이 필요한 모델과 필요하지 않은 모델들에는 무엇이 있는지 찾아보자.