-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy patheval_vis.py
More file actions
66 lines (48 loc) · 2.09 KB
/
Copy patheval_vis.py
File metadata and controls
66 lines (48 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import numpy as np
import torch
import torch.nn as nn
import torch.optim as optim
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error, r2_score
# y_test 가져오기
data = pd.read_csv('data.csv')
y = data['/타겟 컬럼 명/'].values
y = torch.tensor(y, dtype=torch.float32).view(-1, 1).to(device)
dataset_size = len(X)
train_size = int(0.8 * dataset_size)
test_size = dataset_size - train_size
y_train, y_test = torch.split(y, [train_size, test_size])
# 예측값 가져오기
actual_values = y_test.cpu().numpy()
predicted_values_MLP = np.load('MLP.npy')
predicted_values_Transformer = np.load('Transformer.npy')
predicted_values_LSTM = np.load('LSTM.npy')
def evaluate_model(actual_values, predicted_values):
# RMSE 계산
rmse = np.sqrt(mean_squared_error(actual_values, predicted_values))
# R-squared 계산
r2 = r2_score(actual_values, predicted_values)
return rmse, r2
def visualize_model(actual_values, predicted_values, model_name):
time = np.arange(len(predicted_values))
plt.figure(figsize=(14, 7))
plt.plot(time, actual_values, label='Actual', color='blue')
plt.plot(time, predicted_values, label='Predicted', color='red')
plt.xlabel('Time')
plt.ylabel('????(μg/m³)')
plt.title(f'{model_name} Actual vs Predicted')
plt.legend()
plt.show()
rmse_MLP, r2_MLP = evaluate_model(actual_values, predicted_values_MLP)
visualize_model(actual_values, predicted_values_MLP, 'MLP')
print(f'RMSE of MLP Model : {rmse_MLP:.4f}')
print(f'R-squared of MLP Model : {r2_MLP:.4f}')
rmse_Transformer, r2_Transformer = evaluate_model(actual_values, predicted_values_Transformer)
visualize_model(actual_values, predicted_values_Transformer, 'Transformer')
print(f'RMSE of Transformer Model : {rmse_Transformer:.4f}')
print(f'R-squared of Transformer Model : {r2_Transformer:.4f}')
rmse_LSTM, r2_LSTM = evaluate_model(actual_values, predicted_values_LSTM)
visualize_model(actual_values, predicted_values_LSTM, 'LSTM')
print(f'RMSE of LSTM Model : {rmse_LSTM:.4f}')
print(f'R-squared of LSTM Model : {r2_LSTM:.4f}')