From 3db6e6911983b851d24b870c5ee61f286e257b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=C3=B4nio=20C=C3=A2ndido?= Date: Fri, 13 Apr 2018 15:23:54 -0300 Subject: [PATCH] Improvements on benchmarks --- img/logo_medium.png | Bin 0 -> 29315 bytes img/minds_logo.jpeg | Bin 0 -> 39494 bytes img/minds_logo_medium.jpeg | Bin 0 -> 15098 bytes pyFTS/benchmarks/Measures.py | 93 +++++-- pyFTS/benchmarks/Util.py | 250 ++++++++---------- pyFTS/benchmarks/benchmarks.py | 78 ++++-- pyFTS/common/fts.py | 29 +- pyFTS/models/pwfts.py | 13 +- .../probabilistic/ProbabilityDistribution.py | 2 +- pyFTS/tests/general.py | 13 +- 10 files changed, 268 insertions(+), 210 deletions(-) create mode 100644 img/logo_medium.png create mode 100644 img/minds_logo.jpeg create mode 100644 img/minds_logo_medium.jpeg diff --git a/img/logo_medium.png b/img/logo_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..d2209c9ecbf0e9528ba8788f535dc1862abb90c0 GIT binary patch literal 29315 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 h=>jAt#5JE3U2lGnvewN0qx3POs@EI71%r@4 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 A;Q#;t literal 0 HcmV?d00001 diff --git a/img/minds_logo_medium.jpeg b/img/minds_logo_medium.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3cb22a555e94de99d2e1c5832601c4698def3688 GIT binary patch literal 15098 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 1: - ret = self.forecast_ahead(ndata, steps_ahead, **kwargs) - elif type == 'interval' and (steps_ahead == None or steps_ahead == 1): - ret = self.forecast_interval(ndata, **kwargs) - elif type == 'interval' and steps_ahead > 1: - ret = self.forecast_ahead_interval(ndata, steps_ahead, **kwargs) - elif type == 'distribution' and (steps_ahead == None or steps_ahead == 1): - ret = self.forecast_distribution(ndata, **kwargs) - elif type == 'distribution' and steps_ahead > 1: - ret = self.forecast_ahead_distribution(ndata, steps_ahead, **kwargs) - else: + if steps_ahead == None or steps_ahead == 1: + if type == 'point': + ret = self.forecast(ndata, **kwargs) + elif type == 'interval': + ret = self.forecast_interval(ndata, **kwargs) + elif type == 'distribution': + ret = self.forecast_distribution(ndata, **kwargs) + elif steps_ahead > 1: + if type == 'point': + ret = self.forecast_ahead(ndata, steps_ahead, **kwargs) + elif type == 'interval': + ret = self.forecast_ahead_interval(ndata, steps_ahead, **kwargs) + elif type == 'distribution': + ret = self.forecast_ahead_distribution(ndata, steps_ahead, **kwargs) + + if not ['point', 'interval', 'distribution'].__contains__(type): raise ValueError('The argument \'type\' has an unknown value.') else: diff --git a/pyFTS/models/pwfts.py b/pyFTS/models/pwfts.py index 3980122..3fd3a09 100644 --- a/pyFTS/models/pwfts.py +++ b/pyFTS/models/pwfts.py @@ -372,6 +372,9 @@ class ProbabilisticWeightedFTS(ifts.IntervalFTS): flrgs = self.generate_lhs_flrg(sample) + if 'type' in kwargs: + kwargs.pop('type') + dist = ProbabilityDistribution.ProbabilityDistribution(smooth, uod=uod, bins=_bins, **kwargs) for bin in _bins: @@ -409,7 +412,7 @@ class ProbabilisticWeightedFTS(ifts.IntervalFTS): ret.append(ret[-1]) else: mp = self.forecast([ret[x] for x in np.arange(k - self.order, k)], **kwargs) - ret.append(mp) + ret.append(mp[0]) return ret[self.order:] @@ -427,13 +430,13 @@ class ProbabilisticWeightedFTS(ifts.IntervalFTS): start = kwargs.get('start', self.order) - sample = data[start - (self.order - 1): start + 1] + sample = data[start - self.order: start] ret = [[k, k] for k in sample] for k in np.arange(self.order, steps+self.order): - if self.__check_interval_bounds(ret[-1]): + if len(ret) > 0 and self.__check_interval_bounds(ret[-1]): ret.append(ret[-1]) else: lower = self.forecast_interval([ret[x][0] for x in np.arange(k - self.order, k)], **kwargs) @@ -460,9 +463,11 @@ class ProbabilisticWeightedFTS(ifts.IntervalFTS): start = kwargs.get('start', self.order) - sample = ndata[start - (self.order - 1): start + 1] + sample = ndata[start - self.order: start] for dat in sample: + if 'type' in kwargs: + kwargs.pop('type') tmp = ProbabilityDistribution.ProbabilityDistribution(smooth, uod=uod, bins=_bins, **kwargs) tmp.set(dat, 1.0) ret.append(tmp) diff --git a/pyFTS/probabilistic/ProbabilityDistribution.py b/pyFTS/probabilistic/ProbabilityDistribution.py index ea50ab9..ce9b78d 100644 --- a/pyFTS/probabilistic/ProbabilityDistribution.py +++ b/pyFTS/probabilistic/ProbabilityDistribution.py @@ -11,7 +11,7 @@ class ProbabilityDistribution(object): If type is histogram, the PDF is discrete If type is KDE the PDF is continuous """ - def __init__(self,type = "KDE", **kwargs): + def __init__(self, type = "KDE", **kwargs): self.uod = kwargs.get("uod", None) self.type = type diff --git a/pyFTS/tests/general.py b/pyFTS/tests/general.py index 0d2f916..38b03f9 100644 --- a/pyFTS/tests/general.py +++ b/pyFTS/tests/general.py @@ -19,14 +19,15 @@ from pyFTS.benchmarks import benchmarks as bchmk from pyFTS.models import pwfts -''' +#''' bchmk.sliding_window_benchmarks(dataset, 1000, train=0.8, inc=0.2, methods=[pwfts.ProbabilisticWeightedFTS], benchmark_models=False, orders=[1], partitions=[10], #np.arange(10,100,2), - progress=False, type='distribution', - distributed=False, nodes=['192.168.0.106', '192.168.0.105', '192.168.0.110'], - save=True, file="pwfts_taiex_interval.csv") -''' + progress=False, type='distribution', steps_ahead=[1,4,7,10], + #distributed=False, nodes=['192.168.0.106', '192.168.0.105', '192.168.0.110'], + save=True, file="pwfts_taiex_distribution.csv") +#''' +''' train_split = 2000 test_length = 200 @@ -55,7 +56,7 @@ tmp = pfts1_taiex.predict(dataset[train_split:train_split+200], type='point', print(tmp) - +''' ''' tmp = pfts1_taiex.predict(dataset[train_split:train_split+200], type='diPedro Pazzini