데이터를 모델링 하기 위해서는 데이터를 좀 더 정제할 필요가 있다. 실제 프로젝트를 진행할때 정규화 및 표준화를 진행하지 않고 값을 넣었더니 모델들의 수치가 굉장히 이상하게 나온 적이 있었다. 그러한 경우를 방지하기 위해 정규화 및 표준화의 개념과 전반적인 진행과정을 서술해보고자 한다.
데이터 정규화 및 표준화의 개념
정규화와 표준화는 데이터를 일정한 범위나 분포로 변환시키는 방법이다. 정규화는 데이터의 범위를 0과 1 사이로 조정하는 방법이며, 표준화는 데이터의 분포를 평균이 0이고 표준편차가 1인 정규분포로 만드는 방법이다.

데이터 정규화 및 표준화의 목적
정규화와 표준화의 주요 목적은 데이터의 스케일을 조정하여 다양한 변수들 간의 비교를 용이하게 하고, 머신러닝 알고리즘의 성능을 개선하는 것이다. 여러 변수들이 다른 스케일을 가지고 있을 때, 이를 그대로 사용하면 알고리즘이 특정 변수에 치우친 결과를 도출할 수 있다. 또한, 일부 알고리즘은 데이터의 분포가 정규분포를 따르는 것을 가정하고 있기 때문에, 이러한 가정을 충족시키기 위해 표준화를 사용하기도 한다. 본 글에서는 크게 4가지 목적을 서술해 보겠다.
1. 이상치 처리
이상치는 일반적인 데이터 패턴과 다른 값을 가지는 데이터로, 이를 처리하지 않으면 모델의 성능이 저하될 수 있다. 정규화와 표준화를 통해 이상치의 영향을 줄이고 더욱 정확한 학습을 할 수 있다.
2. 변수 간 스케일 차이 해결
A값이 [1,2,3]으로 이루어져 있고 B값이 [100000,232388,22222222]으로 이루어져 있다면 변수 간의 스케일 차이로 인해 올바른 학습을 수행하지 못할 수 있다. 이 값의 차이를 줄이는 것은 더욱 정확한 결과를 만든다.
3. 모델의 수렴 속도 향상
일부 머신러닝 알고리즘은 데이터가 정규 분포를 따를 때 최적의 성능을 발휘한다. 데이터 분포를 조정하면 빠르게 수렴하고 최적의 결과를 얻을 수 있다.
4. 고차원 데이터 문제 해결
고차원 데이터는 변수의 개수가 많아지면서 학습의 어려움을 초래할 수 있다. 이때 정규화 및 표준화를 통해 변수들을 조정하면, 데이터의 불필요한 차원을 줄이고 모델 학습을 효율적으로 진행할 수 있다.
데이터 정규화 및 표준화 방법
1) 정규화
정규화는 데이터의 값을 특정 범위로 조정하는 방법으로 가장 일반적인 방법은 최소-최대 정규화(Min - Max Normalization)이다. 이 방법은 데이터의 최솟값과 최댓값을 이용하여 데이터를 일정 범위 내의 값으로 변환시킨다. 일반적으로 최솟값을 0, 최댓값을 1로 변환한다.
2) 표준화
표준화는 데이터의 평균을 0으로, 표준편차를 1로 조정하는 방법입니다. 가장 일반적인 표준화 방법은 Z-점수 표준화(Z-score standardzation)이다. 이 방법은 데이터의 각 값에서 평균을 빼고, 표준편차로 나누어 변환하는 방법이다.
데이터 정규화 및 표준화의 선택 기준
1. 모델 종류에 따른 선택
- 신경망 모델: 정규화를 선호한다. 신경망은 보통 입력 데이터의 크기와 분포에 민감하게 반응하므로, 정규화를 통해 데이터의 범위를 [0,1] Ehsms [-1,1]로 조정하는 것이 도움이 된다
- 트리 기반 모델: 일반적으로 정규화 또는 표준화를 적용하지 않는다. 상대적인 순서를 고려하기 때문에 데이터의 스케일링에 큰 영향을 받지 않는다.
- 기타 모델: 모델에 따라 다르지만, 일반적으로 정규화나 표준화 중 하나를 선택하여 적용한다. 이 경우, 데이터 분포와 특성을 고려하여 선택하는 것이 중요하다
2. 데이터 분포와 특성 고려
- 정규화: 데이터가 이상치가 없으며, 분포가 크게 치우쳐 있지 않을 때 유용하다. 예를 들어, 이미지 픽셀값의 범위를 [0,1]로 조정하거나, 자연어 처리에서 문장 길이를 정규화하는 경우가 있다.
- 표준화: 데이터에 이상치가 있거나, 분포가 치우쳐 있을 때 유용하다. 이 방법은 데이터를 평균이 0이고 표준 편차가 1인 정규 분포로 변환한다. 특히, 선형 회귀나 로지스틱 회귀와 같은 모델에서 특성의 스케일링이 중요한 역할은 한다.
머신러닝 딥러닝을 학습할 때 더 좋은 성능을 낼 수 있는 것은 경우에 따라 다르다. 어떤 경우에는 정규화, 다른 경우에는 표준화가 효과적일 수 있다. 그래서 두 방법을 모두 사용해 본뒤 어느 것이 더 나은지 비교해 봐야 한다!
'IT > 데이터분석 도전하기' 카테고리의 다른 글
| [상관계수] 피어슨 상관계수와 스피어만 상관계수의 이해: 언제 어떤 것을 사용해야 할까? (0) | 2024.02.20 |
|---|---|
| [다중공선성] 다중공선성 문제와 해결 방법 (0) | 2024.02.16 |
| [데이터 분석] 데이터 분석 기본 과정 (0) | 2024.02.02 |
| [인코딩] 원핫 인코딩(One-Hot Encoding) / 라벨 인코딩(Label Encoding) (0) | 2024.01.30 |
| [변수] 독립변수와 종속변수가 무엇일까? (0) | 2024.01.27 |