def load_all_forecasts(): df = load_california_electricity_demand().sort_values("ds") forecast_list = os.listdir(FORECAST_DIRECTORY) for f in forecast_list: df = df.merge(read_forecast(f), on="ds") return df
import datetime import numpy as np import pandas as pd from sts.models.prophet import (add_season_weekday_indicators, seasonal_daily_prophet_model) from sts.data.loader import load_california_electricity_demand # Load all available data for training df = load_california_electricity_demand() # Take log transform for fully multiplicative model df['y'] = df.y.apply(np.log) # Fit best current model model = seasonal_daily_prophet_model(df) # Make predictions for one year ahead of most recent training data future = add_season_weekday_indicators( model.make_future_dataframe(periods=24 * 365, freq='H')) forecast = model.predict(future) samples = model.predictive_samples(future) # Reverse log transform predictions = np.exp(samples['yhat'])
# BUSINESS ADVANTAGE OR UNAVAILABILITY, OR LOSS OR CORRUPTION OF # DATA. # # ########################################################################### import os import numpy as np from sts.data.loader import load_california_electricity_demand from sts.models.prophet import (add_season_weekday_indicators, seasonal_daily_prophet_model) # Load the training data (through 2018) df = load_california_electricity_demand(train_only=True) # Log transform the target variable df['y'] = df.y.apply(np.log) # ## Prophet (with more complicated seasonality) # FB Prophet model, splitting intra-day seasonalities into four subgroups: # - summer weekday # - summer weekend # - winter weekday # - winter weekend model = seasonal_daily_prophet_model(df) future = model.make_future_dataframe(periods=8760, freq='H') seasonal_future = add_season_weekday_indicators(future)
# identified above. # # This code is provided to you pursuant a written agreement with # (i) Cloudera, Inc. or (ii) a third-party authorized to distribute # this code. If you do not have a written agreement with Cloudera nor # with an authorized and properly licensed third party, you do not # have any rights to access nor to use this code. # # Absent a written agreement with Cloudera, Inc. (“Cloudera”) to the # contrary, A) CLOUDERA PROVIDES THIS CODE TO YOU WITHOUT WARRANTIES OF ANY # KIND; (B) CLOUDERA DISCLAIMS ANY AND ALL EXPRESS AND IMPLIED # WARRANTIES WITH RESPECT TO THIS CODE, INCLUDING BUT NOT LIMITED TO # IMPLIED WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND # FITNESS FOR A PARTICULAR PURPOSE; (C) CLOUDERA IS NOT LIABLE TO YOU, # AND WILL NOT DEFEND, INDEMNIFY, NOR HOLD YOU HARMLESS FOR ANY CLAIMS # ARISING FROM OR RELATED TO THE CODE; AND (D)WITH RESPECT TO YOUR EXERCISE # OF ANY RIGHTS GRANTED TO YOU FOR THE CODE, CLOUDERA IS NOT LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR # CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO, DAMAGES # RELATED TO LOST REVENUE, LOST PROFITS, LOSS OF INCOME, LOSS OF # BUSINESS ADVANTAGE OR UNAVAILABILITY, OR LOSS OR CORRUPTION OF # DATA. # # ########################################################################### from sts.data.loader import load_california_electricity_demand # This will load or download the data as json, and write it to csv. df = load_california_electricity_demand('data/demand.json') df.to_csv('data/demand.csv')