import rpy2
import rpy2.robjects as ro
from rpy2.robjects.vectors import FloatVector
from rpy2.robjects.packages import importr
import torch
import numpy as np
from tqdm import tqdm
import torch.nn.functional as F
from torch_geometric_temporal.nn.recurrent import GConvGRU
import matplotlib.pyplot as plt
import pandas as pd
import time
from scipy.interpolate import interp1d
from matplotlib import animationClass of Method
ST-GCN
Class
import
class RecurrentGCN(torch.nn.Module):
def __init__(self, node_features, filters):
super(RecurrentGCN, self).__init__()
self.recurrent = GConvGRU(node_features, filters, 2)
self.linear = torch.nn.Linear(filters, 1)
def forward(self, x, edge_index, edge_weight):
h = self.recurrent(x, edge_index, edge_weight)
h = F.relu(h)
h = self.linear(h)
return h시간 측정 방법
t1= time.time()
for epoc in range(1000):
## 1
yhat = net(x)
## 2
loss = loss_fn(yhat,y)
## 3
loss.backward()
## 4
optimizr.step()
optimizr.zero_grad()
t2 = time.time()
t2-t1R
%load_ext rpy2.ipython%%R
library(GNAR)
library(igraph)R[write to console]: Loading required package: igraph
R[write to console]:
Attaching package: ‘igraph’
R[write to console]: The following objects are masked from ‘package:stats’:
decompose, spectrum
R[write to console]: The following object is masked from ‘package:base’:
union
R[write to console]: Loading required package: wordcloud
R[write to console]: Loading required package: RColorBrewer
Data
%%R
edges <- as.matrix(fiveNet)
data("fiveNode")%R -o fiveVTS
%R -o edges- node: 5
- time 200
functions
def vis(spatiotemporaldata):
N = spatiotemporaldata.shape[1]
fig, ax = plt.subplots(N,1)
for n in range(N):
ax[n].plot(spatiotemporaldata[:,n])
ax[n].set_title('node='+str(n))
#fig.set_width()
fig.set_figheight(N*2)
fig.tight_layout()
return fig def vis2(spatiotemporaldata1,spatiotemporaldata2):
N = spatiotemporaldata1.shape[1]
fig, ax = plt.subplots(N,1)
for n in range(N):
ax[n].plot(spatiotemporaldata1[:,n],label='data1')
ax[n].plot(spatiotemporaldata2[:,n],label='data2')
ax[n].set_title('node='+str(n))
ax[n].legend()
#fig.set_width()
fig.set_figheight(N*2)
fig.tight_layout()
return fig edges_tensor = torch.tensor(edges)nonzero_indices = edges_tensor.nonzero()fiveNet_edge = np.array(nonzero_indices).TT = 200
N = 5 # number of Nodes
E = fiveNet_edge
V = np.array([1,2,3,4,5])
t = np.arange(0,T)
node_features = 1edge_index = torch.tensor(E)
edge_attr = torch.tensor(np.array([1,1,1,1,1,1,1,1,1,1]),dtype=torch.float32)fiveVTS_train = fiveVTS[:int(len(fiveVTS)*0.8)]
fiveVTS_test = fiveVTS[int(len(fiveVTS)*0.8):]vis(fiveVTS_train);
vis(fiveVTS_test);
Random Missing Values
class Missing:
def __init__(self,df):
self.df = df
self.N = N
self.number = []
def miss(self,percent=0.5):
self.missing = self.df.copy()
self.percent = percent
for i in range(self.N):
self.seed = np.random.choice(1000,1,replace=False)
np.random.seed(self.seed)
self.number.append(np.random.choice(int(len(self.df))-1,int(len(self.df)*self.percent),replace=False))
self.missing[self.number[i],i] = float('nan')
def first_mean(self):
self.train_mean = self.missing.copy()
for i in range(self.N):
self.train_mean[self.number[i],i] = np.nanmean(self.missing[:,i])
def second_linear(self):
self.train_linear = pd.DataFrame(self.missing)
self.train_linear.interpolate(method='linear', inplace=True)
self.train_linear = self.train_linear.fillna(0)
self.train_linear = np.array(self.train_linear).reshape(int(len(self.df)),N)type(fiveVTS_train)numpy.ndarray
fiveVTS_train.shape(160, 5)
_zero = Missing(fiveVTS_train)_zero.miss(percent = 0.1)vis(_zero.missing);
_zero.first_mean()vis(_zero.train_mean);
_zero.second_linear()vis(np.array(_zero.train_linear).reshape(160,5));
train_X_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[1:,:,:]train_X_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[1:,:,:]xt_test = torch.tensor(fiveVTS_test.reshape(int(T*0.2),N,1)[:-1,:,:]).float()class Method:
def __init__(self,df,time,seednumber,trainx,trainy):
self.test_data = fiveVTS_test
self.seednumber = seednumber
self.N = N
self.timepoint = time -1
self.edge_index = edge_index
self.edge_attr = edge_attr
self.node_features = node_features
self.X = trainx
self.df = _zero.train_mean
self.y = trainy
self.xt_test = xt_test
self.w = np.zeros(((self.timepoint)*self.N,(self.timepoint)*self.N))
self.mse = []
self.mae = []
self.train_result_list = []
self.test_result_list = []
def _weight(self):
for i in range((self.timepoint)*self.N):
for j in range((self.timepoint)*self.N):
if i==j :
self.w[i,j] = 0
elif np.abs(i-j) <= 1 :
self.w[i,j] = 1
def _STGCN(self):
model = RecurrentGCN(node_features=1, filters=4)
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
model.train()
for epoch in tqdm(range(100)):
for time, (xt,yt) in enumerate(zip(self.X,self.y)):
y_hat = model(xt, edge_index, edge_attr)
cost = torch.mean((y_hat-yt)**2)
cost.backward()
optimizer.step()
optimizer.zero_grad()
self.train_result = torch.stack([model(xt, edge_index, edge_attr) for xt in self.X]).detach().numpy()
self.test_result = torch.stack([model(xt, edge_index, edge_attr) for xt in self.xt_test]).detach().numpy()
self.train_result_list.append(self.train_result)
self.test_result_list.append(self.test_result)
for i in range(self.N):
self.mse.append(np.mean((self.test_data[1:,i] - self.test_result.reshape(int(len(self.xt_test)),self.N)[:,i])**2))
for i in range(self.N):
self.mae.append(np.mean(np.abs(self.test_data[1:,i] - self.test_result.reshape(int(len(self.xt_test)),self.N)[:,i])))
def FT(self):
self._weight()
self._STGCN()
self.d = np.array(self.w.sum(axis=1))
self.D = np.diag(self.d)
self.L = np.array(np.diag(1/np.sqrt(self.d)) @ (self.D-self.w) @ np.diag(1/np.sqrt(self.d)))
self.lamb, self.Psi = np.linalg.eigh(self.L)
self.Lamb = np.diag(self.lamb)
self.fhatbar = self.Psi.T @ self.train_result.reshape((self.timepoint)*self.N,1)
ebayesthresh = importr('EbayesThresh').ebayesthresh
self.fhatbar_threshed = ebayesthresh(FloatVector(self.fhatbar))
self.fhatbarhat = self.Psi @ self.fhatbar_threshed
self.FT_result = self.fhatbarhat.reshape(self.timepoint,self.N,1)
for i in range(N):
self.df[self.seednumber[i],i] = torch.tensor(self.FT_result)[self.seednumber[i],i,0]def show_lrpr(data1,data2,data3,data4,data5,history):
y1,y2,y3,y4,y5 = data1,data2,data3,data4,data5
fig = plt.figure(figsize=(10, 8))
ax1 = fig.add_subplot(5, 1, 1)
ax2 = fig.add_subplot(5, 1, 2)
ax3 = fig.add_subplot(5, 1, 3)
ax4 = fig.add_subplot(5, 1, 4)
ax5 = fig.add_subplot(5, 1, 5)
ax1.plot(y1)
ax2.plot(y2)
ax3.plot(y3)
ax4.plot(y4)
ax5.plot(y5)
line1, = ax1.plot(history[0][:,0,0])
line2, = ax2.plot(history[0][:,1,0])
line3, = ax3.plot(history[0][:,2,0])
line4, = ax4.plot(history[0][:,3,0])
line5, = ax5.plot(history[0][:,4,0])
def animate(epoc):
line1.set_ydata(history[epoc][:,0,0])
line2.set_ydata(history[epoc][:,1,0])
line3.set_ydata(history[epoc][:,2,0])
line4.set_ydata(history[epoc][:,3,0])
line5.set_ydata(history[epoc][:,4,0])
return line1,line2,line3,line4,line5
ani = animation.FuncAnimation(fig, animate, frames=30)
plt.close()
return animissing : 10%
train_X_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[1:,:,:]train_X_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[1:,:,:]___zero = Missing(fiveVTS_train)___zero.miss(percent = 0.1)___zero.first_mean()___zero.second_linear()Mean
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero.train_mean
c = ___zero.number
d = train_X_mean
f = train_y_mean
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
3282.4832243919373
mean_mse100_10 = pd.DataFrame(_mse)mean_mae100_10 = pd.DataFrame(_mae)_train_result_mean10 = _train_result.copy()_test_result_mean10 = _test_result.copy()plt.plot(mean_mse100_10.T);
plt.plot(mean_mae100_10.T);
vis2(_zero.train_mean,_train_result[59]);
vis2(fiveVTS_test[1:],_test_result[0]);
Linear
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero.second_linear
c = ___zero.number
d = train_X_linear
f = train_y_linear
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
3295.478456020355
linear_mse100_10 = pd.DataFrame(_mse)linear_mae100_10 = pd.DataFrame(_mae)_train_result_linear10 = _train_result.copy()_test_result_linear10 = _test_result.copy()plt.plot(linear_mse100_10.T);
plt.plot(linear_mae100_10.T);
vis2(_zero.train_mean,_train_result_linear10[59]);
vis2(fiveVTS_test[1:],_test_result_linear10[0]);
missing : 20%
train_X_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[1:,:,:]train_X_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[1:,:,:]___zero20 = Missing(fiveVTS_train)___zero20.miss(percent = 0.2)___zero20.first_mean()___zero20.second_linear()Mean
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero20.train_mean
c = ___zero20.number
d = train_X_mean
f = train_y_mean
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:52<00:00, 1.89it/s]
100%|██████████| 100/100 [00:52<00:00, 1.89it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
3277.0478909015656
mean_mse100_20 = pd.DataFrame(_mse)mean_mae100_20 = pd.DataFrame(_mae)_train_result_mean20 = _train_result.copy()_test_result_mean20 = _test_result.copy()plt.plot(mean_mse100_20.T);
plt.plot(mean_mae100_20.T);
vis2(___zero20.train_mean,_train_result_mean20[59]);
vis2(fiveVTS_test[1:],_test_result_mean20[0]);
show_lrpr(fiveVTS_test[1:,0],fiveVTS_test[1:,1],fiveVTS_test[1:,2],fiveVTS_test[1:,3],fiveVTS_test[1:,4],_test_result_mean20)Linear
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero20.second_linear
c = ___zero20.number
d = train_X_linear
f = train_y_linear
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
3298.6988050937653
linear_mse100_20 = pd.DataFrame(_mse)linear_mae100_20 = pd.DataFrame(_mae)_train_result_linear20 = _train_result.copy()_test_result_linear20 = _test_result.copy()plt.plot(linear_mse100_20.T);
plt.plot(linear_mae100_20.T);
vis2(___zero20.train_mean,_train_result_linear20[59]);
vis2(fiveVTS_test[1:],_test_result_linear20[0]);
show_lrpr(fiveVTS_test[1:,0],fiveVTS_test[1:,1],fiveVTS_test[1:,2],fiveVTS_test[1:,3],fiveVTS_test[1:,4],_test_result_linear20)missing : 30%
train_X_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[1:,:,:]train_X_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[1:,:,:]___zero30 = Missing(fiveVTS_train)___zero30.miss(percent = 0.3)___zero30.first_mean()___zero30.second_linear()Mean
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero30.train_mean
c = ___zero30.number
d = train_X_mean
f = train_y_mean
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
3280.9767186641693
mean_mse_30 = pd.DataFrame(_mse)mean_mae_30 = pd.DataFrame(_mae)_train_result_mean30 = _train_result.copy()_test_result_mean30 = _test_result.copy()plt.plot(mean_mse_30.T);
plt.plot(mean_mae_30.T);
vis2(___zero30.train_mean,_train_result_mean30[59]);
vis2(fiveVTS_test[1:],_test_result_mean30[0]);
show_lrpr(fiveVTS_test[1:,0],fiveVTS_test[1:,1],fiveVTS_test[1:,2],fiveVTS_test[1:,3],fiveVTS_test[1:,4],_test_result_mean30)Linear
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero30.second_linear
c = ___zero30.number
d = train_X_linear
f = train_y_linear
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
3305.375289440155
linear_mse_30 = pd.DataFrame(_mse)linear_mae_30 = pd.DataFrame(_mae)_train_result_linear30 = _train_result.copy()_test_result_linear30 = _test_result.copy()plt.plot(linear_mse_30.T);
plt.plot(linear_mae_30.T);
vis2(___zero30.train_mean,_train_result_linear30[59]);
vis2(fiveVTS_test[1:],_test_result_linear30[0]);
show_lrpr(fiveVTS_test[1:,0],fiveVTS_test[1:,1],fiveVTS_test[1:,2],fiveVTS_test[1:,3],fiveVTS_test[1:,4],_test_result_linear30)missing : 40%
train_X_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[1:,:,:]train_X_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[1:,:,:]___zero40 = Missing(fiveVTS_train)___zero40.miss(percent = 0.4)___zero40.first_mean()___zero40.second_linear()Mean
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero40.train_mean
c = ___zero40.number
d = train_X_mean
f = train_y_mean
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.88it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
3287.529237985611
mean_mse_40 = pd.DataFrame(_mse)mean_mae_40 = pd.DataFrame(_mae)_train_result_mean40 = _train_result.copy()_test_result_mean40 = _test_result.copy()plt.plot(mean_mse_40.T);
plt.plot(mean_mae_40.T);
vis2(___zero40.train_mean,_train_result_mean40[59]);
vis2(fiveVTS_test[1:],_test_result_mean40[0]);
show_lrpr(fiveVTS_test[1:,0],fiveVTS_test[1:,1],fiveVTS_test[1:,2],fiveVTS_test[1:,3],fiveVTS_test[1:,4],_test_result_mean40)Linear
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero40.second_linear
c = ___zero40.number
d = train_X_linear
f = train_y_linear
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.82it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.85it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.87it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:53<00:00, 1.86it/s]
100%|██████████| 100/100 [00:54<00:00, 1.83it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
100%|██████████| 100/100 [00:54<00:00, 1.84it/s]
3303.96302652359
linear_mse_40 = pd.DataFrame(_mse)linear_mae_40 = pd.DataFrame(_mae)_train_result_linear40 = _train_result.copy()_test_result_linear40 = _test_result.copy()plt.plot(linear_mse_40.T);
plt.plot(linear_mae_40.T);
vis2(___zero40.train_mean,_train_result_linear40[59]);
vis2(fiveVTS_test[1:],_test_result_linear40[0]);
show_lrpr(fiveVTS_test[1:,0],fiveVTS_test[1:,1],fiveVTS_test[1:,2],fiveVTS_test[1:,3],fiveVTS_test[1:,4],_test_result_linear40)missing : 50%
train_X_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_mean = torch.tensor(_zero.train_mean).reshape(int(T*0.8),N,1).float()[1:,:,:]train_X_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[:int(T*0.8-1),:,:]
train_y_linear = torch.tensor(_zero.train_linear).reshape(int(T*0.8),N,1).float()[1:,:,:]___zero50 = Missing(fiveVTS_train)___zero50.miss(percent = 0.5)___zero50.first_mean()___zero50.second_linear()Mean
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero50.train_mean
c = ___zero50.number
d = train_X_mean
f = train_y_mean
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1mean_mse_50 = pd.DataFrame(_mse)mean_mae_50 = pd.DataFrame(_mae)_train_result_mean50 = _train_result.copy()_test_result_mean50 = _test_result.copy()plt.plot(mean_mse_50.T);plt.plot(mean_mae_50.T);vis2(_zero.train_mean,_train_result_mean50[59]);vis2(fiveVTS_test[1:],_test_result_mean50[0]);Linear
t1= time.time()
ttt = 160
_mse = []
_mae = []
_train_result = []
_test_result = []
b = ___zero50.second_linear
c = ___zero50.number
d = train_X_linear
f = train_y_linear
for i in range(60):
a = Method(b,ttt,c,d,f)
a.FT()
_mse.append(a.mse)
_mae.append(a.mae)
_train_result.append(a.train_result)
_test_result.append(a.test_result)
b = a.FT_result
t2 = time.time()
t2-t1linear_mse_50 = pd.DataFrame(_mse)linear_mae_50 = pd.DataFrame(_mae)_train_result_linear50 = _train_result.copy()_test_result_linear50 = _test_result.copy()plt.plot(linear_mse_50.T);plt.plot(linear_mae_50.T);vis2(_zero.train_mean,_train_result_linear50[59]);vis2(fiveVTS_test[1:],_test_result_linear50[0]);