From 6e32f1ecb936f2aa49d21ca9ee15d2d34c8edc08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=C3=B4nio=20C=C3=A2ndido?= Date: Mon, 17 Jun 2019 11:40:24 -0300 Subject: [PATCH] Improvements on MVFTS.forecast_ahead for supporting CMVFTS many steps ahead forecasts --- pyFTS/models/multivariate/common.py | 2 +- pyFTS/models/multivariate/mvfts.py | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pyFTS/models/multivariate/common.py b/pyFTS/models/multivariate/common.py index 97b942b..f9b2687 100644 --- a/pyFTS/models/multivariate/common.py +++ b/pyFTS/models/multivariate/common.py @@ -55,7 +55,7 @@ def fuzzyfy_instance_clustered(data_point, cluster, **kwargs): mode = kwargs.get('mode', 'sets') fsets = [] for fset in cluster.search(data_point, type='name'): - if cluster.sets[fset].membership(data_point) > alpha_cut: + if cluster.sets[fset].membership(data_point) >= alpha_cut: if mode == 'sets': fsets.append(fset) elif mode =='both': diff --git a/pyFTS/models/multivariate/mvfts.py b/pyFTS/models/multivariate/mvfts.py index d478a88..dea417a 100644 --- a/pyFTS/models/multivariate/mvfts.py +++ b/pyFTS/models/multivariate/mvfts.py @@ -172,6 +172,7 @@ class MVFTS(fts.FTS): start = kwargs.get('start_at', self.max_lag) + ndata = ndata.loc[ndata.index[start-self.max_lag:start]] ret = [] for k in np.arange(start, start+steps): ix = ndata.index[k-self.max_lag:k] @@ -188,11 +189,11 @@ class MVFTS(fts.FTS): for data_label in generators.keys(): if data_label != self.target_variable.data_label: if isinstance(generators[data_label], LambdaType): - last_data_point = ndata.loc[sample.index[-1]] + last_data_point = ndata.loc[ndata.index[-1]] new_data_point[data_label] = generators[data_label](last_data_point[data_label]) elif isinstance(generators[data_label], fts.FTS): model = generators[data_label] - last_data_point = ndata.loc[[sample.index[-model.order]]] + last_data_point = ndata.loc[[ndata.index[-model.order]]] if not model.is_multivariate: last_data_point = last_data_point[data_label].values @@ -200,9 +201,6 @@ class MVFTS(fts.FTS): new_data_point[self.target_variable.data_label] = tmp - print(k) - print(new_data_point) - ndata = ndata.append(new_data_point, ignore_index=True) return ret[-steps:]