Renaming PFTS to PWFTS

This commit is contained in:
Petrônio Cândido de Lima e Silva 2017-02-22 16:18:15 -03:00
parent ef84d50346
commit c708430313
3 changed files with 24 additions and 24 deletions

View File

@ -12,7 +12,7 @@ from mpl_toolkits.mplot3d import Axes3D
from pyFTS.benchmarks import Measures, naive, ResidualAnalysis, ProbabilityDistribution from pyFTS.benchmarks import Measures, naive, ResidualAnalysis, ProbabilityDistribution
from pyFTS.partitioners import Grid from pyFTS.partitioners import Grid
from pyFTS.common import Membership, FuzzySet, FLR, Transformations, Util from pyFTS.common import Membership, FuzzySet, FLR, Transformations, Util
from pyFTS import fts, chen, yu, ismailefendi, sadaei, hofts, hwang, pfts, ifts from pyFTS import fts, chen, yu, ismailefendi, sadaei, hofts, hwang, pwfts, ifts
colors = ['grey', 'rosybrown', 'maroon', 'red','orange', 'yellow', 'olive', 'green', colors = ['grey', 'rosybrown', 'maroon', 'red','orange', 'yellow', 'olive', 'green',
'cyan', 'blue', 'darkblue', 'purple', 'darkviolet'] 'cyan', 'blue', 'darkblue', 'purple', 'darkviolet']
@ -29,7 +29,7 @@ def allPointForecasters(data_train, data_test, partitions, max_order=3, statisti
if models is None: if models is None:
models = [naive.Naive, chen.ConventionalFTS, yu.WeightedFTS, ismailefendi.ImprovedWeightedFTS, models = [naive.Naive, chen.ConventionalFTS, yu.WeightedFTS, ismailefendi.ImprovedWeightedFTS,
sadaei.ExponentialyWeightedFTS, hofts.HighOrderFTS, pfts.ProbabilisticFTS] sadaei.ExponentialyWeightedFTS, hofts.HighOrderFTS, pwfts.ProbabilisticWeightedFTS]
objs = [] objs = []
@ -76,16 +76,16 @@ def allPointForecasters(data_train, data_test, partitions, max_order=3, statisti
lcolors.insert(0,'black') lcolors.insert(0,'black')
pmfs = [] pmfs = []
pmfs.append( pmfs.append(
ProbabilityDistribution.ProbabilityDistribution("Original", 100, [min(data_train), max(data_train)], data=data_train) ) ProbabilityDistribution.ProbabilityDistribution("Original", 100, [min(data_test), max(data_test)], data=data_test) )
for m in objs: for m in objs:
forecasts = m.forecast(data_train) forecasts = m.forecast(data_test)
pmfs.append( pmfs.append(
ProbabilityDistribution.ProbabilityDistribution(m.shortname, 100, [min(data_train), max(data_train)], ProbabilityDistribution.ProbabilityDistribution(m.shortname, 100, [min(data_test), max(data_test)],
data=forecasts)) data=forecasts))
print(getProbabilityDistributionStatistics(pmfs,data_train)) print(getProbabilityDistributionStatistics(pmfs,data_test))
plotProbabilityDistributions(pmfs, lcolors) plotProbabilityDistributions(pmfs, lcolors,tam=tam)
def getPointStatistics(data, models, externalmodels = None, externalforecasts = None, indexers=None): def getPointStatistics(data, models, externalmodels = None, externalforecasts = None, indexers=None):
@ -138,7 +138,7 @@ def getProbabilityDistributionStatistics(pmfs, data):
def allIntervalForecasters(data_train, data_test, partitions, max_order=3,save=False, file=None, tam=[20, 5], def allIntervalForecasters(data_train, data_test, partitions, max_order=3,save=False, file=None, tam=[20, 5],
models=None, transformation=None): models=None, transformation=None):
if models is None: if models is None:
models = [ifts.IntervalFTS, pfts.ProbabilisticFTS] models = [ifts.IntervalFTS, pwfts.ProbabilisticWeightedFTS]
objs = [] objs = []
@ -243,8 +243,8 @@ def plotComparedSeries(original, models, colors, typeonlegend=False, save=False,
Util.showAndSaveImage(fig, file, save, lgd=legends) Util.showAndSaveImage(fig, file, save, lgd=legends)
def plotProbabilityDistributions(pmfs,lcolors): def plotProbabilityDistributions(pmfs,lcolors,tam=[15, 7]):
fig = plt.figure(figsize=[15, 7]) fig = plt.figure(figsize=tam)
ax = fig.add_subplot(111) ax = fig.add_subplot(111)
for k,m in enumerate(pmfs,start=0): for k,m in enumerate(pmfs,start=0):
@ -257,7 +257,7 @@ def plotProbabilityDistributions(pmfs,lcolors):
def allAheadForecasters(data_train, data_test, partitions, start, steps, resolution = None, max_order=3,save=False, file=None, tam=[20, 5], def allAheadForecasters(data_train, data_test, partitions, start, steps, resolution = None, max_order=3,save=False, file=None, tam=[20, 5],
models=None, transformation=None, option=2): models=None, transformation=None, option=2):
if models is None: if models is None:
models = [pfts.ProbabilisticFTS] models = [pwfts.ProbabilisticWeightedFTS]
if resolution is None: resolution = (max(data_train) - min(data_train)) / 100 if resolution is None: resolution = (max(data_train) - min(data_train)) / 100
@ -775,7 +775,7 @@ def pftsExploreOrderAndPartitions(data,save=False, file=None):
axes[2].set_title('Interval Forecasts by Order') axes[2].set_title('Interval Forecasts by Order')
for order in np.arange(1, 6): for order in np.arange(1, 6):
fts = pfts.ProbabilisticFTS("") fts = pwfts.ProbabilisticWeightedFTS("")
fts.shortname = "n = " + str(order) fts.shortname = "n = " + str(order)
fts.train(data, data_fs1, order=order) fts.train(data, data_fs1, order=order)
point_forecasts = fts.forecast(data) point_forecasts = fts.forecast(data)
@ -797,7 +797,7 @@ def pftsExploreOrderAndPartitions(data,save=False, file=None):
for partitions in np.arange(5, 11): for partitions in np.arange(5, 11):
data_fs = Grid.GridPartitionerTrimf(data, partitions) data_fs = Grid.GridPartitionerTrimf(data, partitions)
fts = pfts.ProbabilisticFTS("") fts = pwfts.ProbabilisticWeightedFTS("")
fts.shortname = "q = " + str(partitions) fts.shortname = "q = " + str(partitions)
fts.train(data, data_fs, 1) fts.train(data, data_fs, 1)
point_forecasts = fts.forecast(data) point_forecasts = fts.forecast(data)

View File

@ -9,9 +9,9 @@ from pyFTS.common import FLR, FuzzySet, SortedCollection
from pyFTS import hofts, ifts, tree from pyFTS import hofts, ifts, tree
class ProbabilisticFLRG(hofts.HighOrderFLRG): class ProbabilisticWeightedFLRG(hofts.HighOrderFLRG):
def __init__(self, order): def __init__(self, order):
super(ProbabilisticFLRG, self).__init__(order) super(ProbabilisticWeightedFLRG, self).__init__(order)
self.RHS = {} self.RHS = {}
self.frequencyCount = 0.0 self.frequencyCount = 0.0
@ -41,9 +41,9 @@ class ProbabilisticFLRG(hofts.HighOrderFLRG):
return self.strLHS() + " -> " + tmp2 return self.strLHS() + " -> " + tmp2
class ProbabilisticFTS(ifts.IntervalFTS): class ProbabilisticWeightedFTS(ifts.IntervalFTS):
def __init__(self, name): def __init__(self, name):
super(ProbabilisticFTS, self).__init__("PFTS") super(ProbabilisticWeightedFTS, self).__init__("PFTS")
self.shortname = "PFTS " + name self.shortname = "PFTS " + name
self.name = "Probabilistic FTS" self.name = "Probabilistic FTS"
self.detail = "Silva, P.; Guimarães, F.; Sadaei, H." self.detail = "Silva, P.; Guimarães, F.; Sadaei, H."
@ -71,7 +71,7 @@ class ProbabilisticFTS(ifts.IntervalFTS):
l = len(data) l = len(data)
for k in np.arange(self.order, l): for k in np.arange(self.order, l):
if self.dump: print("FLR: " + str(k)) if self.dump: print("FLR: " + str(k))
flrg = ProbabilisticFLRG(self.order) flrg = ProbabilisticWeightedFLRG(self.order)
sample = data[k - self.order: k] sample = data[k - self.order: k]
@ -116,7 +116,7 @@ class ProbabilisticFTS(ifts.IntervalFTS):
l = len(flrs) l = len(flrs)
for k in np.arange(self.order, l+1): for k in np.arange(self.order, l+1):
if self.dump: print("FLR: " + str(k)) if self.dump: print("FLR: " + str(k))
flrg = ProbabilisticFLRG(self.order) flrg = ProbabilisticWeightedFLRG(self.order)
for kk in np.arange(k - self.order, k): for kk in np.arange(k - self.order, k):
flrg.appendLHS(flrs[kk].LHS) flrg.appendLHS(flrs[kk].LHS)
@ -134,7 +134,7 @@ class ProbabilisticFTS(ifts.IntervalFTS):
def addNewPFLGR(self,flrg): def addNewPFLGR(self,flrg):
if flrg.strLHS() not in self.flrgs: if flrg.strLHS() not in self.flrgs:
tmp = ProbabilisticFLRG(self.order) tmp = ProbabilisticWeightedFLRG(self.order)
for fs in flrg.LHS: tmp.appendLHS(fs) for fs in flrg.LHS: tmp.appendLHS(fs)
tmp.appendRHS(flrg.LHS[-1]) tmp.appendRHS(flrg.LHS[-1])
self.flrgs[tmp.strLHS()] = tmp; self.flrgs[tmp.strLHS()] = tmp;

View File

@ -11,7 +11,7 @@ from mpl_toolkits.mplot3d import Axes3D
import pandas as pd import pandas as pd
from pyFTS.partitioners import Grid from pyFTS.partitioners import Grid
from pyFTS.common import FLR,FuzzySet,Membership,Transformations from pyFTS.common import FLR,FuzzySet,Membership,Transformations
from pyFTS import fts,hofts,ifts,pfts,tree, chen from pyFTS import fts,hofts,ifts,pwfts,tree, chen
from pyFTS.benchmarks import benchmarks as bchmk from pyFTS.benchmarks import benchmarks as bchmk
from pyFTS.benchmarks import Measures from pyFTS.benchmarks import Measures
from numpy import random from numpy import random
@ -39,7 +39,7 @@ fs = Grid.GridPartitionerTrimf(taiex_treino,10)
#tmp = chen.ConventionalFTS("") #tmp = chen.ConventionalFTS("")
pfts1 = pfts.ProbabilisticFTS("1") pfts1 = pwfts.ProbabilisticWeightedFTS("1")
#pfts1.appendTransformation(diff) #pfts1.appendTransformation(diff)
pfts1.train(taiex_treino,fs,1) pfts1.train(taiex_treino,fs,1)
@ -63,11 +63,11 @@ print(pmf1.averageloglikelihood(taiex_treino))
print(pmf2.averageloglikelihood(taiex_treino)) print(pmf2.averageloglikelihood(taiex_treino))
#pfts2 = pfts.ProbabilisticFTS("n = 2") #pfts2 = pfts.ProbabilisticWeightedFTS("n = 2")
#pfts2.appendTransformation(diff) #pfts2.appendTransformation(diff)
#pfts2.train(gauss_treino,fs,2) #pfts2.train(gauss_treino,fs,2)
#pfts3 = pfts.ProbabilisticFTS("n = 3") #pfts3 = pfts.ProbabilisticWeightedFTS("n = 3")
#pfts3.appendTransformation(diff) #pfts3.appendTransformation(diff)
#pfts3.train(gauss_treino,fs,3) #pfts3.train(gauss_treino,fs,3)