SK AI Data Academy 1기 중급/[SK에코플랜트] AI모델을 활용한 철근 단가 예측

라이브러리 목록&시계열 데이터 전처리&정규화, 표준화

Donghun Kang 2024. 7. 4. 16:11
  • 라이브러리 목록
  • Pandas: 파이썬 데이터 분석

- 파일 데이터 로드

- 데이터 조회, 필터링

- 날짜 형식 지정

  • Numpy: 통계

- 선형대수

- 데이터 통계량

  • matplotlib: 시각화

- 시계열 데이터 시각화

- 차트 생성

  • PyTorch: 딥러닝

- 시계열 데이터 예측 모형

- 훈련 및 검증

- 추론

  • scikit learn: 머신러닝/ 전처리

- 데이터 정규화

- 데이터 셋 분할

  • Streamlit: 웹 시각화 대시보드

- 모델 배포 

- 대시보드 생성

 

  • 데이터 전처리

데이터 스케일링: 정규화/ 표준화

=> 특성(feature)별 동일한 기준 적용/ 모델이 학습할 때 더욱 안정적인 학습
  • 정규화(Normalization): 0~1사이로 조정
  • 표준화(Standardization): 평균 0, 분산 1 조정
from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
scaled_series = scaler.fit_transform(series.values.reshape(-1,1))

 

  • 윈도우 데이터셋(windowed dataset)

- window size: N주기 만큼의 데이터 관측치 그룹

=> 몇개의 데이터를 관측할 것인가

 

- shift: 다음 관측 그룹간의 간격

 => 간격을 몇칸으로 설정할 것인가

 

- Xs: 학습에 활용되는 시계열 데이터 (N-1까지의 window_size를 가지는 데이터)

- Ys: target값

def make_dataset(series, window_size=6):
    Xs = []
    Ys = []
    for i in range(len(series) - window_size):
        Xs.append(series.iloc[i:i+window_size].values)
        Ys.append(series.iloc[i+window_size])
    return np.array(Xs), np.array(Ys)
=> Xs: many/ Ys: one 
"many to one"

 

  • 데이터 셋 분할

- train dataset: 학습에 활용할 데이터셋 (전체-45개)

- test dataset: 검증에 활용할 데이터셋(45개)

x_train, y_train = Xs[:-45], Ys[:-45]
x_test, y_test = Xs[-45:], Ys[-45:]