Commit 797f160b authored by Jarod Wang's avatar Jarod Wang Committed by Sujen
Browse files

update primitive ESRNN and its pipelines

parent 18a80ae9
{
"id": "3643b1bc-2455-4c38-a324-3ec861353993",
"schema": "https://metadata.datadrivendiscovery.org/schemas/v0/pipeline.json",
"created": "2020-02-10T18:16:54.699355Z",
"inputs": [
{
"name": "dataset inputs"
}
],
"outputs": [
{
"data": "steps.8.produce",
"name": "output predictions"
}
],
"steps": [
{
"type": "PRIMITIVE",
"primitive": {
"id": "4b42ce1e-9b98-4a25-b68e-fad13311eb65",
"version": "0.3.0",
"python_path": "d3m.primitives.data_transformation.dataset_to_dataframe.Common",
"name": "Extract a DataFrame from a Dataset",
"digest": "422744651afd5995d029a227a1dd7b1696038816b7eb9601f37d661757812aee"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "inputs.0"
}
},
"outputs": [
{
"id": "produce"
}
]
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "e193afa1-b45e-4d29-918f-5bb1fa3b88a7",
"version": "0.2.0",
"python_path": "d3m.primitives.schema_discovery.profiler.Common",
"name": "Determine missing semantic types for columns automatically",
"digest": "8b12a9aececdc5b7a4d5ef47cd04cda75592fd24f49922776b614d4bbeeb97f1"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.0.produce"
}
},
"outputs": [
{
"id": "produce"
}
]
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "d510cb7a-1782-4f51-b44c-58f0236e47c7",
"version": "0.6.0",
"python_path": "d3m.primitives.data_transformation.column_parser.Common",
"name": "Parses strings into their types",
"digest": "f1215fe3351a2e8bf495f9ed5ed50e88b30d78d4d7ebd9e13bb544e63a10994b"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.1.produce"
}
},
"outputs": [
{
"id": "produce"
}
],
"hyperparams": {
"parse_semantic_types": {
"type": "VALUE",
"data": [
"http://schema.org/Boolean",
"http://schema.org/Integer",
"http://schema.org/Float",
"https://metadata.datadrivendiscovery.org/types/FloatVector",
"http://schema.org/DateTime"
]
}
}
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "4503a4c6-42f7-45a1-a1d4-ed69699cf5e1",
"version": "0.3.0",
"python_path": "d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common",
"name": "Extracts columns by semantic type",
"digest": "30cceb9812b430d6550d54766b4f674b68b92531fc2ad63f56818ea002399c13"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.2.produce"
}
},
"outputs": [
{
"id": "produce"
}
],
"hyperparams": {
"semantic_types": {
"type": "VALUE",
"data": [
"https://metadata.datadrivendiscovery.org/types/Attribute"
]
}
}
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "d016df89-de62-3c53-87ed-c06bb6a23cde",
"version": "2019.11.13",
"python_path": "d3m.primitives.data_cleaning.imputer.SKlearn",
"name": "sklearn.impute.SimpleImputer",
"digest": "1fbe6321949de3f9bd1d93c6900cd5c3b3ee4b1a01506b89c69a776a9d27bf7a"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.3.produce"
}
},
"outputs": [
{
"id": "produce"
}
],
"hyperparams": {
"use_semantic_types": {
"type": "VALUE",
"data": true
},
"return_result": {
"type": "VALUE",
"data": "replace"
}
}
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "59db88b9-dd81-4e50-8f43-8f2af959560b",
"version": "0.1.0",
"python_path": "d3m.primitives.data_transformation.grouping_field_compose.Common",
"name": "Grouping Field Compose",
"digest": "4666539fb0f96ee3a40e0fc8d705b9ff309b137261fc3b76fa1194beb78e30e4"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.4.produce"
}
},
"outputs": [
{
"id": "produce"
}
]
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "4503a4c6-42f7-45a1-a1d4-ed69699cf5e1",
"version": "0.3.0",
"python_path": "d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common",
"name": "Extracts columns by semantic type",
"digest": "30cceb9812b430d6550d54766b4f674b68b92531fc2ad63f56818ea002399c13"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.2.produce"
}
},
"outputs": [
{
"id": "produce"
}
],
"hyperparams": {
"semantic_types": {
"type": "VALUE",
"data": [
"https://metadata.datadrivendiscovery.org/types/Target",
"https://metadata.datadrivendiscovery.org/types/TrueTarget",
"https://metadata.datadrivendiscovery.org/types/SuggestedTarget"
]
}
}
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "098afc89-da5f-4bf4-9298-dcd39406354c",
"version": "0.1.0",
"python_path": "d3m.primitives.time_series_forecasting.esrnn.RNN",
"name": "Hybrid ES-RNN models for time series forecasting",
"digest": "2f43b49390b6dcbc1f8278f8cc0d3daa6832414b8a3f7d30f6f5a96d43ac8f2c"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.5.produce"
},
"outputs": {
"type": "CONTAINER",
"data": "steps.6.produce"
}
},
"outputs": [
{
"id": "produce"
}
]
},
{
"type": "PRIMITIVE",
"primitive": {
"id": "8d38b340-f83f-4877-baaa-162f8e551736",
"version": "0.3.0",
"python_path": "d3m.primitives.data_transformation.construct_predictions.Common",
"name": "Construct pipeline predictions output",
"digest": "2994d9885ddeb72f5a47a8fb04e27fe3f684adebf7c5dc27cb56392475dbb29c"
},
"arguments": {
"inputs": {
"type": "CONTAINER",
"data": "steps.7.produce"
},
"reference": {
"type": "CONTAINER",
"data": "steps.0.produce"
}
},
"outputs": [
{
"id": "produce"
}
]
}
],
"digest": "0f5c1bd558f9fd06716555c1d95d602aaf6e7914d918e3df2192ee3dc7de3760"
}
\ No newline at end of file
......@@ -14,7 +14,7 @@
"installation": [
{
"type": "PIP",
"package_uri": "git+https://github.com/autonlab/esrnn.git@543ca365c70be2775a4b5863820b246071ccde3c#egg=esrnn"
"package_uri": "git+https://github.com/autonlab/esrnn.git@79ceddccc9542c3efd3cdaf778c2fddb1cf59c9b#egg=esrnn"
}
],
"algorithm_types": [
......@@ -37,54 +37,165 @@
],
"hyperparams": {
"max_epochs": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 15,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "Maximum number of complete passes to train data during fit",
"lower": 0,
"upper": 9223372036854775807,
"lower_inclusive": true,
"upper_inclusive": false
},
"freq_of_test": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 50,
"structural_type": "int",
"semantic_types": [
"http://schema.org/Boolean",
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "epochs to do on fit process",
"description": "period for the diagnostic evaluation of the model.",
"lower": 0,
"upper": 9223372036854775807,
"lower_inclusive": true,
"upper_inclusive": false
},
"batch_size": {
"learning_rate": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 0.001,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "Size of the stochastic gradient descent steps"
},
"lr_scheduler_step_size": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 8,
"default": 9,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "The batch size for RNN training",
"description": "This step_size is the period for each learning rate decay",
"lower": 1,
"upper": 10000,
"lower_inclusive": true,
"upper_inclusive": false
},
"learning_rate": {
"per_series_lr_multip": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 1.5,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "Multiplier for per-series parameters smoothing and initial seasonalities learning rate"
},
"gradient_eps": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 1e-08,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "term added to the Adam optimizer denominator to improve numerical stability"
},
"gradient_clipping_threshold": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 20,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "max norm of gradient vector, with all parameters treated as a single vector"
},
"rnn_weight_decay": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 0,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "parameter to control classic L2/Tikhonov regularization of the rnn parameters"
},
"noise_std": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 0.001,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "Learning rate used during training (fit)."
"description": "standard deviation of white noise added to input during fit to avoid the model from memorizing the train data "
},
"seasonality": {
"level_variability_penalty": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 100,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "this parameter controls the strength of the penalization to the wigglines of the level vector, induces smoothness in the output "
},
"percentile": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 50,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "This value is only for diagnostic evaluation. In case of percentile predictions this parameter controls for the value predicted, when forecasting point value, the forecast is the median, so percentile=50. "
},
"training_percentile": {
"type": "d3m.metadata.hyperparams.Hyperparameter",
"default": 50,
"structural_type": "float",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "To reduce the model's tendency to over estimate, the training_percentile can be set to fit a smaller value through the Pinball Loss.controls for the value predicted, when forecasting point value, the forecast is the median, so percentile=50. "
},
"batch_size": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 30,
"default": 1,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "",
"description": "The batch size for RNN training",
"lower": 1,
"upper": 10000,
"lower_inclusive": true,
"upper_inclusive": false
},
"seasonality": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 4,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "main frequency of the time series. Quarterly 4, Daily 7, Monthly 12",
"lower": 4,
"upper": 13,
"lower_inclusive": true,
"upper_inclusive": false
},
"frequency": {
"type": "d3m.metadata.hyperparams.Enumeration",
"default": "D",
"structural_type": "str",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "A number of string aliases are given to useful common time series frequencies. See https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases for a list of frequency aliases",
"values": [
"D",
"M",
"Q"
]
},
"input_size": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 30,
......@@ -92,7 +203,7 @@
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "",
"description": "input size of the recursive neural network, usually a multiple of seasonality",
"lower": 1,
"upper": 10000,
"lower_inclusive": true,
......@@ -105,11 +216,81 @@
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "",
"description": "output_size or forecast horizon of the recursive neura network, usually multiple of seasonality",
"lower": 1,
"upper": 10000,
"lower_inclusive": true,
"upper_inclusive": false
},
"exogenous_size": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 60,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "size of one hot encoded categorical variable, invariannt per time series of the panel",
"lower": 1,
"upper": 10000,
"lower_inclusive": true,
"upper_inclusive": false
},
"state_hsize": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 60,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "dimension of hidden state of the recursive neural network",
"lower": 1,
"upper": 10000,
"lower_inclusive": true,
"upper_inclusive": false
},
"add_nl_layer": {
"type": "d3m.metadata.hyperparams.UniformBool",
"default": true,
"structural_type": "bool",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "whether to insert a tanh() layer between the RNN stack and the linear adaptor (output) layers"
},
"data_augmentation": {
"type": "d3m.metadata.hyperparams.UniformBool",
"default": false,
"structural_type": "bool",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "True to turn on data augmentation support"
},
"max_periods": {
"type": "d3m.metadata.hyperparams.UniformInt",
"default": 20,
"structural_type": "int",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "The max number of periods (one period is one season as specified in the other hyperparameters)",
"lower": 0,
"upper": 9223372036854775807,
"lower_inclusive": true,
"upper_inclusive": false
},
"device": {
"type": "d3m.metadata.hyperparams.Enumeration",
"default": "cpu",
"structural_type": "str",
"semantic_types": [
"https://metadata.datadrivendiscovery.org/types/ControlParameter"
],
"description": "To force running in CPU mode on a GPU server, use cpu. It fallbacks to CPU if GPU is not available, even if cuda is specified",
"values": [
"cpu",
"cuda"
]
}
},
"arguments": {
......@@ -243,5 +424,5 @@
}
},
"structural_type": "esrnn.forecasting_esrnn.ForecastingESRNNPrimitive",
"digest": "4d6c2843c34069fec9bf3f5acd313e931a8be641dbb1e09da8bd617926b1600b"
"digest": "1bdce0aacd82a4443903fa6789491e635a5b4db6d6d642013eb6a2fa5a7cb55a"
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment