コード例 #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
ファイル: multivariate.py プロジェクト: yashhguptaa1/pyFTS
                          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
ファイル: multivariate.py プロジェクト: ZuoMatthew/pyFTS
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)