Study/Statistics
[분석/통계] 데이터 전처리와 스케일 조정 방법
쑨블리
2019. 5. 28. 15:45
데이터 분석을 시작하기 전에 데이터를 전처리하거나 데이터의 스케일을 일정하게 조정한다면 지도학습에서의 정확도가 상승하기도 하여 분석전에 중요하게 해야하는 작업입니다.
특히 svm이나 인공신경망은 사용하기 전에 꼭 해주어야하는 작업입니다.
아래와 같은 데이터셋을 각각의 조정법으로 변환하면 어떻게 될지 확인해보겠습니다.
StandardScaler |
![]() |
각 특성의 평균을 0, 분산을 1로 변경하여 모든 특성이 같은 크기를 갖게함 ![]() 특성의 최솟값과 최대값의 크기를 제한하지 않음 인공신경망 중 MLPClassifier사용시 해야하는 작업 |
RobustScaler | ![]() |
특성들이 같은 스케일을 갖게 된다는 점은 StandardScaler과 비슷 중앙값과 사분위값을 사용 ![]() 이상치에 영향을 받지 않음 |
MinMaxScaler | ![]() |
모든 특성이 정확하게 0과 1사이에 위치하도록 데이터 변경 ![]() svm 이용시 해야하는 작업 |
Normalizer | ![]() |
특성 벡터의 유클리디안 길이가 1이 되도록 데이터 포인트를 조정 이 방법은 특성 벡터의 길이는 상관 없고 데이터의 방향(또는 각도)만이 중요할 때 많이 사용 |
변환을 할 때 주의해야하는 점이 있습니다.
테스트 데이터와 훈련 데이터의 스케일을 같은 방법으로 조정
훈련 데이터의 스케일 조정 : 훈련 데이터만 가지고 조정
테스트 데이터의 스케일 조정 : 훈련 데이터만 가지고 조정
데이터 전체를 기준이 아닌 훈련 데이터 기준인 이유는 훈련시킬 때 몰라야하는 테스트 정보가 들어가지기 때문
* 만약 훈련 데이터의 조정값이 범위를 벗어나는 경우
- 벗어난 조정값 그대로 사용
- 조정된 범위의 최소, 최대 값으로 변환