diff --git a/src/getml_io/getml/features.py b/src/getml_io/getml/features.py new file mode 100644 index 0000000..cc6793f --- /dev/null +++ b/src/getml_io/getml/features.py @@ -0,0 +1,18 @@ +from collections.abc import Mapping +from typing import ClassVar + +from pydantic import BaseModel, ConfigDict + + +class Feature(BaseModel): + model_config: ClassVar[ConfigDict] = ConfigDict(frozen=True) + + name: str + index: int + target: str + importance: float + correlation: float + sql: str + + +Features = Mapping[str, Feature] diff --git a/src/getml_io/metadata/pipeline_information.py b/src/getml_io/metadata/pipeline_information.py index fc6682c..58913ac 100644 --- a/src/getml_io/metadata/pipeline_information.py +++ b/src/getml_io/metadata/pipeline_information.py @@ -11,6 +11,7 @@ from pydantic import BaseModel, ConfigDict from getml_io.getml.feature_learning import FeatureLearner +from getml_io.getml.features import Features from getml_io.getml.predictors import FeatureSelector, Predictor from getml_io.getml.preprocessors import Preprocessor from getml_io.metadata.data_model_information import DataModelInformation @@ -42,7 +43,7 @@ class PipelineInformation(BaseModel): tags: Sequence[str] targets: Sequence[str] data_model: DataModelInformation - # features # TODO @urfoex: #17 + features: Features # scores # TODO @urfoex: #18 # columns # TODO @urfoex: #50 # metadata # TODO @urfoex: #51 diff --git a/src/getml_io/serialize/pipeline.py b/src/getml_io/serialize/pipeline.py index 89e0c49..b370e0e 100644 --- a/src/getml_io/serialize/pipeline.py +++ b/src/getml_io/serialize/pipeline.py @@ -11,6 +11,7 @@ Container, DataFrame, ) +from getml.pipeline import Features as GetMLFeatures from getml.pipeline import Pipeline from numpy.typing import NDArray @@ -22,6 +23,7 @@ Relboost, RelMT, ) +from getml_io.getml.features import Feature, Features from getml_io.getml.predictors import ( LinearRegression, LogisticRegression, @@ -120,7 +122,7 @@ def serialize_pipeline( tags=pipeline.tags, targets=pipeline.targets, data_model=serialize_data_model(pipeline.data_model), - # features # TODO @urfoex: #17 + features=serialize_features(pipeline.features), # scores # TODO @urfoex: #18 # columns # TODO @urfoex: #50 # metadata # TODO @urfoex: #51 @@ -306,3 +308,26 @@ def serialize_preprocessor( # noqa: PLR0911 return Substring.model_validate(preprocessor_as_dict) case getml_preprocessor.TextFieldSplitter(): return TextFieldSplitter.model_validate(preprocessor_as_dict) + + +def serialize_features(features: GetMLFeatures) -> Features: + """Serialize getML Features into a Features object. + + Args: + features: The getML Features to serialize. + + Returns: + Features: The serialized Features information. + + """ + return { + feature.name: Feature( + name=feature.name, + index=feature.index, + target=feature.target, + importance=feature.importance, + correlation=feature.correlation, + sql=feature.sql, + ) + for feature in features + } diff --git a/tests/integration/assertions.py b/tests/integration/assertions.py index e87b62a..feadde7 100644 --- a/tests/integration/assertions.py +++ b/tests/integration/assertions.py @@ -1,6 +1,7 @@ from collections.abc import Sequence from pathlib import Path +from getml_io.getml.features import Features from getml_io.metadata.container_information import ContainerInformation from getml_io.metadata.dataframe_information import ( ColumnProfile, @@ -208,3 +209,23 @@ def assert_pipeline_information( assert pipeline_information.tags assert pipeline_information.targets == expected_pipeline_information.targets assert pipeline_information.data_model == expected_pipeline_information.data_model + assert_features( + pipeline_information.features, + expected_pipeline_information.features, + ) + + +def assert_features( + features: Features, + expected_features: Features, +) -> None: + assert len(features) == len(expected_features) + assert features.keys() == expected_features.keys() + for feature_name, feature in features.items(): + expected_feature = expected_features[feature_name] + assert feature.name == expected_feature.name + assert feature.index == expected_feature.index + assert feature.target == expected_feature.target + assert feature.sql is not None + assert feature.importance is not None + assert feature.correlation is not None diff --git a/tests/integration/data/loans/expected.pipeline.json b/tests/integration/data/loans/expected.pipeline.json index 2b402a3..28ef7fb 100644 --- a/tests/integration/data/loans/expected.pipeline.json +++ b/tests/integration/data/loans/expected.pipeline.json @@ -631,10 +631,10 @@ "feature_learners": [ { "aggregation": [ - "AVG", "SUM", - "MIN", + "AVG", "MAX", + "MIN", "COUNT" ], "allow_sets": true, @@ -649,18 +649,18 @@ "num_threads": 0, "propositionalization": { "aggregation": [ - "COUNT DISTINCT", - "COUNT MINUS COUNT DISTINCT", - "AVG", "SUM", + "AVG", + "MEDIAN", "TREND", - "MIN", + "COUNT MINUS COUNT DISTINCT", + "MODE", "STDDEV", - "LAST", "MAX", + "MIN", + "COUNT DISTINCT", "FIRST", - "MEDIAN", - "MODE", + "LAST", "COUNT" ], "delta_t": 0.0, @@ -956,5 +956,111 @@ "parent": null }, "peripheral": {} + }, + "features": { + "feature_1_1": { + "name": "feature_1_1", + "index": 0, + "target": "default", + "importance": 0.1135676632264945, + "correlation": 0.490601623544188, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_1\";\n\nCREATE TABLE \"FEATURE_1_1\" AS\nSELECT MAX( t2.\"amount\" ) AS \"feature_1_1\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE ( t2.\"date\" <= t1.\"date_loan\"\n) AND (\n ( ( t2.\"balance\" <= 3480.000000 ) AND ( t1.\"date_loan\" - t2.\"date\" <= 19958400.000000 ) AND ( t2.\"amount\" <= 20299.000000 ) AND ( t2.\"k_symbol\" NOT IN ( 'POJISTNE', 'SLUZBY', 'UROK', 'SANKC. UROK' ) OR t2.\"k_symbol\" IS NULL ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_2": { + "name": "feature_1_2", + "index": 1, + "target": "default", + "importance": 0.09923157995248899, + "correlation": 0.44092213849038303, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_2\";\n\nCREATE TABLE \"FEATURE_1_2\" AS\nSELECT SUM( t1.\"date_loan\" - t2.\"date\" ) AS \"feature_1_2\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE ( t2.\"date\" <= t1.\"date_loan\"\n) AND (\n ( ( t2.\"k_symbol\" NOT IN ( 'SANKC. UROK' ) OR t2.\"k_symbol\" IS NULL ) AND ( t2.\"balance\" > 186780.000000 ) )\nOR ( ( t2.\"k_symbol\" IN ( 'SANKC. UROK' ) ) AND ( t1.\"frequency\" NOT IN ( 'POPLATEK MESICNE' ) OR t1.\"frequency\" IS NULL ) AND ( t2.\"amount\" > 4.000000 ) )\nOR ( ( t2.\"k_symbol\" IN ( 'SANKC. UROK' ) ) AND ( t1.\"frequency\" IN ( 'POPLATEK MESICNE' ) ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_3": { + "name": "feature_1_3", + "index": 2, + "target": "default", + "importance": 0.03450241472632771, + "correlation": -0.0021713705808225877, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_3\";\n\nCREATE TABLE \"FEATURE_1_3\" AS\nSELECT AVG( t2.\"a10\" ) AS \"feature_1_3\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t1.\"amount\" > 234442.000000 ) AND ( t2.\"type_card\" NOT IN ( 'gold', 'classic', 'junior' ) OR t2.\"type_card\" IS NULL ) AND ( t1.\"frequency\" IN ( 'POPLATEK MESICNE' ) ) AND ( t2.\"a9\" <= 9.000000 ) )\nOR ( ( t1.\"amount\" <= 234442.000000 OR t1.\"amount\" IS NULL ) AND ( t1.\"payments\" > 6912.000000 ) AND ( t2.\"a3\" NOT IN ( 'east Bohemia', 'south Moravia', 'north Bohemia', 'north Moravia' ) OR t2.\"a3\" IS NULL ) )\nOR ( ( t1.\"amount\" <= 234442.000000 OR t1.\"amount\" IS NULL ) AND ( t1.\"payments\" <= 6912.000000 OR t1.\"payments\" IS NULL ) AND ( t2.\"a12\" > 4.637500 ) AND ( t1.\"amount\" > 83764.000000 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_4": { + "name": "feature_1_4", + "index": 3, + "target": "default", + "importance": 0.25317056825181045, + "correlation": 0.6216480344796319, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_4\";\n\nCREATE TABLE \"FEATURE_1_4\" AS\nSELECT COUNT( * ) AS \"feature_1_4\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"TRANS__STAGING_TABLE_4\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE ( t2.\"date\" <= t1.\"date_loan\"\n) AND (\n ( ( t2.\"balance\" > 13055.000000 OR t2.\"balance\" IS NULL ) AND ( t2.\"balance\" > 133677.000000 ) AND ( t1.\"frequency\" NOT IN ( 'POPLATEK MESICNE', 'POPLATEK PO OBRATU' ) OR t1.\"frequency\" IS NULL ) )\nOR ( ( t2.\"balance\" <= 13055.000000 ) AND ( t2.\"operation\" IN ( 'VYBER', 'VKLAD' ) ) AND ( t1.\"date_loan\" - t2.\"date\" <= 18423138.461538 ) AND ( t2.\"balance\" > -4311.000000 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_5": { + "name": "feature_1_5", + "index": 4, + "target": "default", + "importance": 0.022781446408607083, + "correlation": 0.23609098488653527, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_5\";\n\nCREATE TABLE \"FEATURE_1_5\" AS\nSELECT MAX( t2.\"a10\" ) AS \"feature_1_5\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t1.\"payments\" > 6880.000000 ) AND ( t2.\"type_card\" NOT IN ( 'classic' ) OR t2.\"type_card\" IS NULL ) AND ( t1.\"payments\" > 8407.000000 OR t1.\"payments\" IS NULL ) AND ( t2.\"a3\" IN ( 'south Bohemia', 'north Moravia' ) ) )\nOR ( ( t1.\"payments\" > 6880.000000 ) AND ( t2.\"type_card\" NOT IN ( 'classic' ) OR t2.\"type_card\" IS NULL ) AND ( t1.\"payments\" <= 8407.000000 ) AND ( t2.\"a8\" <= 2.000000 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_6": { + "name": "feature_1_6", + "index": 5, + "target": "default", + "importance": 0.1746793231004474, + "correlation": -0.18288971144527097, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_6\";\n\nCREATE TABLE \"FEATURE_1_6\" AS\nSELECT AVG( t2.\"a14\" ) AS \"feature_1_6\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t1.\"payments\" > 6874.000000 OR t1.\"payments\" IS NULL ) AND ( t2.\"type_card\" NOT IN ( 'gold', 'classic', 'junior' ) OR t2.\"type_card\" IS NULL ) AND ( t2.\"type_disp\" NOT IN ( 'OWNER' ) OR t2.\"type_disp\" IS NULL ) )\nOR ( ( t1.\"payments\" > 6874.000000 OR t1.\"payments\" IS NULL ) AND ( t2.\"type_card\" NOT IN ( 'gold', 'classic', 'junior' ) OR t2.\"type_card\" IS NULL ) AND ( t2.\"type_disp\" IN ( 'OWNER' ) ) AND ( t1.\"duration\" <= 20.000000 ) )\nOR ( ( t1.\"payments\" > 6874.000000 OR t1.\"payments\" IS NULL ) AND ( t2.\"type_card\" IN ( 'gold', 'classic', 'junior' ) ) )\nOR ( ( t1.\"payments\" <= 6874.000000 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_7": { + "name": "feature_1_7", + "index": 6, + "target": "default", + "importance": 0.12502651911553847, + "correlation": -0.051941482060654416, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_7\";\n\nCREATE TABLE \"FEATURE_1_7\" AS\nSELECT MIN( t2.\"a11\" ) AS \"feature_1_7\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t1.\"payments\" > 7395.000000 OR t1.\"payments\" IS NULL ) AND ( t1.\"amount\" > 172870.000000 OR t1.\"amount\" IS NULL ) AND ( t2.\"a3\" NOT IN ( 'east Bohemia', 'south Moravia', 'north Bohemia', 'west Bohemia' ) OR t2.\"a3\" IS NULL ) AND ( t2.\"type_card\" IN ( 'classic' ) ) )\nOR ( ( t1.\"payments\" > 7395.000000 OR t1.\"payments\" IS NULL ) AND ( t1.\"amount\" > 172870.000000 OR t1.\"amount\" IS NULL ) AND ( t2.\"a3\" IN ( 'east Bohemia', 'south Moravia', 'north Bohemia', 'west Bohemia' ) ) AND ( t2.\"a12\" <= 3.850000 ) )\nOR ( ( t1.\"payments\" > 7395.000000 OR t1.\"payments\" IS NULL ) AND ( t1.\"amount\" <= 172870.000000 ) AND ( t2.\"a3\" NOT IN ( 'west Bohemia' ) OR t2.\"a3\" IS NULL ) )\nOR ( ( t1.\"payments\" <= 7395.000000 ) AND ( t2.\"a13\" > 8.901667 OR t2.\"a13\" IS NULL ) AND ( t2.\"gender\" NOT IN ( 'M' ) OR t2.\"gender\" IS NULL ) )\nOR ( ( t1.\"payments\" <= 7395.000000 ) AND ( t2.\"a13\" <= 8.901667 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_8": { + "name": "feature_1_8", + "index": 7, + "target": "default", + "importance": 0.009308557459210479, + "correlation": -0.03337139710997413, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_8\";\n\nCREATE TABLE \"FEATURE_1_8\" AS\nSELECT AVG( t2.\"a5\" ) AS \"feature_1_8\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t1.\"payments\" > 7042.000000 ) AND ( t2.\"a9\" > 4.000000 OR t2.\"a9\" IS NULL ) AND ( t2.\"a3\" NOT IN ( 'north Moravia', 'west Bohemia' ) OR t2.\"a3\" IS NULL ) AND ( t2.\"a11\" > 9765.000000 ) )\nOR ( ( t1.\"payments\" > 7042.000000 ) AND ( t2.\"a9\" > 4.000000 OR t2.\"a9\" IS NULL ) AND ( t2.\"a3\" IN ( 'north Moravia', 'west Bohemia' ) ) )\nOR ( ( t1.\"payments\" > 7042.000000 ) AND ( t2.\"a9\" <= 4.000000 ) )\nOR ( ( t1.\"payments\" <= 7042.000000 OR t1.\"payments\" IS NULL ) AND ( t2.\"a14\" <= 95.000000 ) AND ( t2.\"a6\" > 25.000000 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_9": { + "name": "feature_1_9", + "index": 8, + "target": "default", + "importance": 0.007941830306946887, + "correlation": -0.0232127074123776, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_9\";\n\nCREATE TABLE \"FEATURE_1_9\" AS\nSELECT AVG( t2.\"a13\" ) AS \"feature_1_9\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t2.\"a11\" > 8329.000000 OR t2.\"a11\" IS NULL ) AND ( t2.\"a4\" > 367714.000000 ) AND ( t2.\"type_card\" NOT IN ( 'classic' ) OR t2.\"type_card\" IS NULL ) )\nOR ( ( t2.\"a11\" <= 8329.000000 ) AND ( t1.\"amount\" > 235098.000000 ) AND ( t2.\"a3\" NOT IN ( 'south Moravia' ) OR t2.\"a3\" IS NULL ) )\nOR ( ( t2.\"a11\" <= 8329.000000 ) AND ( t1.\"amount\" <= 235098.000000 OR t1.\"amount\" IS NULL ) AND ( t2.\"a8\" > 2.000000 ) AND ( t1.\"duration\" <= 30.000000 ) )\n)\nGROUP BY t1.rowid;" + }, + "feature_1_10": { + "name": "feature_1_10", + "index": 9, + "target": "default", + "importance": 0.0010942671416343636, + "correlation": 0.15435132513852295, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_10\";\n\nCREATE TABLE \"FEATURE_1_10\" AS\nSELECT MIN( t2.\"a12\" ) AS \"feature_1_10\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"META__STAGING_TABLE_2\" t2\nON t1.\"account_id\" = t2.\"account_id\"\nWHERE (\n ( ( t1.\"payments\" > 7240.000000 ) AND ( t2.\"type_card\" NOT IN ( 'gold', 'classic' ) OR t2.\"type_card\" IS NULL ) AND ( t1.\"frequency\" IN ( 'POPLATEK MESICNE', 'POPLATEK TYDNE' ) ) AND ( t2.\"type_disp\" NOT IN ( 'DISPONENT' ) OR t2.\"type_disp\" IS NULL ) )\n)\nGROUP BY t1.rowid;" + }, + "duration": { + "name": "duration", + "index": 10, + "target": "default", + "importance": 0.0005039782195063603, + "correlation": -0.0271918442877901, + "sql": "" + }, + "payments": { + "name": "payments", + "index": 11, + "target": "default", + "importance": 0.0788924833005465, + "correlation": 0.10606259213768955, + "sql": "" + }, + "amount": { + "name": "amount", + "index": 12, + "target": "default", + "importance": 0.07929936879044087, + "correlation": 0.06660193285904141, + "sql": "" + } } } \ No newline at end of file diff --git a/tests/integration/data/numerical/expected.pipeline.json b/tests/integration/data/numerical/expected.pipeline.json index d714ce1..cf3fe2b 100644 --- a/tests/integration/data/numerical/expected.pipeline.json +++ b/tests/integration/data/numerical/expected.pipeline.json @@ -570,18 +570,18 @@ "num_threads": 0, "propositionalization": { "aggregation": [ - "COUNT DISTINCT", - "COUNT MINUS COUNT DISTINCT", - "AVG", "SUM", + "AVG", + "MEDIAN", "TREND", - "MIN", + "COUNT MINUS COUNT DISTINCT", + "MODE", "STDDEV", - "LAST", "MAX", + "MIN", + "COUNT DISTINCT", "FIRST", - "MEDIAN", - "MODE", + "LAST", "COUNT" ], "delta_t": 0.0, @@ -727,5 +727,95 @@ "parent": null }, "peripheral": {} + }, + "features": { + "feature_1_1": { + "name": "feature_1_1", + "index": 0, + "target": "targets", + "importance": 0.9855079335297239, + "correlation": 0.9999677553832725, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_1\";\n\nCREATE TABLE \"FEATURE_1_1\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498925 ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.504473 ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * -0.0002825082677636587 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * -0.007415503263206161 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * 0.003826871192511936 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * 0.0122621884520277 + 8.9312536387801140e-03\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498925 ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.504473 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * 0.05804418805774981 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * -0.2861045206793753 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * -0.0653957309758228 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * 0.3191843723547194 + 2.3485154307641487e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498925 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"column_01\" > -0.921696 ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * 0.0002807963805906742 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * 0.009555970634299542 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * 0.001445637494295812 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * -0.0186912319484488 + 9.9855091184214373e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498925 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"column_01\" <= -0.921696 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * -0.02214564726962967 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * 0.03800937692930173 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * 0.09246878641979493 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * -0.06194856794978174 + 9.8800776047156758e-01\n ELSE NULL\n END\n) AS \"feature_1_1\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_2": { + "name": "feature_1_2", + "index": 1, + "target": "targets", + "importance": 3.235278199916987e-6, + "correlation": -0.45903221957864576, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_2\";\n\nCREATE TABLE \"FEATURE_1_2\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498925 ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.504473 ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * 0.06609900457169174 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * -0.6295295575571463 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * 0.2835999498687981 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * -0.02637379609146044 + 1.8258162605335087e-03\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498925 ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.504473 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * 7.128685991272434 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * 17.84616914426364 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * -9.164770141676748 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * -11.62938113588722 + 1.1385935496578947e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498925 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"column_01\" > -0.921696 ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * 0.006843251806502547 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * 0.4975218568631604 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * 0.02294642167405772 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * -0.7527161752946725 + 9.9922470077978554e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498925 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"column_01\" <= -0.921696 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.3476693939772724, 0.0 ) * -0.3390880692579381 + COALESCE( t1.\"time_stamp\" - 0.6256710322580648, 0.0 ) * 4.603157429459366 + COALESCE( t2.\"column_01\" - 0.01279470270620846, 0.0 ) * 11.77286124731349 + COALESCE( t2.\"time_stamp\" - 0.3708535386317902, 0.0 ) * -5.099763745399616 + 1.0007022964293952e+00\n ELSE NULL\n END\n) AS \"feature_1_2\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_3": { + "name": "feature_1_3", + "index": 2, + "target": "targets", + "importance": 0.007550877454312558, + "correlation": 0.9999462263425182, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_3\";\n\nCREATE TABLE \"FEATURE_1_3\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501775 ) AND ( t1.\"column_01\" > 0.856386 ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * 0.08445650826980627 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * 0.3550331227713587 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * 0.03268783427556191 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * -0.5264636906842577 + -3.0307853756374431e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501775 ) AND ( t1.\"column_01\" <= 0.856386 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * 0.001597353554398187 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * 0.03657358064072273 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * 0.0009340103362134945 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * -0.02896138146352568 + -3.0564557237884381e-02\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501775 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498409 ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * 0.01804744327796228 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * 4.674703457895101 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * -0.1454134563545548 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * -4.097979101666891 + -7.8981906116152012e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501775 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498409 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * -0.0007849000795266131 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * -0.005421658973588547 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * -0.002308417886658116 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * 0.02826561511005675 + 9.0185439055969818e-01\n ELSE NULL\n END\n) AS \"feature_1_3\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_4": { + "name": "feature_1_4", + "index": 3, + "target": "targets", + "importance": 8.533660221786729e-6, + "correlation": 0.3077574208172454, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_4\";\n\nCREATE TABLE \"FEATURE_1_4\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501775 ) AND ( t1.\"column_01\" > 0.765917 ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * 14.03809250481727 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * 40.57658306419481 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * 24.64387486121828 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * 14.70945117299917 + -1.3055442491942787e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501775 ) AND ( t1.\"column_01\" <= 0.765917 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * 0.3245142029734437 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * 6.166202794466526 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * -0.5179467504298221 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * 1.178685664959367 + -1.6388722882609414e-02\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501775 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498409 ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * 6.342664729713697 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * 202.954310079599 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * -18.83705142814225 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * -128.5493277818914 + 2.8962240854574806e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501775 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498409 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1554697090156631, 0.0 ) * -0.01298483961864202 + COALESCE( t1.\"time_stamp\" - 0.5534843333333335, 0.0 ) * -0.9633164199912341 + COALESCE( t2.\"column_01\" - 0.0150488310381689, 0.0 ) * -0.1539160834850153 + COALESCE( t2.\"time_stamp\" - 0.3408921897827647, 0.0 ) * 3.190234334521742 + 8.9814202462828985e-01\n ELSE NULL\n END\n) AS \"feature_1_4\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_5": { + "name": "feature_1_5", + "index": 4, + "target": "targets", + "importance": 0.00005670347744705081, + "correlation": 0.9997852958452743, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_5\";\n\nCREATE TABLE \"FEATURE_1_5\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501743 ) AND ( t1.\"column_01\" > 0.831731 ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * 0.08953914195307049 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * 0.07266643304116419 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * -0.02109235012870913 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * -0.1450644849730639 + -1.3228435587994120e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501743 ) AND ( t1.\"column_01\" <= 0.831731 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * 0.001224244382021227 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * 0.02224869985962535 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * 0.007475664704203301 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * -0.02246737996915927 + -1.7288886029105145e-02\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501743 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498453 ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * 0.01473497402431667 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * -3.67171733873037 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * 0.07565616902957738 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * 3.756136203566701 + 1.6896615371518224e+00\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501743 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498453 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * -0.0006878528908862898 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * -0.006825793080495507 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * -0.00141834710142976 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * 0.01747351001934011 + 8.1129050420365478e-01\n ELSE NULL\n END\n) AS \"feature_1_5\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_6": { + "name": "feature_1_6", + "index": 5, + "target": "targets", + "importance": 2.4247201030086813e-6, + "correlation": 0.010240239170331641, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_6\";\n\nCREATE TABLE \"FEATURE_1_6\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501743 ) AND ( t1.\"column_01\" > 0.831731 ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * 21.46467875970271 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * -22.11881555806786 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * -10.2375015576399 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * 52.23159582549691 + -1.9053976101947895e-02\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501743 ) AND ( t1.\"column_01\" <= 0.831731 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * 0.0465685582484428 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * 0.4601144771700485 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * 1.868012102045002 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * 4.065531584414509 + -2.3782339887040587e-03\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501743 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498453 ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * -2.791649001040807 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * -341.7583668518341 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * 19.28320620113372 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * 180.1951572050513 + 1.0021678223934718e+00\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501743 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498453 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.4063565992022968, 0.0 ) * -0.011965661142605 + COALESCE( t1.\"time_stamp\" - 0.5375246333333336, 0.0 ) * -0.4234434507345259 + COALESCE( t2.\"column_01\" - 0.006255480359208636, 0.0 ) * -0.04975855094688834 + COALESCE( t2.\"time_stamp\" - 0.3312582032343706, 0.0 ) * 1.933400867438229 + 8.0785574938562288e-01\n ELSE NULL\n END\n) AS \"feature_1_6\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_7": { + "name": "feature_1_7", + "index": 6, + "target": "targets", + "importance": 0.006753733723576533, + "correlation": 0.9999556424041055, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_7\";\n\nCREATE TABLE \"FEATURE_1_7\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501651 ) AND ( t2.\"column_01\" > -0.846143 ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * -0.001493861933905013 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * -0.007182437891560771 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * 0.02489841822192869 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * -0.007455280418811005 + -7.7090585490841215e-03\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501651 ) AND ( t2.\"column_01\" <= -0.846143 OR t2.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * 0.02191841441823272 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * 0.2288513466118687 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * 0.2152923315884198 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * -0.05725722024827516 + 1.6274132167775598e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501651 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498474 ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * -0.1285670433349319 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * 0.09380642781832983 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * -0.04844798227211269 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * 0.02041704015912599 + 4.2353371621539826e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501651 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498474 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * 6.132603747064745e-05 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * -0.004978033261172977 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * -0.003803004420420616 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * 0.008848936152593714 + 7.2967626442543165e-01\n ELSE NULL\n END\n) AS \"feature_1_7\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_8": { + "name": "feature_1_8", + "index": 7, + "target": "targets", + "importance": 2.500948473796868e-6, + "correlation": -0.4540189912321207, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_8\";\n\nCREATE TABLE \"FEATURE_1_8\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501651 ) AND ( t2.\"column_01\" > -0.846143 ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * -0.5213707574939598 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * 2.858497364273565 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * 4.98967581918408 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * -2.454680877407986 + -1.3695016487991716e-02\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501651 ) AND ( t2.\"column_01\" <= -0.846143 OR t2.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * 5.163584444329135 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * 3.642674764502531 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * 29.69273767381162 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * -15.36350301350208 + 1.5193268230959023e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501651 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498474 ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * -17.85508990100138 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * 11.21012552801582 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * -8.582013412185995 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * -7.359260072650577 + 4.2183749315466107e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501651 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498474 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.2401549331032501, 0.0 ) * 0.02074566194157262 + COALESCE( t1.\"time_stamp\" - 0.6052577878787879, 0.0 ) * -0.5384577190357468 + COALESCE( t2.\"column_01\" - 0.01744899727986292, 0.0 ) * -0.1143310783423644 + COALESCE( t2.\"time_stamp\" - 0.3586735348654483, 0.0 ) * 1.106283632734646 + 7.2873366938851347e-01\n ELSE NULL\n END\n) AS \"feature_1_8\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_9": { + "name": "feature_1_9", + "index": 8, + "target": "targets", + "importance": 0.00011069700912831822, + "correlation": 0.9998800147496907, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_9\";\n\nCREATE TABLE \"FEATURE_1_9\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501842 ) AND ( t1.\"column_01\" > 0.506598 ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * 0.02806341807642407 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * 0.1005855667727084 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * 0.05043917424967326 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * -0.211674367137595 + -1.1278947500145307e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501842 ) AND ( t1.\"column_01\" <= 0.506598 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * 0.001164477789418083 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * -0.007312218559158858 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * -0.01802190327160747 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 0.02071044264103949 + -5.5907828958983632e-03\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501842 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498441 ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * 0.03602918186805804 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * 0.5558772346193536 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * 0.004575154971044848 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 0.04365762583061258 + 2.5574551943952029e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501842 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498441 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * -0.0003786663742407553 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * -0.01175584053811839 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * -0.001011664105964864 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 0.03034975195777023 + 6.5809460173427137e-01\n ELSE NULL\n END\n) AS \"feature_1_9\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "feature_1_10": { + "name": "feature_1_10", + "index": 9, + "target": "targets", + "importance": 2.2158050428138524e-6, + "correlation": 0.30509226848518806, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_10\";\n\nCREATE TABLE \"FEATURE_1_10\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501842 ) AND ( t1.\"column_01\" > 0.643560 ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * 9.877188827889023 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * 12.01459646074551 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * 8.876757988330217 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 7.40363324168734 + -7.3226440490680805e-02\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.501842 ) AND ( t1.\"column_01\" <= 0.643560 OR t1.\"column_01\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * 0.1101768936585742 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * -1.022134954047455 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * -3.906771442750788 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 4.599728380986098 + -5.0424784350053672e-03\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501842 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" > 0.498441 ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * 14.83783889032573 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * 14.68937003402948 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * 5.614331332820621 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 81.73119784024503 + 4.0128967526428971e-01\n WHEN ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.501842 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) AND ( t1.\"time_stamp\" - t2.\"time_stamp\" <= 0.498441 OR t1.\"time_stamp\" IS NULL OR t2.\"time_stamp\" IS NULL ) THEN COALESCE( t1.\"column_01\" - -0.1136283210506594, 0.0 ) * -0.02393403673832931 + COALESCE( t1.\"time_stamp\" - 0.6267969285714285, 0.0 ) * -0.8606425343024822 + COALESCE( t2.\"column_01\" - 0.005701637464124793, 0.0 ) * -0.0389454131820322 + COALESCE( t2.\"time_stamp\" - 0.3721112498869289, 0.0 ) * 3.924829063046743 + 6.5128984222492303e-01\n ELSE NULL\n END\n) AS \"feature_1_10\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"PERPH__STAGING_TABLE_2\" t2\nON t1.\"join_key\" = t2.\"join_key\"\nWHERE t2.\"time_stamp\" <= t1.\"time_stamp\"\nGROUP BY t1.rowid;" + }, + "column_01": { + "name": "column_01", + "index": 10, + "target": "targets", + "importance": 1.144393770273378e-6, + "correlation": -0.09593210355580734, + "sql": "" + } } } \ No newline at end of file diff --git a/tests/integration/data/robot/expected.pipeline.json b/tests/integration/data/robot/expected.pipeline.json index 7388fa9..e2aa7df 100644 --- a/tests/integration/data/robot/expected.pipeline.json +++ b/tests/integration/data/robot/expected.pipeline.json @@ -7020,18 +7020,18 @@ "num_threads": 0, "propositionalization": { "aggregation": [ - "COUNT DISTINCT", - "COUNT MINUS COUNT DISTINCT", - "AVG", "SUM", + "AVG", + "MEDIAN", "TREND", - "MIN", + "COUNT MINUS COUNT DISTINCT", + "MODE", "STDDEV", - "LAST", "MAX", + "MIN", + "COUNT DISTINCT", "FIRST", - "MEDIAN", - "MODE", + "LAST", "COUNT" ], "delta_t": 0.0, @@ -7365,5 +7365,991 @@ "parent": null }, "peripheral": {} + }, + "features": { + "feature_1_1": { + "name": "feature_1_1", + "index": 0, + "target": "f_z", + "importance": 0.01357680886229068, + "correlation": -0.13123721580660005, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_1\";\n\nCREATE TABLE \"FEATURE_1_1\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"69\" > -21.775444 ) AND ( t1.\"48\" > -0.835814 ) THEN 1.044429922263974\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"69\" > -21.775444 ) AND ( t1.\"48\" <= -0.835814 OR t1.\"48\" IS NULL ) THEN 1.59523047916995\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"69\" <= -21.775444 OR t2.\"69\" IS NULL ) AND ( t2.\"46\" > -6.542175 ) THEN 0.7399658893921874\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"69\" <= -21.775444 OR t2.\"69\" IS NULL ) AND ( t2.\"46\" <= -6.542175 OR t2.\"46\" IS NULL ) THEN -0.01913377577846733\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" > -18.316600 ) AND ( t2.\"35\" > 0.960430 ) THEN -5.809133775778446\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" > -18.316600 ) AND ( t2.\"35\" <= 0.960430 OR t2.\"35\" IS NULL ) THEN 9.641016436804664\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" <= -18.316600 OR t1.\"71\" IS NULL ) AND ( t1.\"70\" > -10.965400 ) THEN -2.051889230264734\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" <= -18.316600 OR t1.\"71\" IS NULL ) AND ( t1.\"70\" <= -10.965400 OR t1.\"70\" IS NULL ) THEN -0.8315943548443633\n ELSE NULL\n END\n) AS \"feature_1_1\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_2": { + "name": "feature_1_2", + "index": 1, + "target": "f_z", + "importance": 0.0091723881150266, + "correlation": 0.0980687305133106, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_2\";\n\nCREATE TABLE \"FEATURE_1_2\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"59\" > 0.082758 ) AND ( t1.\"71\" > -18.458944 ) THEN -0.004174407866768231\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"59\" > 0.082758 ) AND ( t1.\"71\" <= -18.458944 OR t1.\"71\" IS NULL ) THEN 0.0005213834301270161\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"59\" <= 0.082758 OR t2.\"59\" IS NULL ) AND ( t1.\"48\" > -0.825047 ) THEN 0.07818669298400913\n WHEN ( t2.\"50\" > -0.203234 ) AND ( t2.\"59\" <= 0.082758 OR t2.\"59\" IS NULL ) AND ( t1.\"48\" <= -0.825047 OR t1.\"48\" IS NULL ) THEN 0.1876734022050968\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" > -18.316600 ) AND ( t2.\"58\" > 0.410010 ) THEN -0.197174407866769\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" > -18.316600 ) AND ( t2.\"58\" <= 0.410010 OR t2.\"58\" IS NULL ) THEN 0.2174705046429114\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" <= -18.316600 OR t1.\"71\" IS NULL ) AND ( t1.\"70\" > -10.965400 ) THEN -0.09590428769424887\n WHEN ( t2.\"50\" <= -0.203234 OR t2.\"50\" IS NULL ) AND ( t1.\"71\" <= -18.316600 OR t1.\"71\" IS NULL ) AND ( t1.\"70\" <= -10.965400 OR t1.\"70\" IS NULL ) THEN -0.05236499275234723\n ELSE NULL\n END\n) AS \"feature_1_2\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_3": { + "name": "feature_1_3", + "index": 2, + "target": "f_z", + "importance": 0.003942658767679584, + "correlation": 0.3651973751817581, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_3\";\n\nCREATE TABLE \"FEATURE_1_3\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"46\" > -6.555694 ) AND ( t2.\"70\" > -11.993471 ) AND ( t1.\"100\" > 1.002587 ) THEN 0.01630213522539686\n WHEN ( t2.\"46\" > -6.555694 ) AND ( t2.\"70\" > -11.993471 ) AND ( t1.\"100\" <= 1.002587 OR t1.\"100\" IS NULL ) THEN 0.006102307815768657\n WHEN ( t2.\"46\" > -6.555694 ) AND ( t2.\"70\" <= -11.993471 OR t2.\"70\" IS NULL ) AND ( t1.\"56\" > -0.196735 ) THEN 0.2116508046494054\n WHEN ( t2.\"46\" > -6.555694 ) AND ( t2.\"70\" <= -11.993471 OR t2.\"70\" IS NULL ) AND ( t1.\"56\" <= -0.196735 OR t1.\"56\" IS NULL ) THEN 0.1496014200770628\n WHEN ( t2.\"46\" <= -6.555694 OR t2.\"46\" IS NULL ) AND ( t1.\"50\" > -0.199922 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 20.300000 ) THEN -0.09061636027826467\n WHEN ( t2.\"46\" <= -6.555694 OR t2.\"46\" IS NULL ) AND ( t1.\"50\" > -0.199922 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 20.300000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN -0.1284389319957988\n WHEN ( t2.\"46\" <= -6.555694 OR t2.\"46\" IS NULL ) AND ( t1.\"50\" <= -0.199922 OR t1.\"50\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 14.500000 ) THEN -0.04394492967982972\n WHEN ( t2.\"46\" <= -6.555694 OR t2.\"46\" IS NULL ) AND ( t1.\"50\" <= -0.199922 OR t1.\"50\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 14.500000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN -0.118999013660137\n ELSE NULL\n END\n) AS \"feature_1_3\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_4": { + "name": "feature_1_4", + "index": 3, + "target": "f_z", + "importance": 0.027281888214282967, + "correlation": 0.2458749054844035, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_4\";\n\nCREATE TABLE \"FEATURE_1_4\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"101\" > 47.847944 ) AND ( t1.\"105\" > 47.969677 ) AND ( t2.\"61\" > 0.785928 ) THEN 0.4025744497122666\n WHEN ( t1.\"101\" > 47.847944 ) AND ( t1.\"105\" > 47.969677 ) AND ( t2.\"61\" <= 0.785928 OR t2.\"61\" IS NULL ) THEN -0.6353936261716235\n WHEN ( t1.\"101\" > 47.847944 ) AND ( t1.\"105\" <= 47.969677 OR t1.\"105\" IS NULL ) AND ( t2.\"58\" > 0.410010 ) THEN 0.5382123577854343\n WHEN ( t1.\"101\" > 47.847944 ) AND ( t1.\"105\" <= 47.969677 OR t1.\"105\" IS NULL ) AND ( t2.\"58\" <= 0.410010 OR t2.\"58\" IS NULL ) THEN -2.209284760825461\n WHEN ( t1.\"101\" <= 47.847944 OR t1.\"101\" IS NULL ) AND ( t1.\"72\" > -3.537224 ) AND ( t2.\"69\" > -21.457000 ) THEN -2.484985024935639\n WHEN ( t1.\"101\" <= 47.847944 OR t1.\"101\" IS NULL ) AND ( t1.\"72\" > -3.537224 ) AND ( t2.\"69\" <= -21.457000 OR t2.\"69\" IS NULL ) THEN 0.01489196354860183\n WHEN ( t1.\"101\" <= 47.847944 OR t1.\"101\" IS NULL ) AND ( t1.\"72\" <= -3.537224 OR t1.\"72\" IS NULL ) AND ( t1.\"57\" > 0.769909 ) THEN 0.01634997941062817\n WHEN ( t1.\"101\" <= 47.847944 OR t1.\"101\" IS NULL ) AND ( t1.\"72\" <= -3.537224 OR t1.\"72\" IS NULL ) AND ( t1.\"57\" <= 0.769909 OR t1.\"57\" IS NULL ) THEN 0.1434387945728565\n ELSE NULL\n END\n) AS \"feature_1_4\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_5": { + "name": "feature_1_5", + "index": 4, + "target": "f_z", + "importance": 0.001667830697765811, + "correlation": 0.31294351198069226, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_5\";\n\nCREATE TABLE \"FEATURE_1_5\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"58\" > 0.410009 ) AND ( t2.\"59\" > 0.082790 ) AND ( t1.\"104\" > 47.817154 ) THEN 0.1850320336901805\n WHEN ( t2.\"58\" > 0.410009 ) AND ( t2.\"59\" > 0.082790 ) AND ( t1.\"104\" <= 47.817154 OR t1.\"104\" IS NULL ) THEN 0.4309632529232985\n WHEN ( t2.\"58\" > 0.410009 ) AND ( t2.\"59\" <= 0.082790 OR t2.\"59\" IS NULL ) AND ( t1.\"102\" > 47.876708 ) THEN 0.8675169879781438\n WHEN ( t2.\"58\" > 0.410009 ) AND ( t2.\"59\" <= 0.082790 OR t2.\"59\" IS NULL ) AND ( t1.\"102\" <= 47.876708 OR t1.\"102\" IS NULL ) THEN 1.164104343775155\n WHEN ( t2.\"58\" <= 0.410009 OR t2.\"58\" IS NULL ) AND ( t1.\"100\" > 0.995428 ) AND ( t2.\"47\" > -2.815700 ) THEN -0.3976473221379385\n WHEN ( t2.\"58\" <= 0.410009 OR t2.\"58\" IS NULL ) AND ( t1.\"100\" > 0.995428 ) AND ( t2.\"47\" <= -2.815700 OR t2.\"47\" IS NULL ) THEN 0.1898029476762665\n WHEN ( t2.\"58\" <= 0.410009 OR t2.\"58\" IS NULL ) AND ( t1.\"100\" <= 0.995428 OR t1.\"100\" IS NULL ) AND ( t1.\"61\" > 0.785968 ) THEN -1.240882077564577\n WHEN ( t2.\"58\" <= 0.410009 OR t2.\"58\" IS NULL ) AND ( t1.\"100\" <= 0.995428 OR t1.\"100\" IS NULL ) AND ( t1.\"61\" <= 0.785968 OR t1.\"61\" IS NULL ) THEN -1.75897795842622\n ELSE NULL\n END\n) AS \"feature_1_5\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_6": { + "name": "feature_1_6", + "index": 5, + "target": "f_z", + "importance": 0.012180448383314071, + "correlation": 0.22065462261517055, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_6\";\n\nCREATE TABLE \"FEATURE_1_6\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"46\" > -6.555859 ) AND ( t1.\"62\" > -0.368221 ) AND ( t2.\"73\" > 5.950883 ) THEN 0.05851102327901537\n WHEN ( t2.\"46\" > -6.555859 ) AND ( t1.\"62\" > -0.368221 ) AND ( t2.\"73\" <= 5.950883 OR t2.\"73\" IS NULL ) THEN -0.004216938453397124\n WHEN ( t2.\"46\" > -6.555859 ) AND ( t1.\"62\" <= -0.368221 OR t1.\"62\" IS NULL ) AND ( t2.\"45\" > 0.119935 ) THEN 0.02377633133328922\n WHEN ( t2.\"46\" > -6.555859 ) AND ( t1.\"62\" <= -0.368221 OR t1.\"62\" IS NULL ) AND ( t2.\"45\" <= 0.119935 OR t2.\"45\" IS NULL ) THEN -0.01195088088199951\n WHEN ( t2.\"46\" <= -6.555859 OR t2.\"46\" IS NULL ) AND ( t1.\"100\" > 0.966785 ) AND ( t2.\"70\" > -11.147500 ) THEN -0.1179572620841688\n WHEN ( t2.\"46\" <= -6.555859 OR t2.\"46\" IS NULL ) AND ( t1.\"100\" > 0.966785 ) AND ( t2.\"70\" <= -11.147500 OR t2.\"70\" IS NULL ) THEN -0.03273821450629886\n WHEN ( t2.\"46\" <= -6.555859 OR t2.\"46\" IS NULL ) AND ( t1.\"100\" <= 0.966785 OR t1.\"100\" IS NULL ) AND ( t1.\"34\" > -0.327356 ) THEN -0.09752140108899067\n WHEN ( t2.\"46\" <= -6.555859 OR t2.\"46\" IS NULL ) AND ( t1.\"100\" <= 0.966785 OR t1.\"100\" IS NULL ) AND ( t1.\"34\" <= -0.327356 OR t1.\"34\" IS NULL ) THEN -0.07404082536341942\n ELSE NULL\n END\n) AS \"feature_1_6\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_7": { + "name": "feature_1_7", + "index": 6, + "target": "f_z", + "importance": 0.014843935660375989, + "correlation": 0.06413624531828874, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_7\";\n\nCREATE TABLE \"FEATURE_1_7\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t2.\"100\" > 0.859369 ) AND ( t1.\"73\" > 5.809668 ) THEN 1.357043131135498\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t2.\"100\" > 0.859369 ) AND ( t1.\"73\" <= 5.809668 OR t1.\"73\" IS NULL ) THEN 1.273425632253459\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t2.\"100\" <= 0.859369 OR t2.\"100\" IS NULL ) AND ( t1.\"72\" > -3.582582 ) THEN 2.910169687210807\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t2.\"100\" <= 0.859369 OR t2.\"100\" IS NULL ) AND ( t1.\"72\" <= -3.582582 OR t1.\"72\" IS NULL ) THEN 2.197167216307977\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"35\" > 0.960435 ) AND ( t1.\"56\" > -0.196904 ) THEN -1.03036221236337\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"35\" > 0.960435 ) AND ( t1.\"56\" <= -0.196904 OR t1.\"56\" IS NULL ) THEN -1.798806267634083\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"35\" <= 0.960435 OR t1.\"35\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 18.125000 ) THEN -0.01247715586091344\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"35\" <= 0.960435 OR t1.\"35\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 18.125000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN -1.102259526985943\n ELSE NULL\n END\n) AS \"feature_1_7\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_8": { + "name": "feature_1_8", + "index": 7, + "target": "f_z", + "importance": 0.020704559058710256, + "correlation": 0.11442400955412707, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_8\";\n\nCREATE TABLE \"FEATURE_1_8\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t1.\"73\" > 5.810844 ) AND ( t1.\"56\" > -0.196788 ) THEN 0.01073903930411289\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t1.\"73\" > 5.810844 ) AND ( t1.\"56\" <= -0.196788 OR t1.\"56\" IS NULL ) THEN 0.007232105102288733\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t1.\"73\" <= 5.810844 OR t1.\"73\" IS NULL ) AND ( t2.\"71\" > -18.089364 ) THEN 0.1246396610885679\n WHEN ( t2.\"46\" > -6.555189 ) AND ( t1.\"73\" <= 5.810844 OR t1.\"73\" IS NULL ) AND ( t2.\"71\" <= -18.089364 OR t2.\"71\" IS NULL ) THEN 0.0007704547145759809\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"72\" > -3.606000 ) AND ( t1.\"72\" > -3.527320 ) THEN -0.08192775655488042\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"72\" > -3.606000 ) AND ( t1.\"72\" <= -3.527320 OR t1.\"72\" IS NULL ) THEN -0.06228296730787168\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"72\" <= -3.606000 OR t1.\"72\" IS NULL ) AND ( t1.\"61\" > 0.785973 ) THEN -0.08976654645145316\n WHEN ( t2.\"46\" <= -6.555189 OR t2.\"46\" IS NULL ) AND ( t1.\"72\" <= -3.606000 OR t1.\"72\" IS NULL ) AND ( t1.\"61\" <= 0.785973 OR t1.\"61\" IS NULL ) THEN -0.1080097486217386\n ELSE NULL\n END\n) AS \"feature_1_8\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_9": { + "name": "feature_1_9", + "index": 8, + "target": "f_z", + "importance": 0.009607279170983798, + "correlation": -0.1132372549555811, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_9\";\n\nCREATE TABLE \"FEATURE_1_9\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"47\" > -2.800267 ) AND ( t1.\"102\" > 47.890143 ) AND ( t1.\"56\" > -0.197243 ) THEN 0.09049497812088239\n WHEN ( t2.\"47\" > -2.800267 ) AND ( t1.\"102\" > 47.890143 ) AND ( t1.\"56\" <= -0.197243 OR t1.\"56\" IS NULL ) THEN -0.01063489065823323\n WHEN ( t2.\"47\" > -2.800267 ) AND ( t1.\"102\" <= 47.890143 OR t1.\"102\" IS NULL ) AND ( t1.\"61\" > 0.785992 ) THEN 0.07398827760936945\n WHEN ( t2.\"47\" > -2.800267 ) AND ( t1.\"102\" <= 47.890143 OR t1.\"102\" IS NULL ) AND ( t1.\"61\" <= 0.785992 OR t1.\"61\" IS NULL ) THEN 0.1474833269876115\n WHEN ( t2.\"47\" <= -2.800267 OR t2.\"47\" IS NULL ) AND ( t1.\"70\" > -10.921171 ) AND ( t2.\"56\" > -0.196735 ) THEN -0.04064997694480502\n WHEN ( t2.\"47\" <= -2.800267 OR t2.\"47\" IS NULL ) AND ( t1.\"70\" > -10.921171 ) AND ( t2.\"56\" <= -0.196735 OR t2.\"56\" IS NULL ) THEN 0.08055952603795877\n WHEN ( t2.\"47\" <= -2.800267 OR t2.\"47\" IS NULL ) AND ( t1.\"70\" <= -10.921171 OR t1.\"70\" IS NULL ) AND ( t1.\"47\" > -2.832082 ) THEN 0.001103372480846563\n WHEN ( t2.\"47\" <= -2.800267 OR t2.\"47\" IS NULL ) AND ( t1.\"70\" <= -10.921171 OR t1.\"70\" IS NULL ) AND ( t1.\"47\" <= -2.832082 OR t1.\"47\" IS NULL ) THEN -0.009350666269049131\n ELSE NULL\n END\n) AS \"feature_1_9\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_1_10": { + "name": "feature_1_10", + "index": 9, + "target": "f_z", + "importance": 0.0034240333543826165, + "correlation": 0.033819621470744736, + "sql": "DROP TABLE IF EXISTS \"FEATURE_1_10\";\n\nCREATE TABLE \"FEATURE_1_10\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"62\" > -0.368193 ) AND ( t1.\"70\" > -10.721300 ) THEN -0.4784099826129085\n WHEN ( t2.\"62\" > -0.368193 ) AND ( t1.\"70\" <= -10.721300 OR t1.\"70\" IS NULL ) AND ( t1.\"105\" > 47.969900 ) THEN 0.2833341953552129\n WHEN ( t2.\"62\" > -0.368193 ) AND ( t1.\"70\" <= -10.721300 OR t1.\"70\" IS NULL ) AND ( t1.\"105\" <= 47.969900 OR t1.\"105\" IS NULL ) THEN 0.4665567033634647\n WHEN ( t2.\"62\" <= -0.368193 OR t2.\"62\" IS NULL ) AND ( t2.\"59\" > 0.082796 ) AND ( t1.\"50\" > -0.200873 ) THEN 0.1580185928586962\n WHEN ( t2.\"62\" <= -0.368193 OR t2.\"62\" IS NULL ) AND ( t2.\"59\" > 0.082796 ) AND ( t1.\"50\" <= -0.200873 OR t1.\"50\" IS NULL ) THEN 0.3412782956135706\n WHEN ( t2.\"62\" <= -0.368193 OR t2.\"62\" IS NULL ) AND ( t2.\"59\" <= 0.082796 OR t2.\"59\" IS NULL ) AND ( t1.\"61\" > 0.785967 ) THEN -0.1479425168574587\n WHEN ( t2.\"62\" <= -0.368193 OR t2.\"62\" IS NULL ) AND ( t2.\"59\" <= 0.082796 OR t2.\"59\" IS NULL ) AND ( t1.\"61\" <= 0.785967 OR t1.\"61\" IS NULL ) THEN -0.2781417819311907\n ELSE NULL\n END\n) AS \"feature_1_10\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_1": { + "name": "feature_2_1", + "index": 10, + "target": "f_z", + "importance": 0.0016349943258249407, + "correlation": -0.2774716399824775, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_1\";\n\nCREATE TABLE \"FEATURE_2_1\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" > 47.906231 ) AND ( t1.\"45\" > 0.125543 ) THEN -0.2318668822783862\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" > 47.906231 ) AND ( t1.\"45\" <= 0.125543 OR t1.\"45\" IS NULL ) THEN -0.1455892712890915\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" <= 47.906231 OR t1.\"102\" IS NULL ) AND ( t2.\"73\" > 5.873820 ) THEN -0.2594003933991689\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" <= 47.906231 OR t1.\"102\" IS NULL ) AND ( t2.\"73\" <= 5.873820 OR t2.\"73\" IS NULL ) THEN -0.05264786258289284\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"48\" > -0.819556 ) AND ( t1.\"58\" > 0.410033 ) THEN 0.2929721967917949\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"48\" > -0.819556 ) AND ( t1.\"58\" <= 0.410033 OR t1.\"58\" IS NULL ) THEN 0.1567503935267657\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"48\" <= -0.819556 OR t2.\"48\" IS NULL ) AND ( t2.\"70\" > -11.956943 ) THEN 0.0001268971464757567\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"48\" <= -0.819556 OR t2.\"48\" IS NULL ) AND ( t2.\"70\" <= -11.956943 OR t2.\"70\" IS NULL ) THEN -0.2431229670103236\n ELSE NULL\n END\n) AS \"feature_2_1\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_2": { + "name": "feature_2_2", + "index": 11, + "target": "f_z", + "importance": 0.0007957696272056493, + "correlation": -0.06395603799287236, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_2\";\n\nCREATE TABLE \"FEATURE_2_2\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" > 47.920308 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 14.500000 ) THEN -6.945192306193632\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" > 47.920308 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 14.500000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN -2.019482253180303\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" <= 47.920308 OR t1.\"102\" IS NULL ) AND ( t2.\"73\" > 5.875573 ) THEN -8.332204119691681\n WHEN ( t2.\"59\" > 0.082810 ) AND ( t1.\"102\" <= 47.920308 OR t1.\"102\" IS NULL ) AND ( t2.\"73\" <= 5.875573 OR t2.\"73\" IS NULL ) THEN -0.4939352112499948\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"70\" > -11.956257 ) AND ( t1.\"49\" > 0.080173 ) THEN 0.6849851329720464\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"70\" > -11.956257 ) AND ( t1.\"49\" <= 0.080173 OR t1.\"49\" IS NULL ) THEN 0.4553026922895601\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"70\" <= -11.956257 OR t2.\"70\" IS NULL ) AND ( t1.\"61\" > 0.786019 ) THEN -6.52656138340054\n WHEN ( t2.\"59\" <= 0.082810 OR t2.\"59\" IS NULL ) AND ( t2.\"70\" <= -11.956257 OR t2.\"70\" IS NULL ) AND ( t1.\"61\" <= 0.786019 OR t1.\"61\" IS NULL ) THEN -0.7163615497256907\n ELSE NULL\n END\n) AS \"feature_2_2\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_3": { + "name": "feature_2_3", + "index": 12, + "target": "f_z", + "importance": 0.005626550584027588, + "correlation": -0.14252359978639667, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_3\";\n\nCREATE TABLE \"FEATURE_2_3\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"48\" > -0.831784 ) AND ( t2.\"59\" > 0.082762 ) AND ( t1.\"56\" > -0.196904 ) THEN -0.04362019655250425\n WHEN ( t2.\"48\" > -0.831784 ) AND ( t2.\"59\" > 0.082762 ) AND ( t1.\"56\" <= -0.196904 OR t1.\"56\" IS NULL ) THEN -0.05096482346911084\n WHEN ( t2.\"48\" > -0.831784 ) AND ( t2.\"59\" <= 0.082762 OR t2.\"59\" IS NULL ) AND ( t1.\"54\" > -0.828313 ) THEN -0.1215620853717005\n WHEN ( t2.\"48\" > -0.831784 ) AND ( t2.\"59\" <= 0.082762 OR t2.\"59\" IS NULL ) AND ( t1.\"54\" <= -0.828313 OR t1.\"54\" IS NULL ) THEN -0.1909291121375636\n WHEN ( t2.\"48\" <= -0.831784 OR t2.\"48\" IS NULL ) AND ( t1.\"74\" > -2.046918 ) AND ( t1.\"56\" > -0.192450 ) THEN 0.02894401595574881\n WHEN ( t2.\"48\" <= -0.831784 OR t2.\"48\" IS NULL ) AND ( t1.\"74\" > -2.046918 ) AND ( t1.\"56\" <= -0.192450 OR t1.\"56\" IS NULL ) THEN 0.04395020162923342\n WHEN ( t2.\"48\" <= -0.831784 OR t2.\"48\" IS NULL ) AND ( t1.\"74\" <= -2.046918 OR t1.\"74\" IS NULL ) AND ( t2.\"46\" > -6.538086 ) THEN -0.05458934246971966\n WHEN ( t2.\"48\" <= -0.831784 OR t2.\"48\" IS NULL ) AND ( t1.\"74\" <= -2.046918 OR t1.\"74\" IS NULL ) AND ( t2.\"46\" <= -6.538086 OR t2.\"46\" IS NULL ) THEN 0.0752504504618209\n ELSE NULL\n END\n) AS \"feature_2_3\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_4": { + "name": "feature_2_4", + "index": 13, + "target": "f_z", + "importance": 0.0, + "correlation": -0.3221364514139735, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_4\";\n\nCREATE TABLE \"FEATURE_2_4\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"45\" > 0.134260 ) AND ( t1.\"102\" > 47.871625 ) AND ( t2.\"62\" > -0.368236 ) THEN -4.60308387882178\n WHEN ( t2.\"45\" > 0.134260 ) AND ( t1.\"102\" > 47.871625 ) AND ( t2.\"62\" <= -0.368236 OR t2.\"62\" IS NULL ) THEN -0.9707408083151586\n WHEN ( t2.\"45\" > 0.134260 ) AND ( t1.\"102\" <= 47.871625 OR t1.\"102\" IS NULL ) AND ( t1.\"47\" > -2.820200 ) THEN -2.171158120420423\n WHEN ( t2.\"45\" > 0.134260 ) AND ( t1.\"102\" <= 47.871625 OR t1.\"102\" IS NULL ) AND ( t1.\"47\" <= -2.820200 OR t1.\"47\" IS NULL ) THEN 0.006240398280335088\n WHEN ( t2.\"45\" <= 0.134260 OR t2.\"45\" IS NULL ) AND ( t1.\"74\" > -2.048389 ) AND ( t2.\"71\" > -18.443636 ) THEN -0.6531097570269573\n WHEN ( t2.\"45\" <= 0.134260 OR t2.\"45\" IS NULL ) AND ( t1.\"74\" > -2.048389 ) AND ( t2.\"71\" <= -18.443636 OR t2.\"71\" IS NULL ) THEN -0.004201490038152638\n WHEN ( t2.\"45\" <= 0.134260 OR t2.\"45\" IS NULL ) AND ( t1.\"74\" <= -2.048389 OR t1.\"74\" IS NULL ) AND ( t2.\"99\" > 48.063000 ) THEN -0.5659759948188662\n WHEN ( t2.\"45\" <= 0.134260 OR t2.\"45\" IS NULL ) AND ( t1.\"74\" <= -2.048389 OR t1.\"74\" IS NULL ) AND ( t2.\"99\" <= 48.063000 OR t2.\"99\" IS NULL ) THEN 0.163783353841621\n ELSE NULL\n END\n) AS \"feature_2_4\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_5": { + "name": "feature_2_5", + "index": 14, + "target": "f_z", + "importance": 0.0003367627016655705, + "correlation": 0.12127414337608308, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_5\";\n\nCREATE TABLE \"FEATURE_2_5\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"73\" > 5.884378 ) AND ( t1.\"48\" > -0.817425 ) THEN 0.702220148366297\n WHEN ( t2.\"73\" > 5.884378 ) AND ( t1.\"48\" <= -0.817425 OR t1.\"48\" IS NULL ) AND ( t2.\"73\" > 5.906900 ) THEN -0.5503395326152396\n WHEN ( t2.\"73\" > 5.884378 ) AND ( t1.\"48\" <= -0.817425 OR t1.\"48\" IS NULL ) AND ( t2.\"73\" <= 5.906900 OR t2.\"73\" IS NULL ) THEN -2.570892675780668\n WHEN ( t2.\"73\" <= 5.884378 OR t2.\"73\" IS NULL ) AND ( t2.\"104\" > 47.847562 ) AND ( t2.\"34\" > -0.327375 ) THEN 3.9589178461774\n WHEN ( t2.\"73\" <= 5.884378 OR t2.\"73\" IS NULL ) AND ( t2.\"104\" > 47.847562 ) AND ( t2.\"34\" <= -0.327375 OR t2.\"34\" IS NULL ) THEN -1.912009363898487\n WHEN ( t2.\"73\" <= 5.884378 OR t2.\"73\" IS NULL ) AND ( t2.\"104\" <= 47.847562 OR t2.\"104\" IS NULL ) AND ( t1.\"34\" > -0.327391 ) THEN 0.4624404696121512\n WHEN ( t2.\"73\" <= 5.884378 OR t2.\"73\" IS NULL ) AND ( t2.\"104\" <= 47.847562 OR t2.\"104\" IS NULL ) AND ( t1.\"34\" <= -0.327391 OR t1.\"34\" IS NULL ) THEN 0.2944829285444169\n ELSE NULL\n END\n) AS \"feature_2_5\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_6": { + "name": "feature_2_6", + "index": 15, + "target": "f_z", + "importance": 0.0007490118348771037, + "correlation": -0.20250282643257095, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_6\";\n\nCREATE TABLE \"FEATURE_2_6\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"71\" > -18.471297 ) AND ( t1.\"70\" > -10.711667 ) AND ( t2.\"34\" > -0.327367 ) THEN 0\n WHEN ( t2.\"71\" > -18.471297 ) AND ( t1.\"70\" > -10.711667 ) AND ( t2.\"34\" <= -0.327367 OR t2.\"34\" IS NULL ) THEN 0.00657289703704483\n WHEN ( t2.\"71\" > -18.471297 ) AND ( t1.\"70\" <= -10.711667 OR t1.\"70\" IS NULL ) AND ( t1.\"34\" > -0.327370 ) THEN -0.03871708884991241\n WHEN ( t2.\"71\" > -18.471297 ) AND ( t1.\"70\" <= -10.711667 OR t1.\"70\" IS NULL ) AND ( t1.\"34\" <= -0.327370 OR t1.\"34\" IS NULL ) THEN -0.05643325864424346\n WHEN ( t2.\"71\" <= -18.471297 OR t2.\"71\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 20.580645 ) AND ( t2.\"99\" > 48.065000 ) THEN 0.07846804672279144\n WHEN ( t2.\"71\" <= -18.471297 OR t2.\"71\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 20.580645 ) AND ( t2.\"99\" <= 48.065000 OR t2.\"99\" IS NULL ) THEN 0.02168650011746233\n WHEN ( t2.\"71\" <= -18.471297 OR t2.\"71\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 20.580645 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 4.615385 ) THEN 0.0008922831203886362\n WHEN ( t2.\"71\" <= -18.471297 OR t2.\"71\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 20.580645 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 4.615385 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN 0.03235358966238738\n ELSE NULL\n END\n) AS \"feature_2_6\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_7": { + "name": "feature_2_7", + "index": 16, + "target": "f_z", + "importance": 0.0018614812953337094, + "correlation": 0.18381819281653408, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_7\";\n\nCREATE TABLE \"FEATURE_2_7\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"62\" > -0.368232 ) AND ( t1.\"102\" > 47.909750 ) AND ( t1.\"74\" > -1.818836 ) THEN 2.547964298624135\n WHEN ( t2.\"62\" > -0.368232 ) AND ( t1.\"102\" > 47.909750 ) AND ( t1.\"74\" <= -1.818836 OR t1.\"74\" IS NULL ) THEN 2.154139656592504\n WHEN ( t2.\"62\" > -0.368232 ) AND ( t1.\"102\" <= 47.909750 OR t1.\"102\" IS NULL ) AND ( t2.\"71\" > -18.839931 ) THEN 2.330995962153637\n WHEN ( t2.\"62\" > -0.368232 ) AND ( t1.\"102\" <= 47.909750 OR t1.\"102\" IS NULL ) AND ( t2.\"71\" <= -18.839931 OR t2.\"71\" IS NULL ) THEN 7.126295138814549\n WHEN ( t2.\"62\" <= -0.368232 OR t2.\"62\" IS NULL ) AND ( t1.\"72\" > -3.546554 ) AND ( t1.\"50\" > -0.199326 ) THEN 0.1296113127961579\n WHEN ( t2.\"62\" <= -0.368232 OR t2.\"62\" IS NULL ) AND ( t1.\"72\" > -3.546554 ) AND ( t1.\"50\" <= -0.199326 OR t1.\"50\" IS NULL ) THEN -0.7644144168761881\n WHEN ( t2.\"62\" <= -0.368232 OR t2.\"62\" IS NULL ) AND ( t1.\"72\" <= -3.546554 OR t1.\"72\" IS NULL ) AND ( t1.\"69\" > -23.830500 ) THEN 0.8314471779499694\n WHEN ( t2.\"62\" <= -0.368232 OR t2.\"62\" IS NULL ) AND ( t1.\"72\" <= -3.546554 OR t1.\"72\" IS NULL ) AND ( t1.\"69\" <= -23.830500 OR t1.\"69\" IS NULL ) THEN -1.146828321834863\n ELSE NULL\n END\n) AS \"feature_2_7\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_8": { + "name": "feature_2_8", + "index": 17, + "target": "f_z", + "importance": 0.0, + "correlation": -0.02601423676513555, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_8\";\n\nCREATE TABLE \"FEATURE_2_8\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"71\" > -18.483000 ) AND ( t1.\"102\" > 47.894500 ) AND ( t2.\"69\" > -22.278000 ) THEN 0.03275915229618642\n WHEN ( t2.\"71\" > -18.483000 ) AND ( t1.\"102\" > 47.894500 ) AND ( t2.\"69\" <= -22.278000 OR t2.\"69\" IS NULL ) THEN -0.08649148542741598\n WHEN ( t2.\"71\" > -18.483000 ) AND ( t1.\"102\" <= 47.894500 OR t1.\"102\" IS NULL ) AND ( t2.\"106\" > 47.953286 ) THEN -0.0313938108302252\n WHEN ( t2.\"71\" > -18.483000 ) AND ( t1.\"102\" <= 47.894500 OR t1.\"102\" IS NULL ) AND ( t2.\"106\" <= 47.953286 OR t2.\"106\" IS NULL ) THEN -0.1235499632561526\n WHEN ( t2.\"71\" <= -18.483000 OR t2.\"71\" IS NULL ) AND ( t1.\"48\" > -0.826818 ) AND ( t1.\"46\" > -6.558556 ) THEN 0.02931174294054549\n WHEN ( t2.\"71\" <= -18.483000 OR t2.\"71\" IS NULL ) AND ( t1.\"48\" > -0.826818 ) AND ( t1.\"46\" <= -6.558556 OR t1.\"46\" IS NULL ) THEN 0.0210417598879912\n WHEN ( t2.\"71\" <= -18.483000 OR t2.\"71\" IS NULL ) AND ( t1.\"48\" <= -0.826818 OR t1.\"48\" IS NULL ) AND ( t1.\"35\" > 0.960448 ) THEN 0.02623824297141982\n WHEN ( t2.\"71\" <= -18.483000 OR t2.\"71\" IS NULL ) AND ( t1.\"48\" <= -0.826818 OR t1.\"48\" IS NULL ) AND ( t1.\"35\" <= 0.960448 OR t1.\"35\" IS NULL ) THEN 0.02020295732358912\n ELSE NULL\n END\n) AS \"feature_2_8\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_9": { + "name": "feature_2_9", + "index": 18, + "target": "f_z", + "importance": 0.0, + "correlation": 0.3208289312725694, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_9\";\n\nCREATE TABLE \"FEATURE_2_9\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"71\" > -18.916000 ) AND ( t2.\"45\" > 0.135630 ) AND ( t1.\"45\" > 0.125540 ) THEN -11.15822046251496\n WHEN ( t2.\"71\" > -18.916000 ) AND ( t2.\"45\" > 0.135630 ) AND ( t1.\"45\" <= 0.125540 OR t1.\"45\" IS NULL ) THEN -9.263017859192001\n WHEN ( t2.\"71\" > -18.916000 ) AND ( t2.\"45\" <= 0.135630 OR t2.\"45\" IS NULL ) AND ( t1.\"74\" > -2.040246 ) THEN -7.360898515991031\n WHEN ( t2.\"71\" > -18.916000 ) AND ( t2.\"45\" <= 0.135630 OR t2.\"45\" IS NULL ) AND ( t1.\"74\" <= -2.040246 OR t1.\"74\" IS NULL ) THEN -7.214195121871738\n WHEN ( t2.\"71\" <= -18.916000 OR t2.\"71\" IS NULL ) AND ( t1.\"69\" > -21.632250 ) THEN -15.81368819078077\n WHEN ( t2.\"71\" <= -18.916000 OR t2.\"71\" IS NULL ) AND ( t1.\"69\" <= -21.632250 OR t1.\"69\" IS NULL ) AND ( t1.\"103\" > 47.808000 ) THEN -6.928737595952627\n WHEN ( t2.\"71\" <= -18.916000 OR t2.\"71\" IS NULL ) AND ( t1.\"69\" <= -21.632250 OR t1.\"69\" IS NULL ) AND ( t1.\"103\" <= 47.808000 OR t1.\"103\" IS NULL ) THEN -12.74329604772415\n ELSE NULL\n END\n) AS \"feature_2_9\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_2_10": { + "name": "feature_2_10", + "index": 19, + "target": "f_z", + "importance": 0.0, + "correlation": -0.06381651987740676, + "sql": "DROP TABLE IF EXISTS \"FEATURE_2_10\";\n\nCREATE TABLE \"FEATURE_2_10\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"62\" > -0.368251 ) AND ( t1.\"69\" > -22.624111 ) AND ( t1.\"45\" > 0.124701 ) THEN -0.004262879607101091\n WHEN ( t2.\"62\" > -0.368251 ) AND ( t1.\"69\" > -22.624111 ) AND ( t1.\"45\" <= 0.124701 OR t1.\"45\" IS NULL ) THEN -0.000844832345422205\n WHEN ( t2.\"62\" > -0.368251 ) AND ( t1.\"69\" <= -22.624111 OR t1.\"69\" IS NULL ) AND ( t2.\"74\" > -2.100400 ) THEN 0.009680531344101354\n WHEN ( t2.\"62\" > -0.368251 ) AND ( t1.\"69\" <= -22.624111 OR t1.\"69\" IS NULL ) AND ( t2.\"74\" <= -2.100400 OR t2.\"74\" IS NULL ) THEN -0.07138489320008398\n WHEN ( t2.\"62\" <= -0.368251 OR t2.\"62\" IS NULL ) AND ( t1.\"48\" > -0.831150 ) AND ( t1.\"99\" > 48.039000 ) THEN -0.237591877750872\n WHEN ( t2.\"62\" <= -0.368251 OR t2.\"62\" IS NULL ) AND ( t1.\"48\" > -0.831150 ) AND ( t1.\"99\" <= 48.039000 OR t1.\"99\" IS NULL ) THEN -0.3069896397637957\n WHEN ( t2.\"62\" <= -0.368251 OR t2.\"62\" IS NULL ) AND ( t1.\"48\" <= -0.831150 OR t1.\"48\" IS NULL ) AND ( t1.\"102\" > 47.909667 ) THEN -0.06044999797757641\n WHEN ( t2.\"62\" <= -0.368251 OR t2.\"62\" IS NULL ) AND ( t1.\"48\" <= -0.831150 OR t1.\"48\" IS NULL ) AND ( t1.\"102\" <= 47.909667 OR t1.\"102\" IS NULL ) THEN -0.2190043845629301\n ELSE NULL\n END\n) AS \"feature_2_10\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_1": { + "name": "feature_3_1", + "index": 20, + "target": "f_z", + "importance": 0.010252239066124115, + "correlation": -0.2675013050508979, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_1\";\n\nCREATE TABLE \"FEATURE_3_1\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"101\" > 47.878789 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 1.812500 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 21.800000 ) THEN -0.03940476343241821\n WHEN ( t2.\"101\" > 47.878789 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 1.812500 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 21.800000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN -0.01775499564789309\n WHEN ( t2.\"101\" > 47.878789 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 1.812500 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"69\" > -22.433000 ) THEN -0.02963822716587652\n WHEN ( t2.\"101\" > 47.878789 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 1.812500 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"69\" <= -22.433000 OR t2.\"69\" IS NULL ) THEN -0.103022309169021\n WHEN ( t2.\"101\" <= 47.878789 OR t2.\"101\" IS NULL ) AND ( t1.\"50\" > -0.188026 ) AND ( t2.\"34\" > -0.327353 ) THEN 0.07815931049370037\n WHEN ( t2.\"101\" <= 47.878789 OR t2.\"101\" IS NULL ) AND ( t1.\"50\" > -0.188026 ) AND ( t2.\"34\" <= -0.327353 OR t2.\"34\" IS NULL ) THEN -0.008775810679980881\n WHEN ( t2.\"101\" <= 47.878789 OR t2.\"101\" IS NULL ) AND ( t1.\"50\" <= -0.188026 OR t1.\"50\" IS NULL ) AND ( t1.\"102\" > 47.893576 ) THEN -0.005320458663740055\n WHEN ( t2.\"101\" <= 47.878789 OR t2.\"101\" IS NULL ) AND ( t1.\"50\" <= -0.188026 OR t1.\"50\" IS NULL ) AND ( t1.\"102\" <= 47.893576 OR t1.\"102\" IS NULL ) THEN -0.002442014072961481\n ELSE NULL\n END\n) AS \"feature_3_1\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_2": { + "name": "feature_3_2", + "index": 21, + "target": "f_z", + "importance": 0.025580044689173166, + "correlation": 0.2257341357665184, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_2\";\n\nCREATE TABLE \"FEATURE_3_2\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"73\" > 5.830850 ) AND ( t1.\"46\" > -6.548807 ) AND ( t1.\"45\" > 0.106323 ) THEN 0.4430454211970608\n WHEN ( t2.\"73\" > 5.830850 ) AND ( t1.\"46\" > -6.548807 ) AND ( t1.\"45\" <= 0.106323 OR t1.\"45\" IS NULL ) THEN -0.02363464979241527\n WHEN ( t2.\"73\" > 5.830850 ) AND ( t1.\"46\" <= -6.548807 OR t1.\"46\" IS NULL ) AND ( t1.\"72\" > -3.568240 ) THEN 0.5310158886175986\n WHEN ( t2.\"73\" > 5.830850 ) AND ( t1.\"46\" <= -6.548807 OR t1.\"46\" IS NULL ) AND ( t1.\"72\" <= -3.568240 OR t1.\"72\" IS NULL ) THEN 0.7832620371050866\n WHEN ( t2.\"73\" <= 5.830850 OR t2.\"73\" IS NULL ) AND ( t1.\"70\" > -11.252500 ) AND ( t1.\"61\" > 0.785969 ) THEN -0.122719719380978\n WHEN ( t2.\"73\" <= 5.830850 OR t2.\"73\" IS NULL ) AND ( t1.\"70\" > -11.252500 ) AND ( t1.\"61\" <= 0.785969 OR t1.\"61\" IS NULL ) THEN -0.3159551881078791\n WHEN ( t2.\"73\" <= 5.830850 OR t2.\"73\" IS NULL ) AND ( t1.\"70\" <= -11.252500 OR t1.\"70\" IS NULL ) AND ( t1.\"55\" > 0.073041 ) THEN -0.8957126608509771\n WHEN ( t2.\"73\" <= 5.830850 OR t2.\"73\" IS NULL ) AND ( t1.\"70\" <= -11.252500 OR t1.\"70\" IS NULL ) AND ( t1.\"55\" <= 0.073041 OR t1.\"55\" IS NULL ) THEN -0.3818534495299555\n ELSE NULL\n END\n) AS \"feature_3_2\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_3": { + "name": "feature_3_3", + "index": 22, + "target": "f_z", + "importance": 0.021230517513186924, + "correlation": 0.08114953772712395, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_3\";\n\nCREATE TABLE \"FEATURE_3_3\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"rowid\" - t2.\"rowid\" > 0.805556 ) AND ( t1.\"45\" > 0.108951 ) AND ( t1.\"45\" > 0.136412 ) THEN -0.377111493159643\n WHEN ( t1.\"rowid\" - t2.\"rowid\" > 0.805556 ) AND ( t1.\"45\" > 0.108951 ) AND ( t1.\"45\" <= 0.136412 OR t1.\"45\" IS NULL ) THEN -0.1455184451002183\n WHEN ( t1.\"rowid\" - t2.\"rowid\" > 0.805556 ) AND ( t1.\"45\" <= 0.108951 OR t1.\"45\" IS NULL ) AND ( t2.\"46\" > -6.556855 ) THEN 0.3510122600053455\n WHEN ( t1.\"rowid\" - t2.\"rowid\" > 0.805556 ) AND ( t1.\"45\" <= 0.108951 OR t1.\"45\" IS NULL ) AND ( t2.\"46\" <= -6.556855 OR t2.\"46\" IS NULL ) THEN -3.772374366254396\n WHEN ( t1.\"rowid\" - t2.\"rowid\" <= 0.805556 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"50\" > -0.202180 ) AND ( t2.\"100\" > 1.002587 ) THEN -2.204329375894374\n WHEN ( t1.\"rowid\" - t2.\"rowid\" <= 0.805556 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"50\" > -0.202180 ) AND ( t2.\"100\" <= 1.002587 OR t2.\"100\" IS NULL ) THEN 0.1987867465785386\n WHEN ( t1.\"rowid\" - t2.\"rowid\" <= 0.805556 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"50\" <= -0.202180 OR t2.\"50\" IS NULL ) AND ( t2.\"34\" > -0.327377 ) THEN 2.38694352285977\n WHEN ( t1.\"rowid\" - t2.\"rowid\" <= 0.805556 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"50\" <= -0.202180 OR t2.\"50\" IS NULL ) AND ( t2.\"34\" <= -0.327377 OR t2.\"34\" IS NULL ) THEN 6.437014824428275\n ELSE NULL\n END\n) AS \"feature_3_3\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_4": { + "name": "feature_3_4", + "index": 23, + "target": "f_z", + "importance": 0.03707817742611508, + "correlation": -0.06601475170670838, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_4\";\n\nCREATE TABLE \"FEATURE_3_4\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"45\" > 0.108727 ) AND ( t1.\"50\" > -0.198527 ) AND ( t1.\"46\" > -6.533596 ) THEN -0.01425208650737743\n WHEN ( t1.\"45\" > 0.108727 ) AND ( t1.\"50\" > -0.198527 ) AND ( t1.\"46\" <= -6.533596 OR t1.\"46\" IS NULL ) THEN -0.005330600463848202\n WHEN ( t1.\"45\" > 0.108727 ) AND ( t1.\"50\" <= -0.198527 OR t1.\"50\" IS NULL ) AND ( t1.\"49\" > 0.066797 ) THEN -0.003346149091813029\n WHEN ( t1.\"45\" > 0.108727 ) AND ( t1.\"50\" <= -0.198527 OR t1.\"50\" IS NULL ) AND ( t1.\"49\" <= 0.066797 OR t1.\"49\" IS NULL ) THEN 0.0003561351130134754\n WHEN ( t1.\"45\" <= 0.108727 OR t1.\"45\" IS NULL ) AND ( t2.\"46\" > -6.556091 ) AND ( t1.\"47\" > -2.813000 ) THEN 0.008081417830507757\n WHEN ( t1.\"45\" <= 0.108727 OR t1.\"45\" IS NULL ) AND ( t2.\"46\" > -6.556091 ) AND ( t1.\"47\" <= -2.813000 OR t1.\"47\" IS NULL ) THEN 0.009165522557799377\n WHEN ( t1.\"45\" <= 0.108727 OR t1.\"45\" IS NULL ) AND ( t2.\"46\" <= -6.556091 OR t2.\"46\" IS NULL ) AND ( t2.\"106\" > 47.960667 ) THEN -0.07989461538740601\n WHEN ( t1.\"45\" <= 0.108727 OR t1.\"45\" IS NULL ) AND ( t2.\"46\" <= -6.556091 OR t2.\"46\" IS NULL ) AND ( t2.\"106\" <= 47.960667 OR t2.\"106\" IS NULL ) THEN -0.0647333683747499\n ELSE NULL\n END\n) AS \"feature_3_4\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_5": { + "name": "feature_3_5", + "index": 24, + "target": "f_z", + "importance": 0.11636539147906029, + "correlation": 0.11389062792498209, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_5\";\n\nCREATE TABLE \"FEATURE_3_5\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"35\" > 0.960449 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 21.368421 ) AND ( t1.\"74\" > -1.902667 ) THEN -0.04458562902797906\n WHEN ( t2.\"35\" > 0.960449 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 21.368421 ) AND ( t1.\"74\" <= -1.902667 OR t1.\"74\" IS NULL ) THEN -0.09499490858339382\n WHEN ( t2.\"35\" > 0.960449 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 21.368421 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"61\" > 0.785960 ) THEN 0.01228887871032297\n WHEN ( t2.\"35\" > 0.960449 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 21.368421 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"61\" <= 0.785960 OR t2.\"61\" IS NULL ) THEN -0.05842186793392415\n WHEN ( t2.\"35\" <= 0.960449 OR t2.\"35\" IS NULL ) AND ( t1.\"58\" > 0.410038 ) AND ( t2.\"47\" > -2.840400 ) THEN 0.01399763733644909\n WHEN ( t2.\"35\" <= 0.960449 OR t2.\"35\" IS NULL ) AND ( t1.\"58\" > 0.410038 ) AND ( t2.\"47\" <= -2.840400 OR t2.\"47\" IS NULL ) THEN -0.04273524190629963\n WHEN ( t2.\"35\" <= 0.960449 OR t2.\"35\" IS NULL ) AND ( t1.\"58\" <= 0.410038 OR t1.\"58\" IS NULL ) AND ( t1.\"58\" > 0.410010 ) THEN 0.007340558277413698\n WHEN ( t2.\"35\" <= 0.960449 OR t2.\"35\" IS NULL ) AND ( t1.\"58\" <= 0.410038 OR t1.\"58\" IS NULL ) AND ( t1.\"58\" <= 0.410010 OR t1.\"58\" IS NULL ) THEN 0.01473588974966231\n ELSE NULL\n END\n) AS \"feature_3_5\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_6": { + "name": "feature_3_6", + "index": 25, + "target": "f_z", + "importance": 0.004014995092281097, + "correlation": 0.0, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_6\";\n\nCREATE TABLE \"FEATURE_3_6\" AS\nSELECT AVG( \n CASE\n WHEN ( t1.\"49\" > 0.080168 ) AND ( t2.\"33\" > 3.409780 ) AND ( t2.\"34\" > -0.327362 ) THEN 0\n WHEN ( t1.\"49\" > 0.080168 ) AND ( t2.\"33\" > 3.409780 ) AND ( t2.\"34\" <= -0.327362 OR t2.\"34\" IS NULL ) THEN 6.127002974743665e-16\n WHEN ( t1.\"49\" > 0.080168 ) AND ( t2.\"33\" <= 3.409780 OR t2.\"33\" IS NULL ) THEN 0\n WHEN ( t1.\"49\" <= 0.080168 OR t1.\"49\" IS NULL ) AND ( t2.\"59\" > 0.082755 ) AND ( t1.\"105\" > 47.954919 ) THEN -0.3685292971362769\n WHEN ( t1.\"49\" <= 0.080168 OR t1.\"49\" IS NULL ) AND ( t2.\"59\" > 0.082755 ) AND ( t1.\"105\" <= 47.954919 OR t1.\"105\" IS NULL ) THEN -0.2823849777721872\n WHEN ( t1.\"49\" <= 0.080168 OR t1.\"49\" IS NULL ) AND ( t2.\"59\" <= 0.082755 OR t2.\"59\" IS NULL ) AND ( t1.\"105\" > 47.974500 ) THEN 4.839888254247237\n WHEN ( t1.\"49\" <= 0.080168 OR t1.\"49\" IS NULL ) AND ( t2.\"59\" <= 0.082755 OR t2.\"59\" IS NULL ) AND ( t1.\"105\" <= 47.974500 OR t1.\"105\" IS NULL ) THEN 1.206188613138121\n ELSE NULL\n END\n) AS \"feature_3_6\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_7": { + "name": "feature_3_7", + "index": 26, + "target": "f_z", + "importance": 0.025520684104264675, + "correlation": -0.005931383780677152, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_7\";\n\nCREATE TABLE \"FEATURE_3_7\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"49\" > 0.065095 ) AND ( t1.\"105\" > 47.984647 ) AND ( t2.\"58\" > 0.410018 ) THEN -3.314713331357028\n WHEN ( t2.\"49\" > 0.065095 ) AND ( t1.\"105\" > 47.984647 ) AND ( t2.\"58\" <= 0.410018 OR t2.\"58\" IS NULL ) THEN 2.852190130459617\n WHEN ( t2.\"49\" > 0.065095 ) AND ( t1.\"105\" <= 47.984647 OR t1.\"105\" IS NULL ) AND ( t1.\"72\" > -3.509400 ) THEN -0.4719898868736596\n WHEN ( t2.\"49\" > 0.065095 ) AND ( t1.\"105\" <= 47.984647 OR t1.\"105\" IS NULL ) AND ( t1.\"72\" <= -3.509400 OR t1.\"72\" IS NULL ) THEN -0.5623774451300262\n WHEN ( t2.\"49\" <= 0.065095 OR t2.\"49\" IS NULL ) AND ( t1.\"59\" > 0.082767 ) AND ( t1.\"62\" > -0.368232 ) THEN 0.3320404931320144\n WHEN ( t2.\"49\" <= 0.065095 OR t2.\"49\" IS NULL ) AND ( t1.\"59\" > 0.082767 ) AND ( t1.\"62\" <= -0.368232 OR t1.\"62\" IS NULL ) THEN -0.1553874238856289\n WHEN ( t2.\"49\" <= 0.065095 OR t2.\"49\" IS NULL ) AND ( t1.\"59\" <= 0.082767 OR t1.\"59\" IS NULL ) AND ( t1.\"56\" > -0.194443 ) THEN -0.6305887894920787\n WHEN ( t2.\"49\" <= 0.065095 OR t2.\"49\" IS NULL ) AND ( t1.\"59\" <= 0.082767 OR t1.\"59\" IS NULL ) AND ( t1.\"56\" <= -0.194443 OR t1.\"56\" IS NULL ) THEN 0.01799132507879832\n ELSE NULL\n END\n) AS \"feature_3_7\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_8": { + "name": "feature_3_8", + "index": 27, + "target": "f_z", + "importance": 0.014991906241479157, + "correlation": -0.2593295016054341, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_8\";\n\nCREATE TABLE \"FEATURE_3_8\" AS\nSELECT SUM( \n CASE\n WHEN ( t1.\"72\" > -3.497537 ) AND ( t2.\"50\" > -0.182856 ) AND ( t1.\"34\" > -0.327370 ) THEN 0.08113808541782343\n WHEN ( t1.\"72\" > -3.497537 ) AND ( t2.\"50\" > -0.182856 ) AND ( t1.\"34\" <= -0.327370 OR t1.\"34\" IS NULL ) THEN 0.169067155793134\n WHEN ( t1.\"72\" > -3.497537 ) AND ( t2.\"50\" <= -0.182856 OR t2.\"50\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 9.666667 ) THEN 0.01546684267305956\n WHEN ( t1.\"72\" > -3.497537 ) AND ( t2.\"50\" <= -0.182856 OR t2.\"50\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 9.666667 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) THEN -0.0443967656243503\n WHEN ( t1.\"72\" <= -3.497537 OR t1.\"72\" IS NULL ) AND ( t1.\"49\" > 0.080112 ) THEN 0.007020630129497764\n WHEN ( t1.\"72\" <= -3.497537 OR t1.\"72\" IS NULL ) AND ( t1.\"49\" <= 0.080112 OR t1.\"49\" IS NULL ) AND ( t1.\"102\" > 47.877774 ) THEN -0.004302303801536829\n WHEN ( t1.\"72\" <= -3.497537 OR t1.\"72\" IS NULL ) AND ( t1.\"49\" <= 0.080112 OR t1.\"49\" IS NULL ) AND ( t1.\"102\" <= 47.877774 OR t1.\"102\" IS NULL ) THEN -0.008520425770408095\n ELSE NULL\n END\n) AS \"feature_3_8\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_9": { + "name": "feature_3_9", + "index": 28, + "target": "f_z", + "importance": 0.23220006376811772, + "correlation": -0.3377163757951174, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_9\";\n\nCREATE TABLE \"FEATURE_3_9\" AS\nSELECT SUM( \n CASE\n WHEN ( t2.\"61\" > 0.786015 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 5.800000 ) AND ( t1.\"72\" > -3.524425 ) THEN -0.007197380506751566\n WHEN ( t2.\"61\" > 0.786015 ) AND ( t1.\"rowid\" - t2.\"rowid\" > 5.800000 ) AND ( t1.\"72\" <= -3.524425 OR t1.\"72\" IS NULL ) THEN 0.06330162649152829\n WHEN ( t2.\"61\" > 0.786015 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 5.800000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t1.\"36\" > -3.743633 ) THEN 0.08201536632983003\n WHEN ( t2.\"61\" > 0.786015 ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 5.800000 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t1.\"36\" <= -3.743633 OR t1.\"36\" IS NULL ) THEN 0.1883174967628144\n WHEN ( t2.\"61\" <= 0.786015 OR t2.\"61\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 3.222222 ) AND ( t2.\"34\" > -0.327401 ) THEN -0.0004313508755873078\n WHEN ( t2.\"61\" <= 0.786015 OR t2.\"61\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" > 3.222222 ) AND ( t2.\"34\" <= -0.327401 OR t2.\"34\" IS NULL ) THEN -0.07262801802349467\n WHEN ( t2.\"61\" <= 0.786015 OR t2.\"61\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 3.222222 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"62\" > -0.368206 ) THEN -0.07612202041514129\n WHEN ( t2.\"61\" <= 0.786015 OR t2.\"61\" IS NULL ) AND ( t1.\"rowid\" - t2.\"rowid\" <= 3.222222 OR t1.\"rowid\" IS NULL OR t2.\"rowid\" IS NULL ) AND ( t2.\"62\" <= -0.368206 OR t2.\"62\" IS NULL ) THEN -0.04515498941305046\n ELSE NULL\n END\n) AS \"feature_3_9\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "feature_3_10": { + "name": "feature_3_10", + "index": 29, + "target": "f_z", + "importance": 0.2885790026166939, + "correlation": -0.3041132204072044, + "sql": "DROP TABLE IF EXISTS \"FEATURE_3_10\";\n\nCREATE TABLE \"FEATURE_3_10\" AS\nSELECT AVG( \n CASE\n WHEN ( t2.\"70\" > -11.504889 ) AND ( t1.\"105\" > 47.984414 ) AND ( t2.\"62\" > -0.368225 ) THEN -0.78862546289221\n WHEN ( t2.\"70\" > -11.504889 ) AND ( t1.\"105\" > 47.984414 ) AND ( t2.\"62\" <= -0.368225 OR t2.\"62\" IS NULL ) THEN 3.007974367761902\n WHEN ( t2.\"70\" > -11.504889 ) AND ( t1.\"105\" <= 47.984414 OR t1.\"105\" IS NULL ) AND ( t2.\"102\" > 47.877556 ) THEN 0.1636613733512851\n WHEN ( t2.\"70\" > -11.504889 ) AND ( t1.\"105\" <= 47.984414 OR t1.\"105\" IS NULL ) AND ( t2.\"102\" <= 47.877556 OR t2.\"102\" IS NULL ) THEN -0.4377762817075044\n WHEN ( t2.\"70\" <= -11.504889 OR t2.\"70\" IS NULL ) AND ( t1.\"50\" > -0.189714 ) AND ( t1.\"101\" > 47.861571 ) THEN -0.2308239884441961\n WHEN ( t2.\"70\" <= -11.504889 OR t2.\"70\" IS NULL ) AND ( t1.\"50\" > -0.189714 ) AND ( t1.\"101\" <= 47.861571 OR t1.\"101\" IS NULL ) THEN -0.03547203198695523\n WHEN ( t2.\"70\" <= -11.504889 OR t2.\"70\" IS NULL ) AND ( t1.\"50\" <= -0.189714 OR t1.\"50\" IS NULL ) AND ( t1.\"74\" > -2.069711 ) THEN -0.4343204367621663\n WHEN ( t2.\"70\" <= -11.504889 OR t2.\"70\" IS NULL ) AND ( t1.\"50\" <= -0.189714 OR t1.\"50\" IS NULL ) AND ( t1.\"74\" <= -2.069711 OR t1.\"74\" IS NULL ) THEN -0.8186671977725004\n ELSE NULL\n END\n) AS \"feature_3_10\",\n t1.rowid AS rownum\nFROM \"POPULATION__STAGING_TABLE_1\" t1\nINNER JOIN \"FULL__STAGING_TABLE_2\" t2\nON 1 = 1\nWHERE t2.\"rowid\" <= t1.\"rowid\"\nAND ( t2.\"rowid__30_000000\" > t1.\"rowid\" OR t2.\"rowid__30_000000\" IS NULL )\nGROUP BY t1.rowid;" + }, + "3": { + "name": "3", + "index": 30, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "4": { + "name": "4", + "index": 31, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "5": { + "name": "5", + "index": 32, + "target": "f_z", + "importance": 0.0, + "correlation": -1.382489889471376e-6, + "sql": "" + }, + "6": { + "name": "6", + "index": 33, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "7": { + "name": "7", + "index": 34, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "8": { + "name": "8", + "index": 35, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "9": { + "name": "9", + "index": 36, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "10": { + "name": "10", + "index": 37, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "11": { + "name": "11", + "index": 38, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "12": { + "name": "12", + "index": 39, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "13": { + "name": "13", + "index": 40, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "14": { + "name": "14", + "index": 41, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "15": { + "name": "15", + "index": 42, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "16": { + "name": "16", + "index": 43, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "17": { + "name": "17", + "index": 44, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "18": { + "name": "18", + "index": 45, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "19": { + "name": "19", + "index": 46, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "20": { + "name": "20", + "index": 47, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "21": { + "name": "21", + "index": 48, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "22": { + "name": "22", + "index": 49, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "23": { + "name": "23", + "index": 50, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "24": { + "name": "24", + "index": 51, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "25": { + "name": "25", + "index": 52, + "target": "f_z", + "importance": 0.0, + "correlation": -3.278862669662988e-6, + "sql": "" + }, + "26": { + "name": "26", + "index": 53, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "27": { + "name": "27", + "index": 54, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "28": { + "name": "28", + "index": 55, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "29": { + "name": "29", + "index": 56, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "30": { + "name": "30", + "index": 57, + "target": "f_z", + "importance": 0.0, + "correlation": 3.278862669662988e-6, + "sql": "" + }, + "31": { + "name": "31", + "index": 58, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "32": { + "name": "32", + "index": 59, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "33": { + "name": "33", + "index": 60, + "target": "f_z", + "importance": 0.0, + "correlation": 0.10333490709652607, + "sql": "" + }, + "34": { + "name": "34", + "index": 61, + "target": "f_z", + "importance": 0.0017764554935254314, + "correlation": 0.21158119157893, + "sql": "" + }, + "35": { + "name": "35", + "index": 62, + "target": "f_z", + "importance": 0.003749365432038104, + "correlation": 0.041968907373066106, + "sql": "" + }, + "36": { + "name": "36", + "index": 63, + "target": "f_z", + "importance": 0.0007220057175491647, + "correlation": 0.0, + "sql": "" + }, + "37": { + "name": "37", + "index": 64, + "target": "f_z", + "importance": 0.0019652122880601457, + "correlation": -0.08076780790499132, + "sql": "" + }, + "38": { + "name": "38", + "index": 65, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "39": { + "name": "39", + "index": 66, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "40": { + "name": "40", + "index": 67, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "41": { + "name": "41", + "index": 68, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "42": { + "name": "42", + "index": 69, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "43": { + "name": "43", + "index": 70, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "44": { + "name": "44", + "index": 71, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "45": { + "name": "45", + "index": 72, + "target": "f_z", + "importance": 0.00363879256728037, + "correlation": -0.03320616834193202, + "sql": "" + }, + "46": { + "name": "46", + "index": 73, + "target": "f_z", + "importance": 0.005215904857579942, + "correlation": -0.1586854918157925, + "sql": "" + }, + "47": { + "name": "47", + "index": 74, + "target": "f_z", + "importance": 0.002022181412604222, + "correlation": -0.30124511827058786, + "sql": "" + }, + "48": { + "name": "48", + "index": 75, + "target": "f_z", + "importance": 0.0007286132052911557, + "correlation": 0.12191182433847932, + "sql": "" + }, + "49": { + "name": "49", + "index": 76, + "target": "f_z", + "importance": 0.003548969201845473, + "correlation": -0.2716287047637844, + "sql": "" + }, + "50": { + "name": "50", + "index": 77, + "target": "f_z", + "importance": 0.006631195152056829, + "correlation": 0.27366335994882796, + "sql": "" + }, + "51": { + "name": "51", + "index": 78, + "target": "f_z", + "importance": 0.0, + "correlation": -1.2880589046100696e-6, + "sql": "" + }, + "52": { + "name": "52", + "index": 79, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "53": { + "name": "53", + "index": 80, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "54": { + "name": "54", + "index": 81, + "target": "f_z", + "importance": 0.0, + "correlation": -0.05651705003034438, + "sql": "" + }, + "55": { + "name": "55", + "index": 82, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "56": { + "name": "56", + "index": 83, + "target": "f_z", + "importance": 0.00033694003660981385, + "correlation": 0.16624735361549947, + "sql": "" + }, + "57": { + "name": "57", + "index": 84, + "target": "f_z", + "importance": 0.0050481281057388324, + "correlation": 0.04035648904864346, + "sql": "" + }, + "58": { + "name": "58", + "index": 85, + "target": "f_z", + "importance": 0.0042944587795117044, + "correlation": -0.07517358710275096, + "sql": "" + }, + "59": { + "name": "59", + "index": 86, + "target": "f_z", + "importance": 0.0, + "correlation": -0.18544557941562184, + "sql": "" + }, + "60": { + "name": "60", + "index": 87, + "target": "f_z", + "importance": 0.005426599876850108, + "correlation": 0.015081961979026184, + "sql": "" + }, + "61": { + "name": "61", + "index": 88, + "target": "f_z", + "importance": 0.0, + "correlation": 0.12340849262878426, + "sql": "" + }, + "62": { + "name": "62", + "index": 89, + "target": "f_z", + "importance": 0.00017436811604673106, + "correlation": 0.15898559182989036, + "sql": "" + }, + "63": { + "name": "63", + "index": 90, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "64": { + "name": "64", + "index": 91, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "65": { + "name": "65", + "index": 92, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "66": { + "name": "66", + "index": 93, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "67": { + "name": "67", + "index": 94, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "68": { + "name": "68", + "index": 95, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "69": { + "name": "69", + "index": 96, + "target": "f_z", + "importance": 0.02501175560342804, + "correlation": -0.22572961170734468, + "sql": "" + }, + "70": { + "name": "70", + "index": 97, + "target": "f_z", + "importance": 0.0005149583831875664, + "correlation": -0.10552987952838812, + "sql": "" + }, + "71": { + "name": "71", + "index": 98, + "target": "f_z", + "importance": 0.00017567020436918014, + "correlation": -0.2626094668677382, + "sql": "" + }, + "72": { + "name": "72", + "index": 99, + "target": "f_z", + "importance": 0.010395937288969492, + "correlation": 0.014936834718092753, + "sql": "" + }, + "73": { + "name": "73", + "index": 100, + "target": "f_z", + "importance": 0.005178159471072279, + "correlation": -0.2138332631368644, + "sql": "" + }, + "74": { + "name": "74", + "index": 101, + "target": "f_z", + "importance": 0.003069782871169309, + "correlation": -0.09208105373191237, + "sql": "" + }, + "75": { + "name": "75", + "index": 102, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "76": { + "name": "76", + "index": 103, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "77": { + "name": "77", + "index": 104, + "target": "f_z", + "importance": 0.0, + "correlation": -2.185908446441992e-6, + "sql": "" + }, + "78": { + "name": "78", + "index": 105, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "79": { + "name": "79", + "index": 106, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "80": { + "name": "80", + "index": 107, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "81": { + "name": "81", + "index": 108, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "82": { + "name": "82", + "index": 109, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "83": { + "name": "83", + "index": 110, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "84": { + "name": "84", + "index": 111, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "85": { + "name": "85", + "index": 112, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "86": { + "name": "86", + "index": 113, + "target": "f_z", + "importance": 0.0, + "correlation": 0.0, + "sql": "" + }, + "98": { + "name": "98", + "index": 114, + "target": "f_z", + "importance": 0.0, + "correlation": -0.24638135609933104, + "sql": "" + }, + "99": { + "name": "99", + "index": 115, + "target": "f_z", + "importance": 0.0, + "correlation": -0.15157855839166703, + "sql": "" + }, + "100": { + "name": "100", + "index": 116, + "target": "f_z", + "importance": 0.0005582932660861936, + "correlation": 0.003052424220571125, + "sql": "" + }, + "101": { + "name": "101", + "index": 117, + "target": "f_z", + "importance": 0.00192892193303215, + "correlation": 0.001547093858230727, + "sql": "" + }, + "102": { + "name": "102", + "index": 118, + "target": "f_z", + "importance": 0.002826980756031546, + "correlation": 0.3985399651824296, + "sql": "" + }, + "103": { + "name": "103", + "index": 119, + "target": "f_z", + "importance": 0.0018409273298231141, + "correlation": 0.32974339639751715, + "sql": "" + }, + "104": { + "name": "104", + "index": 120, + "target": "f_z", + "importance": 0.0, + "correlation": -0.22554401648517042, + "sql": "" + }, + "105": { + "name": "105", + "index": 121, + "target": "f_z", + "importance": 0.0, + "correlation": 0.25663407986709486, + "sql": "" + }, + "106": { + "name": "106", + "index": 122, + "target": "f_z", + "importance": 0.0, + "correlation": -0.0760457382486313, + "sql": "" + } } } \ No newline at end of file diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index db81e0e..d442c51 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -16,10 +16,13 @@ from getml import preprocessors as getml_preprocessor from getml.data import Container, DataFrame, Placeholder, Subset, View from getml.feature_learning.loss_functions import CROSSENTROPYLOSS +from getml.pipeline import Features as GetMLFeatures from getml.pipeline import Pipeline +from getml.pipeline.feature import Feature as GetMLFeature from numpy.typing import NDArray from getml_io.getml.feature_learning import FastProp +from getml_io.getml.features import Feature, Features from getml_io.getml.predictors import LinearRegression from getml_io.getml.preprocessors import CategoryTrimmer from getml_io.getml.project import Project @@ -401,6 +404,7 @@ def pipeline_information_empty( tags=[], targets=[], data_model=data_model_information_empty, + features={}, ) @@ -412,11 +416,26 @@ def ndarray() -> NDArray[np.float64]: ) +@pytest.fixture +def mock_features(mocker: pytest_mock.MockerFixture) -> GetMLFeatures: + features = mocker.MagicMock(GetMLFeatures) + feature = mocker.MagicMock(GetMLFeature) + feature.name = "test_feature" + feature.index = 0 + feature.target = "test_target" + feature.importance = 0.5 + feature.correlation = 0.1 + feature.sql = "SELECT * FROM test_table" + features.__iter__.return_value = iter([feature]) # pyright: ignore [reportAny] + return features + + @pytest.fixture def mock_pipeline( mocker: pytest_mock.MockerFixture, ndarray: NDArray[np.float64], mock_dataframe: DataFrame, + mock_features: GetMLFeatures, ) -> Pipeline: pipeline = mocker.Mock() pipeline.id = "mock_pipeline_id" @@ -451,6 +470,7 @@ def pipeline_transform(_: DataFrame | View | Subset, *, df_name: str) -> DataFra pipeline.share_selected_features = 0.0 pipeline.tags = ["test_tag"] pipeline.targets = ["test_target"] + pipeline.features = mock_features return pipeline @@ -565,6 +585,44 @@ def category_trimmer() -> CategoryTrimmer: ) +@pytest.fixture +def features() -> Features: + return { + "feature_1_1": Feature( + name="feature_1_1", + index=0, + target="test_target", + importance=0.01357680886229068, + correlation=-0.13123721580660005, + sql='DROP TABLE IF EXISTS "FEATURE_1_1";\n\nCREATE TABLE "FEATURE_1_1" AS\nSELECT AVG( \n CASE\n WHEN ( t2."50" > -0.203234 ) AND ( t2."69" > -21.775444 ) AND ( t1."48" > -0.835814 ) THEN 1.044429922263974\n WHEN ( t2."50" > -0.203234 ) AND ( t2."69" > -21.775444 ) AND ( t1."48" <= -0.835814 OR t1."48" IS NULL ) THEN 1.59523047916995\n WHEN ( t2."50" > -0.203234 ) AND ( t2."69" <= -21.775444 OR t2."69" IS NULL ) AND ( t2."46" > -6.542175 ) THEN 0.7399658893921874\n WHEN ( t2."50" > -0.203234 ) AND ( t2."69" <= -21.775444 OR t2."69" IS NULL ) AND ( t2."46" <= -6.542175 OR t2."46" IS NULL ) THEN -0.01913377577846733\n WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( t1."71" > -18.316600 ) AND ( t2."35" > 0.960430 ) THEN -5.809133775778446\n WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( t1."71" > -18.316600 ) AND ( t2."35" <= 0.960430 OR t2."35" IS NULL ) THEN 9.641016436804664\n WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( t1."71" <= -18.316600 OR t1."71" IS NULL ) AND ( t1."70" > -10.965400 ) THEN -2.051889230264734\n WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( t1."71" <= -18.316600 OR t1."71" IS NULL ) AND ( t1."70" <= -10.965400 OR t1."70" IS NULL ) THEN -0.8315943548443633\n ELSE NULL\n END\n) AS "feature_1_1",\n t1.rowid AS rownum\nFROM "POPULATION__STAGING_TABLE_1" t1\nINNER JOIN "FULL__STAGING_TABLE_2" t2\nON 1 = 1\nWHERE t2."rowid" <= t1."rowid"\nAND ( t2."rowid__30_000000" > t1."rowid" OR t2."rowid__30_000000" IS NULL )\nGROUP BY t1.rowid;', # noqa: E501 + ), + "3": Feature( + name="3", + index=1, + target="test_target", + importance=0.0, + correlation=0.0, + sql="", + ), + "column_01": Feature( + name="column_01", + index=2, + target="test_target", + importance=1.144393770273378e-6, + correlation=-0.09593210355580734, + sql="", + ), + "duration": Feature( + name="duration", + index=3, + target="test_target", + importance=0.0005039782195063603, + correlation=-0.0271918442877901, + sql="", + ), + } + + @pytest.fixture def pipeline_information( # noqa: PLR0913 dataframe_information_test: DataFrameInformation, @@ -577,6 +635,7 @@ def pipeline_information( # noqa: PLR0913 category_trimmer: CategoryTrimmer, predictions_path: Path, feature_sets_path: Path, + features: Features, ) -> PipelineInformation: return PipelineInformation( id="pipeline_id", @@ -620,6 +679,7 @@ def pipeline_information( # noqa: PLR0913 tags=["test_tag"], targets=["test_target"], data_model=data_model_information, + features=features, ) diff --git a/tests/unit/metadata/test_pipeline_information.py b/tests/unit/metadata/test_pipeline_information.py index a3c713a..e7afdd0 100644 --- a/tests/unit/metadata/test_pipeline_information.py +++ b/tests/unit/metadata/test_pipeline_information.py @@ -57,6 +57,7 @@ def _get_expected_serialized_empty_pipeline_information() -> PipelineInformation "share_selected_features": 0.0, "tags": [], "targets": [], + "features": {}, } @@ -269,4 +270,78 @@ def _get_expected_serialized_pipeline_information() -> PipelineInformationType: "targets": [ "test_target", ], + "features": { + "3": { + "correlation": 0.0, + "importance": 0.0, + "index": 1, + "name": "3", + "sql": "", + "target": "test_target", + }, + "column_01": { + "correlation": -0.09593210355580734, + "importance": 1.144393770273378e-06, + "index": 2, + "name": "column_01", + "sql": "", + "target": "test_target", + }, + "duration": { + "correlation": -0.0271918442877901, + "importance": 0.0005039782195063603, + "index": 3, + "name": "duration", + "sql": "", + "target": "test_target", + }, + "feature_1_1": { + "correlation": -0.13123721580660005, + "importance": 0.01357680886229068, + "index": 0, + "name": "feature_1_1", + "sql": ( + 'DROP TABLE IF EXISTS "FEATURE_1_1";\n' + "\n" + 'CREATE TABLE "FEATURE_1_1" AS\n' + "SELECT AVG( \n" + " CASE\n" + ' WHEN ( t2."50" > -0.203234 ) AND ( t2."69" > -21.775444 ) ' + 'AND ( t1."48" > -0.835814 ) THEN 1.044429922263974\n' + ' WHEN ( t2."50" > -0.203234 ) AND ( t2."69" > -21.775444 ) ' + 'AND ( t1."48" <= -0.835814 OR t1."48" IS NULL ) THEN ' + "1.59523047916995\n" + ' WHEN ( t2."50" > -0.203234 ) AND ( t2."69" <= -21.775444 ' + 'OR t2."69" IS NULL ) AND ( t2."46" > -6.542175 ) THEN ' + "0.7399658893921874\n" + ' WHEN ( t2."50" > -0.203234 ) AND ( t2."69" <= -21.775444 ' + 'OR t2."69" IS NULL ) AND ( t2."46" <= -6.542175 OR t2."46" IS ' + "NULL ) THEN -0.01913377577846733\n" + ' WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( ' + 't1."71" > -18.316600 ) AND ( t2."35" > 0.960430 ) THEN ' + "-5.809133775778446\n" + ' WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( ' + 't1."71" > -18.316600 ) AND ( t2."35" <= 0.960430 OR t2."35" IS ' + "NULL ) THEN 9.641016436804664\n" + ' WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( ' + 't1."71" <= -18.316600 OR t1."71" IS NULL ) AND ( t1."70" > ' + "-10.965400 ) THEN -2.051889230264734\n" + ' WHEN ( t2."50" <= -0.203234 OR t2."50" IS NULL ) AND ( ' + 't1."71" <= -18.316600 OR t1."71" IS NULL ) AND ( t1."70" <= ' + '-10.965400 OR t1."70" IS NULL ) THEN -0.8315943548443633\n' + " ELSE NULL\n" + " END\n" + ') AS "feature_1_1",\n' + " t1.rowid AS rownum\n" + 'FROM "POPULATION__STAGING_TABLE_1" t1\n' + 'INNER JOIN "FULL__STAGING_TABLE_2" t2\n' + "ON 1 = 1\n" + 'WHERE t2."rowid" <= t1."rowid"\n' + 'AND ( t2."rowid__30_000000" > t1."rowid" OR t2."rowid__30_000000" ' + "IS NULL )\n" + "GROUP BY t1.rowid;" + ), + "target": "test_target", + }, + }, } diff --git a/tests/unit/serialize/test_pipeline.py b/tests/unit/serialize/test_pipeline.py index d30b45d..a6ada09 100644 --- a/tests/unit/serialize/test_pipeline.py +++ b/tests/unit/serialize/test_pipeline.py @@ -5,6 +5,7 @@ from getml import predictors as getml_predictor from getml import preprocessors as getml_preprocessor from getml.data import Container, DataFrame +from getml.pipeline import Features as GetMLFeatures from getml.pipeline import Pipeline from getml_io.getml.feature_learning import ( @@ -38,6 +39,7 @@ from getml_io.serialize.pipeline import ( serialize_feature_learner, serialize_feature_sets, + serialize_features, serialize_pipeline, serialize_predictions, serialize_predictor, @@ -316,3 +318,16 @@ def test_serialize_preprocessor( # Then assert isinstance(serialized_preprocessor, expected_result_type) + + +@pytest.mark.unit +def test_serialize_features(mock_features: GetMLFeatures) -> None: + # Given + # When + features = serialize_features(mock_features) + + # Then + assert len(features) == 1 + feature = features["test_feature"] + assert feature.name == "test_feature" + assert feature.index == 0 diff --git a/tests/unit/serialize/test_pipeline_information.py b/tests/unit/serialize/test_pipeline_information.py index 7496797..1e40273 100644 --- a/tests/unit/serialize/test_pipeline_information.py +++ b/tests/unit/serialize/test_pipeline_information.py @@ -75,6 +75,7 @@ def _get_expected_pipeline_information() -> PipelineInformationType: "share_selected_features": 0.0, "tags": [], "targets": [], + "features": {}, } diff --git a/tests/unit/types.py b/tests/unit/types.py index 1bb5cc0..d2f9001 100644 --- a/tests/unit/types.py +++ b/tests/unit/types.py @@ -39,6 +39,8 @@ FeatureSetType = Mapping[str, Mapping[str, str | Path | ColumnProfileType]] FeatureLearnerType = Mapping[str, float | str | int | bool | Sequence[str]] PredictorType = Mapping[str, float | str] +FeatureType = Mapping[str, str | float | int] +FeaturesType = Mapping[str, FeatureType] PipelineInformationType = Mapping[ str, str @@ -50,5 +52,6 @@ | bool | LossFunction | float - | Sequence[str], + | Sequence[str] + | FeaturesType, ]