383 KiB
383 KiB
High Order Fuzzy Time Series¶
Common Imports¶
In [1]:
import matplotlib.pylab as plt
from pyFTS.benchmarks import benchmarks as bchmk
from pyFTS.models import hofts
%pylab inline
Data Loading¶
In [2]:
from pyFTS.data import Enrollments
enrollments = Enrollments.get_data()
Exploring the partitioning effects on original data¶
In [3]:
tmp = bchmk.simpleSearch_RMSE(enrollments, enrollments, hofts.HighOrderFTS, range(1,20), [1, 2, 3], tam=[10, 5])
Exploring the partitioning effects on transformed data¶
In [4]:
from pyFTS.common import Transformations
diff = Transformations.Differential(1)
tmp = bchmk.simpleSearch_RMSE(enrollments, enrollments, hofts.HighOrderFTS, range(1,20), [1, 2, 3],
transformation=diff, tam=[10, 5])
Comparing the partitioning schemas¶
In [5]:
from pyFTS.partitioners import Grid, Util as pUtil
fuzzy_sets = Grid.GridPartitioner(enrollments, 12)
fuzzy_sets2 = Grid.GridPartitioner(enrollments, 5, transformation=diff)
pUtil.plot_partitioners(enrollments, [fuzzy_sets,fuzzy_sets2])
Fitting a model on original data¶
In [13]:
model1 = hofts.HighOrderFTS("FTS", partitioner=fuzzy_sets)
model1.fit(enrollments, order=3)
print(model1)
Fitting a model on transformed data¶
In [14]:
model2 = hofts.HighOrderFTS("FTS Diff", partitioner=fuzzy_sets2)
model2.append_transformation(diff)
model2.fit(enrollments, order=3)
print(model2)
Using the models¶
In [15]:
model1.predict(enrollments)
Out[15]:
In [16]:
model2.predict(enrollments)
Out[16]:
Comparing the models¶
In [17]:
bchmk.plot_compared_series(enrollments, [model1, model2], bchmk.colors, intervals=False)
In [18]:
bchmk.print_point_statistics(enrollments, [model1, model2])
Residual Analysis¶
In [12]:
from pyFTS.benchmarks import ResidualAnalysis as ra
ra.plot_residuals(enrollments, [model1, model2])
In [ ]:
In [ ]: