데이터 표준화와 정규화. 하나씩 알아갈 때는 헷갈리지 않았는데, 막상 분석을 하려고 하니 헷갈린다. 그래서 표준화와 정규화의 공통점과 차이점에 대해 포스팅해보고자 한다.
표준화(standardization) | 정규화(normalization) | |
공통점 | 데이터 rescaling | |
정의 &목적 |
데이터가 평균으로부터 얼마나 떨어져있는지 나타내는 값으로, 특정 범위를 벗어난 데이터는 outlier로 간주, 제거 | 데이터의 상대적 크기에 대한 영향을 줄이기 위해 데이터범위를 0~1로 변환 |
값의 범위 | ±1.96(또는 ±2) 데이터만 선택 | 0~1 |
공식 | ||
파이썬 코드 |
from scipy import statsdf['new컬럼명'] = stats.zscore(df['Z값 구할 컬럼명'] df = df[df['Z값 넣은 new 컬럼명']. between( -2,2)] |
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() df[ : ] = scaler.fit_transform(df[ : ]) |
코딩 결과 | 1개 컬럼만 표준화 시킬 수 있음 | 여러 컬럼을 한꺼번에 정규화 시킬 수 있음 |
지금까지 배운 내용에 의하면, 분석을 할 때는 데이터 표준화를 통해 outlier를 제거하고, 그 다음 데이터 정규화를 하여 상대적크기에 대한 영향력을 줄인 다음 분석을 시작한다. (단, 요구사항이 outlier 제거가 필요없다고 하면 표준화 단계를 안할 수도 있다.)
각각의 더 자세한 내용은 아래 포스팅을 참고하자~! (클릭시 이동)
데이터 표준화(standardization) : https://soo-jjeong.tistory.com/121
데이터 정규화(normalization) : https://soo-jjeong.tistory.com/122
'낭만적(?) 일상 > 파이썬, 데이터분석' 카테고리의 다른 글
데이터 분석시, 배깅(Bagging)을 하는 이유 (0) | 2019.07.24 |
---|---|
날짜(date)를 인덱스(index)로 만드는 파이썬 코드 (0) | 2019.07.06 |
파이썬 전처리③정규화(normalization)로 scale맞추기 (2) | 2019.06.29 |
파이썬 전처리②표준화(standardization)로 이상치제거 (2) | 2019.06.28 |
파이썬 전처리①결측치 확인, 결측치 처리(제외)하기 (5) | 2019.06.27 |