MinMaxScaler 수치 원상복구 방법 문의
7991
작성한 질문수 2
안녕하세요.
RNN, LSTM, GRU 파트 집중적으로 공부하고 있습니다.
수치의 단위를 맞추기 위해 MinMaxScaler를 사용하여 0~1사이의 값으로 보이는 결과 그래프까지 확인 하였습니다.
다만, 주가예측도, 주택가격도 예측을 하려면 다시 원상복구를 해서 원래 단위로 바꿔서 그래프화를 하고 싶은데,
혹시 방법을 알 수 있을까요?
답변 1
0
안녕하세요 :)
복원 하고 싶다면 sklearn에서 제공하는 inverse_transform를 사용할 수 있는데 우리가 스케일링을 scaler로 정의 했기 때문에 y_rescale = scaler.inverse_transform(예측값) 을 이용하시면 스케일링 했던 기준으로 다시 역산을 해서 값을 제공합니다.
먼저 스케일링을 피쳐와 타겟을 둘로 나눠서 하셔야 합니다.
scaler = MinMaxScaler()
df[['Open','High','Low','Volume']] = scaler.fit_transform(df[['Open','High','Low','Volume']])
scaler1 = MinMaxScaler()
df['Close'] = scaler1.fit_transform(df['Close'].values.reshape(-1,1))
스케일링을 둘로 나눠서 하신 후 학습을 하시고 그래프를 그리시기 전에 아래 코드를 추가하시면 됩니다.
rescaled_actual = scaler1.inverse_transform(df['Close'][sequence_length:].values.reshape(-1,1))
rescaled_pred = scaler1.inverse_transform(np.array(pred).reshape(-1,1))
그리고 그래프 그리는 부분에 두 변수를 넣어 주시면 됩니다.
concatdata = torch.utils.data.ConcatDataset([train, test])
data_loader = torch.utils.data.DataLoader(dataset=concatdata, batch_size=100, shuffle=False)
with torch.no_grad():
pred = []
for data in data_loader:
seq, target = data
out = model(seq)
pred += out.cpu().numpy().tolist()
plt.figure(figsize=(20,10))
plt.plot(np.ones(100)*len(train),np.linspace(0,1,100),'--', linewidth=0.6)
plt.plot(rescaled_actual,'--')
plt.plot(rescaled_pred,'b', linewidth=0.6)
plt.ylim(1200,2600)
plt.legend(['train boundary','actual','prediction'])
plt.show()

열공하세요 :)
수업자료 제공 부탁드립니다.
0
115
2
코드가 어디에 있는지 모르겠습니다.
0
116
2
논문 구현
0
208
2
overfitting이 나는 이유가 궁금합니다.
1
184
2
분류 성능이 잘 안 나오는 이유
0
226
1
AutoEncoder 차원 질문
1
258
2
사전 학습 모델에서의 layer 변경에 대한 질문
1
224
1
7강 폴더 만들
0
265
1
4-3강 cross-validation에서의 best model 선정 기준
0
460
1
regression 문제에 대한 결과 시각화
0
219
1
Loss function 관련하여 질문드립니다.
0
971
1
early stopping 코드 문의
0
332
1
예측 그래프
0
363
1
데이터 불균형
1
367
1
8강 전이 학습 질문
0
407
2
data의 gpu처리 질문
0
247
1
nn.Linear(1024, 10) 관련 질문드립니다.
0
296
1
학습과 평가시 Loss 함수가 다른 이유
0
254
1
전처리 관련해서 질문 있습니다.
0
231
1
데이터 엔지니어의 역량을 기르려면 어떻게 해야할까요?
0
948
2
역전파 내용 중 미분 관련 질문 드립니다
1
283
1
8강 전이학습에서 kernel size 관련 질문 드립니다.
1
967
1
이미지분류-합성곱신경망(CNN) 피쳐맵 질문입니다.
1
590
1
14강 데이터 불균형 RandomRotation
1
485
1





