예제 #1
0
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))
예제 #2
0
                          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)
예제 #3
0
파일: pwfts.py 프로젝트: goldstar111/pyFTS
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')
#'''
예제 #4
0
파일: cmsfts.py 프로젝트: zilla-liu/pyFTS
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")
예제 #5
0
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')
예제 #6
0
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)