'제로베이스 데이터스쿨'에서 머신러닝 강의가 시작되었습니다. 오늘은 강의에서 다룬 3가지 스케일러에 대해 따로 정리하는 포스트를 작성하려고 합니다.
머신러닝에서 데이터를 다룰 때, 다양한 변수들이 서로 다른 스케일을 가지고 있는 경우가 많습니다. 예를 들어, 한 변수는 수백의 범위를 가지고 있는 반면 다른 변수는 소수점 단위의 범위를 가질 수 있습니다. 이렇게 서로 다른 스케일을 가진 데이터를 그대로 사용하면, 각각의 변수가 결과에 끼치는 영향력을 올바르게 평가하기 힘들고, 모델 학습에 부정적인 영향을 미칠 수 있습니다. 스케일링은 이러한 변수들을 동일한 범위나 분포로 조정하여, 모든 변수가 모델 학습에 공평하게 기여할 수 있도록 합니다.
보통 스케일러 자체만으로 모델의 성능이 크게 좌우되지는 않지만, 때로는 데이터의 특성이나 모델에 따라 스케일러의 선택이 중요하기도 합니다. 일반적으로 사용되는 세 가지 스케일링 방법 - Min-Max Scaler, Standard Scaler, Robust Scaler에 대해 정리해 보겠습니다.
Min-Max Scaler는 각 데이터 포인트를 0과 1 사이의 값으로 변환합니다. 이 스케일링 방법의 핵심은 데이터의 각 특성에 대해 최소값과 최대값을 이용하는 것입니다. Min-Max Scaler는 다음 공식을 사용하여 각 데이터 포인트를 변환합니다.
알겠습니다. Min-Max Scaler의 공식을 LaTeX 형식으로 작성하겠습니다:
여기서 은 해당 특성의 최소값, 은 최대값을 나타냅니다.
Min-Max Scaler는 모든 특성을 동일한 스케일로 조정합니다. 이는 모델이 각 특성을 동등하게 취급하도록 합니다. 또한, 데이터의 원래 분포를 유지하면서 스케일링을 수행합니다. 하지만 Min-Max Scaler는 이상치에 민감합니다. 데이터에 이상치가 포함되어 있는 경우, 다른 모든 정상 값들이 매우 좁은 범위로 압축될 수 있습니다.
Min-Max Scaler는 이상치가 많이 없는 경우 사용하는 것이 좋습니다. 이상치가 존재하는 경우에는 다른 스케일링 방법을 고려하는 것이 좋습니다.
Standard Scaler는 데이터의 특성들을 평균이 0이고 표준편차가 1이 되도록 변환하는 스케일링 방법입니다. 각 특성의 평균을 빼고, 그 결과를 해당 특성의 표준편차로 나누어 계산합니다.
여기서 은 해당 특성의 평균, 는 표준편차를 나타냅니다.
Standard Scaler는 모든 특성을 같은 스케일로 조정합니다. 특히 경사 하강법과 같은 최적화 알고리즘에서 모델의 수렴 속도를 향상시키고, 보다 나은 성능을 달성하는 데 도움이 됩니다.
그러나 Standard Scaler 역시 이상치에 영향을 받을 수 있습니다. 이상치가 존재할 경우, 평균과 표준편차가 크게 영향을 받아, 결과적으로 스케일링이 왜곡될 수 있습니다.
Standard Scaler는 대부분의 머신러닝 알고리즘에 적합하며, 특히 선형 모델, 로지스틱 회귀, 서포트 벡터 머신과 같은 모델에서 효과적입니다. 하지만 데이터에 이상치가 있는 경우에는 다른 스케일링 방법도 고려해야 합니다.
Robust Scaler는 앞선 두 스케일러와 다른 장점을 갖는 스케일러입니다. Robust Scaler는 데이터의 중앙값(median)과 IQR(Interquartile Range)을 사용하여 이상치의 영향을 최소화합니다.
여기서 은 해당 특성의 중앙값, IQR은 1사분위수(Q1)와 3사분위수(Q3)의 차이입니다.
Robust Scaler는 이상치에 대한 민감도가 낮기 때문에 이상치가 있는 데이터를 스케일링 하는데 유용합니다. 그러나 데이터의 분포를 변경시켜 분포가 넓어질 수 있다는 단점이 있습니다.
Robust Scaler는 이상치가 포함된 데이터에 적합한 스케일링 방법입니다. 이 방법은 특히 이상치의 영향을 받기 쉬운 모델에 유용하게 사용될 수 있습니다. 하지만 데이터의 분포를 넓히는 특성 때문에, 데이터의 전반적인 특성을 고려하여 적절하게 적용해야 합니다.
Min-Max Scaler, Standard Scaler, Robust Scaler 각각은 독특한 특징을 가지고 있으며, 데이터의 특성과 모델의 요구사항에 따라 적절한 스케일링 방법을 선택해야 합니다.
세 가지 스케일러를 코드로 구현하는 것은 비교적 간단합니다. 하지만 이들 중 어떤 스케일러를 선택할지 결정하는 것은 분석가의 판단력을 요구합니다. 각 스케일러는 데이터의 특성과 모델의 요구사항에 따라 다르게 적용되어야 하며, 올바른 선택은 모델의 성능에 큰 차이를 만들 수도 있습니다.