Exemple #1
0
    def build(self, data):
        diff = Transformations.Differential(1)
        data2 = diff.apply(data)
        davg = np.abs(np.mean(data2) / 2)

        if davg <= 1.0:
            base = 0.1
        elif 1 < davg <= 10:
            base = 1.0
        elif 10 < davg <= 100:
            base = 10
        else:
            base = 100

        sets = {}

        kwargs = {'type': self.type, 'variable': self.variable}

        dlen = self.max - self.min
        npart = math.ceil(dlen / base)
        partition = math.ceil(self.min)
        for c in range(npart):
            _name = self.get_name(c)
            if self.membership_function == Membership.trimf:
                sets[_name] = FuzzySet.FuzzySet(
                    _name, Membership.trimf,
                    [partition - base, partition, partition + base], partition,
                    **kwargs)
            elif self.membership_function == Membership.gaussmf:
                sets[_name] = FuzzySet.FuzzySet(_name, Membership.gaussmf,
                                                [partition, base / 2],
                                                partition)
            elif self.membership_function == Membership.trapmf:
                sets[_name] = FuzzySet.FuzzySet(_name, Membership.trapmf, [
                    partition - base, partition - (base / 2), partition +
                    (base / 2), partition + base
                ], partition, **kwargs)

            partition += base

        return sets
Exemple #2
0
#!/usr/bin/python
# -*- coding: utf8 -*-

import os
import numpy as np
import matplotlib.pylab as plt
#from mpl_toolkits.mplot3d import Axes3D

import pandas as pd
from pyFTS.common import Transformations

tdiff = Transformations.Differential(1)

from pyFTS.data import TAIEX, SP500, NASDAQ

dataset = TAIEX.get_data()
#dataset = SP500.get_data()[11500:16000]
#dataset = NASDAQ.get_data()
#print(len(dataset))

from pyFTS.partitioners import Grid, Util as pUtil
partitioner = Grid.GridPartitioner(data=dataset[:800], npart=10, transformation=tdiff)


from pyFTS.common import Util as cUtil
from pyFTS.benchmarks import benchmarks as bchmk, Util as bUtil, Measures, knn, quantreg, arima, naive

from pyFTS.models import pwfts, song, chen, ifts, hofts
from pyFTS.models.ensemble import ensemble

model = chen.ConventionalFTS(partitioner=partitioner)
Exemple #3
0
train_split = 1000
test_length = 200

from pyFTS.common import Transformations

from pyFTS.benchmarks import naive
from pyFTS.models.incremental import TimeVariant, IncrementalEnsemble
from pyFTS.models.nonstationary import common, perturbation, partitioners as nspart
from pyFTS.models.nonstationary import nsfts, util as nsUtil
from pyFTS.partitioners import Grid
from pyFTS.models import hofts, pwfts
from pyFTS.benchmarks import Measures
from pyFTS.common import Transformations, Util as cUtil

diff = Transformations.Differential(lag=1)

train = dataset[:1000]
test = dataset[1000:]

#grid = Grid.GridPartitioner(data=train, transformation=diff)
#model = pwfts.ProbabilisticWeightedFTS(partitioner=grid)
#model.append_transformation(diff)

model = naive.Naive()

model.fit(train)

for ct, ttrain, ttest in cUtil.sliding_window(test, 1000, .95, inc=.5):
    if model.shortname not in ('PWFTS', 'Naive'):
        model.predict(ttrain)