평활화
- 데이터의 분포를 매끄럽게 함으로써 데이터에서 중요하지 않은 것(잡음 등)을 제거하고 패턴을 알아내는 방법
- 목적: 값의 변화를 매끄럽게 하여 데이터의 추세(경향)을 알기 쉽게 하는 것
이동평균 (MA, Moving Average)
- 이동평균은 이전 n개 데이터의 비가중/가중 평균
- 단순이동평균, 누적이동평균, 가중이동평균 등이 있음
평활화 실습
- 실습 데이터 준비: 1821년부터 1934년까지 캐나다 시라소니의 수에 대한 시계열 데이터 lynx.csv
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
file_path = 'https://raw.githubusercontent.com/YoungjinBD/dataset/main/lynx.csv'
df = pd.read_csv(file_path)
단순이동평균 (SMA, Simple Moving Average)
- .rolling(n).mean()
- n은 데이터 개수
- 이전 n개 데이터의 평균
#10년 단순이동평균 SMA
df['sma'] = df["value"].rolling(10).mean()
plt.plot(df['value']) #파란색
plt.plot(df['sma']) #주황색
plt.show()
지수가중이동평균 (EWMA, Exponentially-weighted Moving Average)
- .ewm(n).mean()
- n은 데이터 개수
- 이전 n개 데이터의 가중평균, 최근데이터에 가중치 부여
- 가중치는 지수함수형태로 사용
# 지수가중이동평균
df['ewm'] = df['value'].ewm(10).mean()
plt.plot(df['value']) #파란색
plt.plot(df['ewm']) #주황색
plt.show()
'빅데이터분석기사_실기 > 제1유형: 데이터 전처리' 카테고리의 다른 글
이상치 Outlier 처리 (0) | 2024.06.13 |
---|---|
결측치 처리 (1) | 2024.06.13 |
데이터 변환: 차원축소 PCA, 주성분 분석 (2) | 2024.06.13 |
데이터 변환: 범주화(Categorization), 이산형화(Discretization) (0) | 2024.06.13 |
데이터 변환: 정규분포 변환 (1) | 2024.06.12 |