Skip to content
This repository was archived by the owner on Oct 28, 2019. It is now read-only.
This repository was archived by the owner on Oct 28, 2019. It is now read-only.

issues setting up a simple forecast model #121

Open
@martinbel

Description

@martinbel

Hi,

I wanted to implement a simple forecast model (mostly to try the platform) but I couldn't get it working. It's a bit different from the examples, so perhaps if it ends up working it could help improve the docs. It should be easily reproducible with the data below.

ws <- workspace() # I assume you have this
# AzureML Workspace
# Workspace ID : bla 
# API endpoint : bla

#### The time series data. It's actually the monthly ARS/USD pair.
y = structure(c(4.136, 4.1481, 4.15094736842105, 4.208, 4.30252380952381, 
                4.28642857142857, 4.29709523809524, 4.36522727272727, 4.4385, 
                4.4407, 4.78166666666667, 4.70657894736842, 4.80904761904762, 
                4.74694444444444, 4.79659090909091, 4.98911764705882, 5.49942857142857, 
                5.9485, 6.31, 6.31590909090909, 6.31789473684211, 6.27772727272727, 
                6.374, 6.53944444444444, 7.37619047619048, 7.745625, 8.07277777777778, 
                8.681, 9.28, 8.44, 8.35647058823529, 9.01533333333333, 9.355, 
                9.80714285714286, 9.85363636363636, 9.59875, 11.5059090909091, 
                11.9263157894737, 10.9033333333333, 10.502, 11.1985, 11.8368421052632, 
                12.2636363636364, 13.3863157894737, 14.85, 14.8147619047619, 
                13.3583333333333, 13.136, 13.7163636363636, 13.1283333333333, 
                12.75, 12.596, 12.64625, 13.015, 14.3776470588235, 15.2385, 15.7378947368421, 
                15.9309090909091, 15.18625, 13.8333333333333, 13.9156666666667, 
                15.2083333333333, 15.1555555555556, 14.64, 14.45, 15.09, 15.242, 
                15.1256, 15.3643333333333, 15.416, 15.7596666666667, 16.145), .Tsp = c(2011, 
                                                                                       2016.91666666667, 12), class = "ts")

# Fit a baseline model
fit = Arima(y, order = c(2, 1, 2))

# the "predict" function for the endpoint
predict_arima <- function(h){
  require(forecast)
  yhat = forecast(fit, h=h)
  x = as.data.frame(yhat)
  data.frame(yearmon = rownames(x), forecast = x[,1], stringsAsFactors = FALSE)
}

out_schema = predict_arima(h = 10)
str(out_schema)
# 'data.frame':	10 obs. of  2 variables:
# $ yearmon : chr  "Jan 2017" "Feb 2017" "Mar 2017" "Apr 2017" ...
# $ forecast: num  16.2 16 16.1 16.1 16.1 ...

### Here is the web service definition:
ep <- publishWebService(ws = ws, fun = predict_arima, name = "forecast_arima_h", 
                        inputSchema = list(h = "numeric"), 
                        outputSchema = out_schema,
                        data.frame = FALSE, 
                        packages = 'forecast')

After the packages are downloaded (I'll leave it out) This is the result:

consume(ep, list(h = 10))
Request failed with status 401. Waiting 3.0 seconds before retry
.
Error: AzureML returns error code:
HTTP status code : 400
AzureML error code  : LibraryExecutionError

Module execution encountered an internal library error.
The following error occurred during evaluation of R script: 
R_tryEval: return error: Error in do.call(..fun, inputDF[i, ]) : second argument must be a list

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions