sonda.index = np.arange(0, len(sonda.index)) sonda_treino = sonda[:1051200] sonda_teste = sonda[1051201:] #res = bchmk.simpleSearch_RMSE(sonda_treino, sonda_teste, # sfts.SeasonalFTS,np.arange(3,30),[1],parameters=1440, # tam=[15,8], plotforecasts=False,elev=45, azim=40, # save=False,file="pictures/sonda_sfts_error_surface", intervals=False) partitions = ['grid', 'entropy'] indexers = ['m15', 'Mh', 'Mhm15'] models = [] ixs = [] sample = sonda_teste[0:4300] for max_part in [10, 20, 30, 40, 50]: for part in partitions: for ind in indexers: ix = Util.load_obj("models/sonda_ix_" + ind + ".pkl") model = Util.load_obj("models/sonda_msfts_" + part + "_" + str(max_part) + "_" + ind + ".pkl") model.shortname = part + "_" + str(max_part) + "_" + ind models.append(model) ixs.append(ix) print(bchmk.print_point_statistics(sample, models, indexers=ixs))
data=train, partitioner_specific=sp) vhour.partitioner.plot(axes[1]) vavg = variable.Variable("Radiance", data_label="glo_avg", partitioner=Grid.GridPartitioner, npart=30, data=train) model1 = mvfts.MVFTS("") model1.append_variable(vmonth) model1.append_variable(vhour) model1.append_variable(vavg) model1.target_variable = vavg #model1.fit(train, num_batches=60, save=True, batch_save=True, file_path='mvfts_sonda') #model.fit(train, num_batches=60, save=True, batch_save=True, file_path='mvfts_sonda') #model1.fit(train, num_batches=200, save=True, batch_save=True, file_path='mvfts_sonda', distributed=False, # nodes=['192.168.0.110'], batch_save_interval=10) model = Util.load_obj('mvfts_sonda') forecasts = model.predict(test)
taiex = TAIEX.get_data() train = taiex[:3000] test = taiex[3000:3200] from pyFTS.common import Transformations tdiff = Transformations.Differential(1) ''' from pyFTS.partitioners import Grid, Util as pUtil from pyFTS.common import FLR,FuzzySet,Membership,SortedCollection taiex_fs1 = Grid.GridPartitioner(data=train, npart=30) taiex_fs2 = Grid.GridPartitioner(data=train, npart=10, transformation=tdiff) #pUtil.plot_partitioners(train, [taiex_fs1,taiex_fs2], tam=[15,7]) from pyFTS.common import fts,tree from pyFTS.models import hofts, pwfts pfts1_taiex = pwfts.ProbabilisticWeightedFTS("1", partitioner=taiex_fs1) #pfts1_taiex.appendTransformation(diff) pfts1_taiex.fit(train, save_model=True, file_path='pwfts') pfts1_taiex.shortname = "1st Order" print(pfts1_taiex) ''' model = Util.load_obj('pwfts') model.predict(test, type='distribution') #'''
sonda_treino = sonda[:1051200] sonda_teste = sonda[1051201:] #res = bchmk.simpleSearch_RMSE(sonda_treino, sonda_teste, # sfts.SeasonalFTS,np.arange(3,30),[1],parameters=1440, # tam=[15,8], plotforecasts=False,elev=45, azim=40, # save=False,file="pictures/sonda_sfts_error_surface", intervals=False) from pyFTS.common import Util from pyFTS.models import cmsfts partitions = ['grid', 'entropy'] indexers = ['m15', 'Mh', 'Mhm15'] for max_part in [40, 50]: for part in partitions: fs = Util.load_obj("models/sonda_fs_" + part + "_" + str(max_part) + ".pkl") for ind in indexers: ix = Util.load_obj("models/sonda_ix_" + ind + ".pkl") model = cmsfts.ContextualMultiSeasonalFTS(part + " " + ind, ix) model.train(sonda_treino, fs) Util.persist_obj( model, "models/sonda_cmsfts_" + part + "_" + str(max_part) + "_" + ind + ".pkl")
from pyFTS.benchmarks import Measures from pyFTS.partitioners import Grid, Util as pUtil from pyFTS.common import Transformations, Util from pyFTS.models.multivariate import common, variable, mvfts, wmvfts from pyFTS.models.seasonal import partitioner as seasonal from pyFTS.models.seasonal.common import DateTime bc = Transformations.BoxCox(0) tdiff = Transformations.Differential(1) from pyFTS.models.multivariate import common, variable, mvfts, cmvfts from pyFTS.models.seasonal import partitioner as seasonal from pyFTS.models.seasonal.common import DateTime model = Util.load_obj( '/home/petronio/Downloads/ClusteredMVFTS1solarorder2knn3') data = [[12, 100], [13, 200]] for k in data: k[0] = pd.to_datetime('2018-01-01 {}:00:00'.format(k[0]), format='%Y-%m-%d %H:%M:%S') df = pd.DataFrame(data, columns=['data', 'glo_avg']) #forecasts = model.predict(df, steps_ahead=24, generators={'Hour': lambda x: x + pd.to_timedelta(1, unit='h')}) #print(forecasts) f = lambda x: x + pd.to_timedelta(1, unit='h')
order = 3 nparts = 20 fuzzysets = [] fuzzysets.append(Grid.GridPartitioner(fln_train.glo_avg,nparts)) fuzzysets.append(Grid.GridPartitioner(joi_train.glo_avg,nparts)) fuzzysets.append(Grid.GridPartitioner(sbr_train.glo_avg,nparts)) d = {'fln_glo_avg':fln_train.glo_avg,'sbr_glo_avg':sbr_train.glo_avg,'joi_glo_avg':joi_train.glo_avg} data_train = pd.DataFrame(d) data_train = data_train.dropna(axis=0, how='any') model_file = "models/fts/multivariate/mvhofts-"+str(order)+"-"+str(nparts)+".pkl" mvhofts = mvhofts.MultivariateHighOrderFTS("") mvhofts.train(data_train,fuzzysets,order) cUtil.persist_obj(mvhofts, model_file) obj = cUtil.load_obj(model_file) dt = {'fln_glo_avg':fln_test.glo_avg,'sbr_glo_avg':sbr_test.glo_avg,'joi_glo_avg':joi_test.glo_avg} data_test = pd.DataFrame(dt) data_test = data_test.dropna(axis=0, how='any') ret = obj.forecast(data_test) print("RMSE: " + str(Measures.rmse(list(data_test.fln_glo_avg[order:]), ret[:-1]))) #print(mvhofts)