コード例 #1
0
ファイル: methodtest.py プロジェクト: fleupold/pycast
    def preset_season_factor_test(self):
        """Initial Season Factors should be presetable"""
        hwm = HoltWintersMethod(seasonLength=4)
        factors = [0,1,2,3]
        hwm.set_parameter("seasonValues", factors)

        data = [[0, 362.0], [1,385.0], [2, 432.0], [3, 341.0], [4, 382.0], [5, 409.0], [6, 498.0], [7, 387.0], [8, 473.0], [9, 513.0], [10, 582.0], [11, 474.0]]
        tsSrc = TimeSeries.from_twodim_list(data)
        seasonValues = hwm.initSeasonFactors(tsSrc)

        assert seasonValues == factors, "Preset Season Factors are not returned by initSeasonFactors"

        hwm.set_parameter("seasonValues", factors[:2])
        try:
            hwm.initSeasonFactors(tsSrc)
        except AssertionError:
            pass
        else:
            assert False, "If preset season factors and season length do not comply, initSeasonFactors should throw an AssertionError"    # pragma: no cover
コード例 #2
0
ファイル: methodtest.py プロジェクト: sdemirel/pycast
    def preset_season_factor_test(self):
        """Initial Season Factors should be presetable"""
        hwm = HoltWintersMethod(seasonLength=4)
        factors = [0, 1, 2, 3]
        hwm.set_parameter("seasonValues", factors)

        data = [[0, 362.0], [1, 385.0], [2, 432.0], [3, 341.0], [4, 382.0],
                [5, 409.0], [6, 498.0], [7, 387.0], [8, 473.0], [9, 513.0],
                [10, 582.0], [11, 474.0]]
        tsSrc = TimeSeries.from_twodim_list(data)
        seasonValues = hwm.initSeasonFactors(tsSrc)

        assert seasonValues == factors, "Preset Season Factors are not returned by initSeasonFactors"

        hwm.set_parameter("seasonValues", factors[:2])
        try:
            hwm.initSeasonFactors(tsSrc)
        except AssertionError:
            pass
        else:
            assert False, "If preset season factors and season length do not comply, initSeasonFactors should throw an AssertionError"  # pragma: no cover
コード例 #3
0
from pycast.common.timeseries import TimeSeries
from pycast.methods import HoltWintersMethod
from pycast.optimization import GridSearch
from pycast.errors import SymmetricMeanAbsolutePercentageError as SMAPE

data_list = [1.1, 2.1, 3.3, 4.4, 5.5, 1.1, 2.2, 3.3]

orig = TimeSeries(isNormalized=True)
for i in range(len(data_list)):
    orig.add_entry(i, data_list[i]) #offset to first data entry in line

seasonLength = int(5)
season_values = []
for i in range(seasonLength):
    season_values.append(float(1.0))
#print season_values

hwm = HoltWintersMethod(seasonLength = seasonLength, valuesToForecast = 3)
hwm.set_parameter("seasonValues", season_values)


gridSearch = GridSearch(SMAPE)
optimal_forecasting, error, optimal_params = gridSearch.optimize(orig, [hwm])
predicted = optimal_forecasting.execute(orig)

print str(orig)

print str(predicted)

コード例 #4
0
                           number_obeservations + number_forecast):
                forecast_check.add_entry(j, float(series_tuples[j + 7]))

            #print forecast_check

            #Season indices are given in season file
            season_indices_tuple = season_indices.readline().split(',')
            seasonLength = int(season_indices_tuple[1])
            season_values = []
            for i in range(seasonLength):
                season_values.append(float(season_indices_tuple[i + 2]))
            #print season_values

            hwm = HoltWintersMethod(seasonLength=seasonLength,
                                    valuesToForecast=number_forecast)
            hwm.set_parameter("seasonValues", season_values)

            #Optimize parameters
            gridSearch = GridSearch(SMAPE)
            optimal_forecasting, error, optimal_params = gridSearch.optimize(
                orig, [hwm])
            predicted = optimal_forecasting.execute(orig)

            #Now add forecasted values to original and calculate error
            orig += forecast_check
            assert len(orig) == len(
                predicted
            ), "Prediction and original season should have the same length."

            total_error = SMAPE()
            total_error.initialize(orig, predicted)