728x90
크기가 다른 여러 데이터를 분석할 때 스케일을 맞추지 않으면 동등비교가 되지 않고 모델에서 큰 값을 가진 데이터의 영향력이 커지게 되어 잘못한 분석결과를 도출할 수 있다. 또한 모델의 최적화 과정에서도 어려움을 겪게 된다.
1) 표준화(Standardization)
표준화는 데이터를 평균이 0이고 표준편차가 1인 분포로 변환해준다.
(X – X의 평균) / X의 표준편차
2) 정규화(Normalization)
정규화는 범위가 0~1인 데이터로 변환해준다.
(X – X의 Min) / (X의 Max – X의 Min)
import FinanceDataReader as fdr
if __name__ == '__main__':
aapl = fdr.DataReader('AAPL', '2021-01-01')
ssec = fdr.DataReader('005930', '2021-01-01')
price = aapl[['Close']].merge(ssec[['Close']], how='outer', left_index=True, right_index=True)
price = price.rename(columns={'Close_x': 'AAPL', 'Close_y': 'SSEC'})
price = price.dropna()
# Standardization
print((price - price.mean()) / price.std())
# Normalization
print((price - price.min()) / (price.max() - price.min()))
결과 값
AAPL SSEC
Date
2021-06-15 -1.308061 0.359286
2021-06-16 -1.029953 1.720792
2021-06-17 -0.135646 0.359286
2021-06-18 -0.860908 -0.245827
2021-06-21 0.142462 -1.153498
2021-06-22 1.058582 -1.002220
2021-06-23 0.905896 -0.850941
2021-06-24 1.227628 0.813122
AAPL SSEC
Date
2021-06-15 0.000000 0.526316
2021-06-16 0.109677 1.000000
2021-06-17 0.462366 0.526316
2021-06-18 0.176344 0.315789
2021-06-21 0.572043 0.000000
2021-06-22 0.933333 0.052632
2021-06-23 0.873118 0.105263
2021-06-24 1.000000 0.684211
728x90
'Data Science > Data Preprocessing' 카테고리의 다른 글
[03. Feature Engineering] 004. Transform (0) | 2021.06.29 |
---|---|
[03. Feature Engineering] 003. Binning (0) | 2021.06.29 |
[03. Feature Engineering] 001. Aggregation (0) | 2021.06.24 |
[02. Data Quality Assessment] 003. Duplicate values (0) | 2020.12.18 |
[02. Data Quality Assessment] 002. Outlier values (0) | 2020.12.18 |