Former-commit-id:master3f7cfc37e8
[formerlyb74d2356a8
] [formerly3c458d75c2
[formerlya2a165609a
]] [formerly2e3b925ec7
[formerlye31b06239f
] [formerly31ea5772a1
[formerly0a384a8984
]]] [formerly2bf9721c55
[formerly493f4c3014
] [formerlyf1974f2891
[formerly81227824d7
]] [formerlyf3db06651b
[formerly8d78b06e9e
] [formerlyf907ef71f5
[formerlycf532ec083
]]]] [formerly946bb68241
[formerly96ba9ceb7d
] [formerly180343f152
[formerly9fbd0ca43a
]] [formerlycb24f146f1
[formerly414b396fc2
] [formerlyd304cadd7f
[formerly329acba2f7
]]] [formerly44cbbbdeb6
[formerly3b1d52222c
] [formerly795250861e
[formerlyd0ab4d27cb
]] [formerly99abf724fd
[formerly5f40093539
] [formerly3fb7bbd40a
[formerly908f6374bf
]]]]] [formerly156900ecff
[formerlyf7b387c445
] [formerly92c76931e3
[formerlyc7731b7d46
]] [formerly339e1c29e8
[formerly20a8356f5a
] [formerly5b71a77b6b
[formerly6a57734672
]]] [formerly6717e7f53e
[formerlya432c417ff
] [formerly1fe8593ba4
[formerly568256d572
]] [formerlyd841eea05b
[formerly58c80baa94
] [formerlyb2e4d6bc92
[formerly809a919c22
]]]] [formerly7d24f921fc
[formerly5f16493568
] [formerly32434bfce5
[formerly773ffcf350
]] [formerly174627e114
[formerlycf159d2675
] [formerly09c70e1cc9
[formerly2b9c213aad
]]] [formerlyb6c669ab04
[formerly7c0b650d34
] [formerly2e210feb12
[formerly7143d46ab4
]] [formerlybbf4c5f3aa
[formerlyb6370d4615
] [formerlyb7147eadb4
[formerly501035efa9
]]]]]] Former-commit-id:49012012f6
[formerlyb9bb9e1499
] [formerly4a6c600048
[formerlye7e139db3f
]] [formerly78b2a6c046
[formerlyf641bd1128
] [formerly1c7a591504
[formerly67689a8d9c
]]] [formerly797c03e482
[formerly2bbff2c4db
] [formerly9ab8c745ee
[formerlydc5e07cb3f
]] [formerly12fcc4027f
[formerlyec3f1d9078
] [formerlyb3d4bcd0a5
[formerlyd73228793c
]]]] [formerly912e6c46ec
[formerly52270242af
] [formerlyc8b312f42a
[formerlyd40c96306e
]] [formerly84e9e155a4
[formerly8a8acd041a
] [formerly6115e6e49f
[formerly643cff68df
]]] [formerlyee555be73d
[formerly5a214858f4
] [formerly5cc2dade41
[formerlyc792c83235
]] [formerly5932e3f807
[formerly3390f186bc
] [formerlyb7147eadb4
]]]] Former-commit-id:71accf5c5f
[formerly52bc81705b
] [formerly367a0893b3
[formerlye5f4ba0713
]] [formerlye7f38d4073
[formerlybea0027d20
] [formerlya0d9e910f1
[formerlye936a0d13e
]]] [formerly2eb4bfb3fc
[formerly5769769ddc
] [formerly61e28b2083
[formerly4d1b5b5d39
]] [formerlyd939d3e623
[formerly091ffd784f
] [formerlybf0416419e
[formerly0f38b48d92
]]]] Former-commit-id:71dff5394c
[formerlyfaebf231de
] [formerly2f13c6357f
[formerly3014c51839
]] [formerlyd8ff0b66fc
[formerlyc0403e6401
] [formerly4f37326f4f
[formerly035a2e6ff3
]]] Former-commit-id:1e2d5f638a
[formerlye49643e7de
] [formerly3fe5eb8c6b
[formerlya5428797f0
]] Former-commit-id:887b61afe5
[formerlydba4aebac6
] Former-commit-id:66f8f84a57
@@ -0,0 +1,70 @@ | |||
from d3m import index | |||
from d3m.metadata.base import ArgumentType | |||
from d3m.metadata.pipeline import Pipeline, PrimitiveStep | |||
# -> dataset_to_dataframe -> column_parser -> extract_columns_by_semantic_types(attributes) -> imputer -> random_forest | |||
# extract_columns_by_semantic_types(targets) -> ^ | |||
# Creating pipeline | |||
pipeline_description = Pipeline() | |||
pipeline_description.add_input(name='inputs') | |||
# Step 0: dataset_to_dataframe | |||
step_0 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.dataset_to_dataframe.Common')) | |||
step_0.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='inputs.0') | |||
step_0.add_output('produce') | |||
pipeline_description.add_step(step_0) | |||
# Step 1: column_parser | |||
step_1 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.column_parser.Common')) | |||
step_1.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_1.add_output('produce') | |||
pipeline_description.add_step(step_1) | |||
# Step 2: extract_columns_by_semantic_types(attributes) | |||
step_2 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_2.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_2.add_output('produce') | |||
step_2.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/Attribute']) | |||
pipeline_description.add_step(step_2) | |||
# Step 3: extract_columns_by_semantic_types(targets) | |||
step_3 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_3.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_3.add_output('produce') | |||
step_3.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/TrueTarget']) | |||
pipeline_description.add_step(step_3) | |||
attributes = 'steps.2.produce' | |||
targets = 'steps.3.produce' | |||
# Step 4: processing | |||
step_4 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.timeseries_processing.transformation.axiswise_scaler')) | |||
step_4.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference=attributes) | |||
step_4.add_output('produce') | |||
pipeline_description.add_step(step_4) | |||
# Step 5: algorithm` | |||
step_5 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.feature_analysis.auto_correlation')) | |||
step_5.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.4.produce') | |||
step_5.add_output('produce') | |||
pipeline_description.add_step(step_5) | |||
# Step 6: Predictions | |||
step_6 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.construct_predictions.Common')) | |||
step_6.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.5.produce') | |||
step_6.add_argument(name='reference', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_6.add_output('produce') | |||
pipeline_description.add_step(step_6) | |||
# Final Output | |||
pipeline_description.add_output(name='output predictions', data_reference='steps.6.produce') | |||
# Output to json | |||
data = pipeline_description.to_json() | |||
with open('example_pipeline.json', 'w') as f: | |||
f.write(data) | |||
print(data) | |||
@@ -0,0 +1,70 @@ | |||
from d3m import index | |||
from d3m.metadata.base import ArgumentType | |||
from d3m.metadata.pipeline import Pipeline, PrimitiveStep | |||
# -> dataset_to_dataframe -> column_parser -> extract_columns_by_semantic_types(attributes) -> imputer -> random_forest | |||
# extract_columns_by_semantic_types(targets) -> ^ | |||
# Creating pipeline | |||
pipeline_description = Pipeline() | |||
pipeline_description.add_input(name='inputs') | |||
# Step 0: dataset_to_dataframe | |||
step_0 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.dataset_to_dataframe.Common')) | |||
step_0.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='inputs.0') | |||
step_0.add_output('produce') | |||
pipeline_description.add_step(step_0) | |||
# Step 1: column_parser | |||
step_1 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.column_parser.Common')) | |||
step_1.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_1.add_output('produce') | |||
pipeline_description.add_step(step_1) | |||
# Step 2: extract_columns_by_semantic_types(attributes) | |||
step_2 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_2.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_2.add_output('produce') | |||
step_2.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/Attribute']) | |||
pipeline_description.add_step(step_2) | |||
# Step 3: extract_columns_by_semantic_types(targets) | |||
step_3 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_3.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_3.add_output('produce') | |||
step_3.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/TrueTarget']) | |||
pipeline_description.add_step(step_3) | |||
attributes = 'steps.2.produce' | |||
targets = 'steps.3.produce' | |||
# Step 4: processing | |||
step_4 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.timeseries_processing.transformation.axiswise_scaler')) | |||
step_4.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference=attributes) | |||
step_4.add_output('produce') | |||
pipeline_description.add_step(step_4) | |||
# Step 5: algorithm` | |||
step_5 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.detection_algorithm.deeplog')) | |||
step_5.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.4.produce') | |||
step_5.add_output('produce') | |||
pipeline_description.add_step(step_5) | |||
# Step 6: Predictions | |||
step_6 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.construct_predictions.Common')) | |||
step_6.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.5.produce') | |||
step_6.add_argument(name='reference', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_6.add_output('produce') | |||
pipeline_description.add_step(step_6) | |||
# Final Output | |||
pipeline_description.add_output(name='output predictions', data_reference='steps.6.produce') | |||
# Output to json | |||
data = pipeline_description.to_json() | |||
with open('example_pipeline.json', 'w') as f: | |||
f.write(data) | |||
print(data) | |||
@@ -0,0 +1,70 @@ | |||
from d3m import index | |||
from d3m.metadata.base import ArgumentType | |||
from d3m.metadata.pipeline import Pipeline, PrimitiveStep | |||
# -> dataset_to_dataframe -> column_parser -> extract_columns_by_semantic_types(attributes) -> imputer -> random_forest | |||
# extract_columns_by_semantic_types(targets) -> ^ | |||
# Creating pipeline | |||
pipeline_description = Pipeline() | |||
pipeline_description.add_input(name='inputs') | |||
# Step 0: dataset_to_dataframe | |||
step_0 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.dataset_to_dataframe.Common')) | |||
step_0.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='inputs.0') | |||
step_0.add_output('produce') | |||
pipeline_description.add_step(step_0) | |||
# Step 1: column_parser | |||
step_1 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.column_parser.Common')) | |||
step_1.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_1.add_output('produce') | |||
pipeline_description.add_step(step_1) | |||
# Step 2: extract_columns_by_semantic_types(attributes) | |||
step_2 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_2.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_2.add_output('produce') | |||
step_2.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/Attribute']) | |||
pipeline_description.add_step(step_2) | |||
# Step 3: extract_columns_by_semantic_types(targets) | |||
step_3 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_3.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_3.add_output('produce') | |||
step_3.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/TrueTarget']) | |||
pipeline_description.add_step(step_3) | |||
attributes = 'steps.2.produce' | |||
targets = 'steps.3.produce' | |||
# Step 4: processing | |||
step_4 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.timeseries_processing.transformation.axiswise_scaler')) | |||
step_4.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference=attributes) | |||
step_4.add_output('produce') | |||
pipeline_description.add_step(step_4) | |||
# Step 5: algorithm` | |||
step_5 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.detection_algorithm.matrix_profile')) | |||
step_5.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.4.produce') | |||
step_5.add_output('produce') | |||
pipeline_description.add_step(step_5) | |||
# Step 6: Predictions | |||
step_6 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.construct_predictions.Common')) | |||
step_6.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.5.produce') | |||
step_6.add_argument(name='reference', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_6.add_output('produce') | |||
pipeline_description.add_step(step_6) | |||
# Final Output | |||
pipeline_description.add_output(name='output predictions', data_reference='steps.6.produce') | |||
# Output to json | |||
data = pipeline_description.to_json() | |||
with open('example_pipeline.json', 'w') as f: | |||
f.write(data) | |||
print(data) | |||
@@ -0,0 +1,70 @@ | |||
from d3m import index | |||
from d3m.metadata.base import ArgumentType | |||
from d3m.metadata.pipeline import Pipeline, PrimitiveStep | |||
# -> dataset_to_dataframe -> column_parser -> extract_columns_by_semantic_types(attributes) -> imputer -> random_forest | |||
# extract_columns_by_semantic_types(targets) -> ^ | |||
# Creating pipeline | |||
pipeline_description = Pipeline() | |||
pipeline_description.add_input(name='inputs') | |||
# Step 0: dataset_to_dataframe | |||
step_0 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.dataset_to_dataframe.Common')) | |||
step_0.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='inputs.0') | |||
step_0.add_output('produce') | |||
pipeline_description.add_step(step_0) | |||
# Step 1: column_parser | |||
step_1 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.column_parser.Common')) | |||
step_1.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_1.add_output('produce') | |||
pipeline_description.add_step(step_1) | |||
# Step 2: extract_columns_by_semantic_types(attributes) | |||
step_2 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_2.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_2.add_output('produce') | |||
step_2.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/Attribute']) | |||
pipeline_description.add_step(step_2) | |||
# Step 3: extract_columns_by_semantic_types(targets) | |||
step_3 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.extract_columns_by_semantic_types.Common')) | |||
step_3.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.0.produce') | |||
step_3.add_output('produce') | |||
step_3.add_hyperparameter(name='semantic_types', argument_type=ArgumentType.VALUE, | |||
data=['https://metadata.datadrivendiscovery.org/types/TrueTarget']) | |||
pipeline_description.add_step(step_3) | |||
attributes = 'steps.2.produce' | |||
targets = 'steps.3.produce' | |||
# Step 4: processing | |||
step_4 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.timeseries_processing.transformation.axiswise_scaler')) | |||
step_4.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference=attributes) | |||
step_4.add_output('produce') | |||
pipeline_description.add_step(step_4) | |||
# Step 5: algorithm` | |||
step_5 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.tods.detection_algorithm.pyod_sod')) | |||
step_5.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.4.produce') | |||
step_5.add_output('produce') | |||
pipeline_description.add_step(step_5) | |||
# Step 6: Predictions | |||
step_6 = PrimitiveStep(primitive=index.get_primitive('d3m.primitives.data_transformation.construct_predictions.Common')) | |||
step_6.add_argument(name='inputs', argument_type=ArgumentType.CONTAINER, data_reference='steps.5.produce') | |||
step_6.add_argument(name='reference', argument_type=ArgumentType.CONTAINER, data_reference='steps.1.produce') | |||
step_6.add_output('produce') | |||
pipeline_description.add_step(step_6) | |||
# Final Output | |||
pipeline_description.add_output(name='output predictions', data_reference='steps.6.produce') | |||
# Output to json | |||
data = pipeline_description.to_json() | |||
with open('example_pipeline.json', 'w') as f: | |||
f.write(data) | |||
print(data) | |||
@@ -0,0 +1,134 @@ | |||
import unittest | |||
from datetime import datetime | |||
from d3m import container, utils | |||
from d3m.metadata import base as metadata_base | |||
from feature_analysis import AutoCorrelation | |||
#import utils as test_utils | |||
import numpy as np | |||
import pandas as pd | |||
class AutoCorrelationTestCase(unittest.TestCase): | |||
def test_basic(self): | |||
self.maxDiff = None | |||
main = container.DataFrame({'d3mIndex': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], | |||
'timestamp': [1472918400, 1472918700, 1472919000, 1472919300, | |||
1472919600, 1472919900, 1472920200, 1472920500, 1472920800, 1472921100], | |||
'value': [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], | |||
'ground_truth': [0, 1, 0, 1, 0, 1, 0, 1, 0, 1]}, | |||
columns = ['d3mIndex', 'timestamp', 'value', 'ground_truth'], generate_metadata = True) | |||
""" | |||
main.metadata = main.metadata.update_column(0, {'name': 'd3mIndex_'}) | |||
main.metadata = main.metadata.update_column(1, {'name': 'timestamp_'}) | |||
main.metadata = main.metadata.update_column(2, {'name': 'value_'}) | |||
main.metadata = main.metadata.update_column(3, {'name': 'ground_truth_'}) | |||
""" | |||
#print(main) | |||
self.assertEqual(utils.to_json_structure(main.metadata.to_internal_simple_structure()), [{ | |||
'selector': [], | |||
'metadata': { | |||
# 'top_level': 'main', | |||
'schema': metadata_base.CONTAINER_SCHEMA_VERSION, | |||
'structural_type': 'd3m.container.pandas.DataFrame', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/Table'], | |||
'dimension': { | |||
'name': 'rows', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularRow'], | |||
'length': 10, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__'], | |||
'metadata': { | |||
'dimension': { | |||
'name': 'columns', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularColumn'], | |||
'length': 4, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 0], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'd3mIndex'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 1], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'timestamp'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 2], | |||
'metadata': {'structural_type': 'numpy.float64', 'name': 'value'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 3], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'ground_truth'}, | |||
}]) | |||
hyperparams_class = AutoCorrelation.AutoCorrelation.metadata.get_hyperparams().defaults() | |||
hyperparams_class = hyperparams_class.replace({'nlags': 2}) | |||
#hyperparams_class = hyperparams_class.replace({'use_semantic_types': True}) | |||
primitive = AutoCorrelation.AutoCorrelation(hyperparams=hyperparams_class) | |||
new_main = primitive.produce(inputs=main).value | |||
print(new_main) | |||
new_main_drop = new_main['value_acf'] | |||
new_main_drop = new_main_drop.reset_index(drop = True) | |||
expected_result = pd.DataFrame({'acf':[1.000000, 0.700000, 0.412121, 0.148485, -0.078788, -0.257576, -0.375758, -0.421212, -0.381818, -0.245455]}) | |||
new_main_drop.reset_index() | |||
self.assertEqual(all(new_main_drop), all(expected_result)) | |||
#print(main.metadata.to_internal_simple_structure()) | |||
#print(new_main.metadata.to_internal_simple_structure()) | |||
self.assertEqual(utils.to_json_structure(main.metadata.to_internal_simple_structure()), [{ | |||
'selector': [], | |||
'metadata': { | |||
# 'top_level': 'main', | |||
'schema': metadata_base.CONTAINER_SCHEMA_VERSION, | |||
'structural_type': 'd3m.container.pandas.DataFrame', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/Table'], | |||
'dimension': { | |||
'name': 'rows', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularRow'], | |||
'length': 10, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__'], | |||
'metadata': { | |||
'dimension': { | |||
'name': 'columns', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularColumn'], | |||
'length': 4, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 0], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'd3mIndex'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 1], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'timestamp'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 2], | |||
'metadata': {'structural_type': 'numpy.float64', 'name': 'value'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 3], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'ground_truth'}, | |||
}]) | |||
params = primitive.get_params() | |||
primitive.set_params(params=params) | |||
if __name__ == '__main__': | |||
unittest.main() |
@@ -0,0 +1,121 @@ | |||
import unittest | |||
from datetime import datetime | |||
from d3m import container, utils | |||
from d3m.metadata import base as metadata_base | |||
from data_processing import TimeIntervalTransform | |||
#import utils as test_utils | |||
import numpy as np | |||
class TimeIntervalTransformTestCase(unittest.TestCase): | |||
def test_basic(self): | |||
self.maxDiff = None | |||
main = container.DataFrame({'d3mIndex': [0, 1, 2, 3, 4, 5, 6, 7], | |||
'timestamp': [1472918400, 1472918700, 1472919000, 1472919300, | |||
1472919600, 1472919900, 1472920200, 1472920500], | |||
'value': [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], | |||
'ground_truth': [0, 1, 0, 1, 0, 1, 0,1]}, | |||
columns = ['d3mIndex', 'timestamp', 'value', 'ground_truth'], generate_metadata = True) | |||
""" | |||
main.metadata = main.metadata.update_column(0, {'name': 'd3mIndex_'}) | |||
main.metadata = main.metadata.update_column(1, {'name': 'timestamp_'}) | |||
main.metadata = main.metadata.update_column(2, {'name': 'value_'}) | |||
main.metadata = main.metadata.update_column(3, {'name': 'ground_truth_'}) | |||
""" | |||
#print(main) | |||
self.assertEqual(utils.to_json_structure(main.metadata.to_internal_simple_structure()), [{ | |||
'selector': [], | |||
'metadata': { | |||
# 'top_level': 'main', | |||
'schema': metadata_base.CONTAINER_SCHEMA_VERSION, | |||
'structural_type': 'd3m.container.pandas.DataFrame', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/Table'], | |||
'dimension': { | |||
'name': 'rows', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularRow'], | |||
'length': 8, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__'], | |||
'metadata': { | |||
'dimension': { | |||
'name': 'columns', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularColumn'], | |||
'length': 4, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 0], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'd3mIndex'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 1], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'timestamp'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 2], | |||
'metadata': {'structural_type': 'numpy.float64', 'name': 'value'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 3], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'ground_truth'}, | |||
}]) | |||
hyperparams_class = TimeIntervalTransform.TimeIntervalTransform.metadata.get_hyperparams() | |||
primitive = TimeIntervalTransform.TimeIntervalTransform(hyperparams=hyperparams_class.defaults()) | |||
new_main = primitive.produce(inputs=main).value | |||
new_rows = len(new_main.index) | |||
self.assertEqual(new_rows, 8) | |||
#print(main.metadata.to_internal_simple_structure()) | |||
#print(new_main.metadata.to_internal_simple_structure()) | |||
self.assertEqual(utils.to_json_structure(main.metadata.to_internal_simple_structure()), [{ | |||
'selector': [], | |||
'metadata': { | |||
# 'top_level': 'main', | |||
'schema': metadata_base.CONTAINER_SCHEMA_VERSION, | |||
'structural_type': 'd3m.container.pandas.DataFrame', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/Table'], | |||
'dimension': { | |||
'name': 'rows', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularRow'], | |||
'length': 8, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__'], | |||
'metadata': { | |||
'dimension': { | |||
'name': 'columns', | |||
'semantic_types': ['https://metadata.datadrivendiscovery.org/types/TabularColumn'], | |||
'length': 4, | |||
}, | |||
}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 0], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'd3mIndex'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 1], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'timestamp'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 2], | |||
'metadata': {'structural_type': 'numpy.float64', 'name': 'value'}, | |||
}, { | |||
'selector': ['__ALL_ELEMENTS__', 3], | |||
'metadata': {'structural_type': 'numpy.int64', 'name': 'ground_truth'}, | |||
}]) | |||
params = primitive.get_params() | |||
primitive.set_params(params=params) | |||
if __name__ == '__main__': | |||
unittest.main() | |||