diff --git a/.gitignore b/.gitignore index d77e9c7..cdc857c 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,7 @@ docs/source/notebooks/*.yaml # Heavy data *.cgns !notebooks/ex_rotor37_pv.cgns +*artifact* ############################################################################### # .gitignore PATTERN FORMAT: diff --git a/examples/pipelines/config.yml b/examples/pipelines/config.yml new file mode 100644 index 0000000..90adff1 --- /dev/null +++ b/examples/pipelines/config.yml @@ -0,0 +1,57 @@ +global: + dataset_path: "PLAID-datasets/VKI-LS59" + save_path: "./artifacts" + train_split_name: "train" + test_split_name: "test" + +input_scalar_scaler: + type: "MinMaxScaler" + scalar_names: + - angle_in + - mach_out + +output_scalar_scaler: + type: "MinMaxScaler" + scalar_names: + - Q + - power + - Pr + - Tr + - eth_is + - angle_out + +pca_nodes: + base_name: Base_2_2 + field_name: nodes + n_components: 3 + +pca_mach: + base_name: Base_2_2 + field_name: mach + n_components: 5 + +pca_nut: + base_name: Base_2_2 + field_name: nut + n_components: 8 + +regressor_mach: + type: "GaussianProcessRegressor" + options: + kernel: Matern + kernel_options: + nu: 2.5 + optim: fmin_l_bfgs_b + num_restarts: 2 + anisotropic: True + random_state: 42 + show_warnings: False + input: + scalar_names: + - angle_in + - mach_out + vector_names: + - reduced_nodes + output: + vector_names: + - reduced_mach \ No newline at end of file diff --git a/examples/pipelines/ml_pipeline_nodes.py b/examples/pipelines/ml_pipeline_nodes.py new file mode 100644 index 0000000..d099fd1 --- /dev/null +++ b/examples/pipelines/ml_pipeline_nodes.py @@ -0,0 +1,280 @@ +# -*- coding: utf-8 -*- +# +# This file is subject to the terms and conditions defined in +# file 'LICENSE.txt', which is part of this source code package. +# +# + +import numpy as np +from sklearn.base import BaseEstimator, RegressorMixin, TransformerMixin +from sklearn.decomposition import PCA +from plaid.containers.dataset import Dataset +import copy + +from sklearn.preprocessing import StandardScaler, MinMaxScaler + +available_scalers = { + "StandardScaler": StandardScaler, + "MinMaxScaler": MinMaxScaler, +} + +class ScalarScalerNode(BaseEstimator, TransformerMixin): + + def __init__(self, params): + + self.params = params + + self.type_ = params['type'] + self.scalar_names = params['scalar_names'] + + assert self.type_ in available_scalers.keys(), "Scaler "+self.type_+" not available" + + self.model = None + + def get_scalars(self, dataset): + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + return dataset.get_scalars_to_tabular( + scalar_names = self.scalar_names, + as_nparray = True + ) + + def set_scalars(self, dataset, scalars): + for i in range(len(dataset)): + for j, sn in enumerate(self.scalar_names): + dataset[i].add_scalar(sn, scalars[i, j]) + + def fit(self, dataset, y=None): + self.model = available_scalers[self.type_]() + + scalars = self.get_scalars(dataset) + self.model.fit(scalars) + self.fitted_ = True + return self + + def transform(self, dataset): + scalars = self.get_scalars(dataset) + scaled_scalars = self.model.transform(scalars) + dataset_ = copy.deepcopy(dataset) + self.set_scalars(dataset_, scaled_scalars) + return dataset_ + + def inverse_transform(self, dataset): + scaled_scalars = self.get_scalars(dataset) + scalars = self.model.inverse_transform(scaled_scalars) + dataset_ = copy.deepcopy(dataset) + self.set_scalars(dataset_, scalars) + return dataset_ + + +class PCAEmbeddingNode(BaseEstimator, RegressorMixin, TransformerMixin): + + def __init__(self, params, n_components = None): + + self.params = params + + self.n_components = n_components if n_components is not None else params['n_components'] + + self.field_name = params['field_name'] + self.zone_name = params.get('zone_name') + self.base_name = params.get('base_name') + self.location = params.get('location', 'Vertex') + + self.model = None + + def get_all_fields(self, dataset): + all_fields = [] + for sample in dataset: + for time in sample.get_all_mesh_times(): + if self.field_name == "nodes": + field = sample.get_nodes(self.zone_name, self.base_name, time).flatten() + else: + field = sample.get_field(self.field_name, self.zone_name, self.base_name, self.location, time) + all_fields.append(field) + return np.array(all_fields) + + def set_reduced_fields(self, dataset, reduced_fields): + for i in range(len(dataset)): + for j in range(self.n_components): + dataset[i].add_scalar(f"reduced_{self.field_name}_{j}", reduced_fields[i, j]) + + def get_reduced_fields(self, dataset): + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + return dataset.get_scalars_to_tabular( + scalar_names = [f"reduced_{self.field_name}_{j}" for j in range(self.n_components)], + as_nparray = True + ) + + def set_fields(self, dataset, fields): # TODO: this will not work with multiple times step per sample + for i in range(len(dataset)): + for time in dataset[i].get_all_mesh_times(): + dataset[i].add_field(self.field_name, fields[i], self.zone_name, self.base_name, self.location, time) + + def fit(self, dataset, y=None): + self.model = PCA(n_components = self.n_components) + + all_fields = self.get_all_fields(dataset) + self.model.fit(all_fields) + self.fitted_ = True + return self + + def transform(self, dataset): + all_fields = self.get_all_fields(dataset) + reduced_fields = self.model.transform(all_fields) + dataset_ = copy.deepcopy(dataset) + self.set_reduced_fields(dataset_, reduced_fields) + return dataset_ + + def inverse_transform(self, dataset): + reduced_fields = self.get_reduced_fields(dataset) + fields = self.model.inverse_transform(reduced_fields) + dataset_ = copy.deepcopy(dataset) + self.set_fields(dataset_, fields) + return dataset_ + + +from sklearn.gaussian_process import GaussianProcessRegressor +from sklearn.gaussian_process.kernels import Matern, WhiteKernel, ConstantKernel +from sklearn.multioutput import MultiOutputRegressor + +available_kernel_classes = { + "Matern":Matern +} + +class GPRegressorNode(BaseEstimator, RegressorMixin, TransformerMixin): + + def __init__(self, params): + + self.params = params + + self.type_ = params['type'] + self.input = params['input'] + self.output = params['output'] + self.options = params['options'] + + + assert self.type_ == "GaussianProcessRegressor" + assert self.options['kernel'] in available_kernel_classes.keys(), "scikit-learn kernel "+self.options['kernel']+" not available" + + self.model = None + + + def get_scalars(self, dataset): + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + return dataset.get_scalars_to_tabular( + scalar_names = self.input_names, + as_nparray = True + ) + + def fit(self, dataset, y=None): + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + all_available_scalar = dataset.get_scalar_names() + + self.input_names = [] + if "scalar_names" in self.input: + self.input_names += self.input["scalar_names"] + if "vector_names" in self.input: + for vn in self.input["vector_names"]: + self.input_names += [s for s in all_available_scalar if s.startswith(vn)] + + self.output_names = [] + if "scalar_names" in self.output: + self.output_names += self.output["scalar_names"] + if "vector_names" in self.output: + for vn in self.output["vector_names"]: + self.output_names += [s for s in all_available_scalar if s.startswith(vn)] + + kernel_class = available_kernel_classes[self.options['kernel']] + if self.options["anisotropic"]: + kernel = ConstantKernel() * kernel_class(length_scale=np.ones(len(self.input_names)), length_scale_bounds=(1e-8, 1e8), + **self.options["kernel_options"]) + WhiteKernel(noise_level_bounds=(1e-8, 1e8)) + else: + kernel = kernel_class(length_scale_bounds=(1e-8, 1e8), **self.options["kernel_options"]) \ + + WhiteKernel(noise_level_bounds=(1e-8, 1e8)) + + gpr = GaussianProcessRegressor( + kernel=kernel, + optimizer=self.options["optim"], + n_restarts_optimizer=self.options["num_restarts"], + random_state = self.options["random_state"]) + + self.model = MultiOutputRegressor(gpr) + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + X = dataset.get_scalars_to_tabular( + scalar_names = self.input_names, + as_nparray = True + ) + y = dataset.get_scalars_to_tabular( + scalar_names = self.output_names, + as_nparray = True + ) + self.model.fit(X, y) + + self.fitted_ = True + return self + + def predict(self, dataset): + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + X = dataset.get_scalars_to_tabular( + scalar_names = self.input_names, + as_nparray = True + ) + + pred= self.model.predict(X) + if len(self.output_names) == 1: + pred = pred.reshape((-1, 1)) + + dataset_ = copy.deepcopy(dataset) + for i in range(len(dataset)): + for j, sn in enumerate(self.output_names): + dataset_[i].add_scalar(sn, pred[i, j]) + + return dataset_ + + def transform(self, dataset): + return dataset + + def inverse_transform(self, dataset): + return dataset + + def score(self, dataset, dataset_ref): + if not dataset_ref: + # case where GirdSearchCV is called with only one argument search.fit(dataset) + dataset_ref = dataset + if isinstance(dataset, list): + dataset = Dataset.from_list_of_samples(dataset) + X = dataset.get_scalars_to_tabular( + scalar_names = self.input_names, + as_nparray = True + ) + if isinstance(dataset_ref, list): + dataset_ref = Dataset.from_list_of_samples(dataset_ref) + y = dataset_ref.get_scalars_to_tabular( + scalar_names = self.output_names, + as_nparray = True + ) + return self.model.score(X, y) + + +class DatasetTargetTransformerRegressor(BaseEstimator, RegressorMixin): + def __init__(self, regressor, transformer): + self.regressor = regressor + self.transformer = transformer + + def fit(self, dataset, y=None): + # Appliquer la transformation sur le dataset (modifie y dans les samples) + transformed_dataset = self.transformer.fit_transform(dataset) + + # Entraîner le régressseur sur le dataset transformé + self.regressor.fit(transformed_dataset) + return self + + def predict(self, dataset): + # Prédiction dans l’espace transformé (log(y) par ex.) + dataset_pred_transformed = self.regressor.predict(dataset) + return self.transformer.inverse_transform(dataset_pred_transformed) diff --git a/examples/pipelines/sklearn_pipeline.ipynb b/examples/pipelines/sklearn_pipeline.ipynb new file mode 100644 index 0000000..0ee437f --- /dev/null +++ b/examples/pipelines/sklearn_pipeline.ipynb @@ -0,0 +1,6109 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/data/ssa/users/d582428/envs/plaid-devenv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "\n", + "import os\n", + "import yaml\n", + "import time\n", + "\n", + "from datasets import load_dataset, load_from_disk\n", + "from plaid.bridges.huggingface_bridge import huggingface_dataset_to_plaid, huggingface_description_to_problem_definition\n", + "from sklearn.model_selection import GridSearchCV\n", + "from sklearn.pipeline import Pipeline\n", + "from sklearn.compose import ColumnTransformer, TransformedTargetRegressor\n", + "\n", + "from ml_pipeline_nodes import ScalarScalerNode, GPRegressorNode, PCAEmbeddingNode, DatasetTargetTransformerRegressor\n", + "from sklearn.utils import estimator_html_repr\n", + "\n", + "\n", + "import warnings\n", + "warnings.filterwarnings('ignore', module='sklearn')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading dataset from HuggingFace Hub took: 0.055 seconds\n", + "Converting huggingface dataset to plaid dataset...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 100/100 [00:00<00:00, 478.59it/s]\n" + ] + } + ], + "source": [ + "\n", + "with open(\"config.yml\") as f:\n", + " config = yaml.safe_load(f)\n", + "\n", + "global_params = config[\"global\"]\n", + "\n", + "\n", + "start = time.time()\n", + "# hf_dataset = load_dataset(global_params['dataset_path'], split=\"all_samples\")\n", + "hf_dataset = load_from_disk(global_params['dataset_path'])\n", + "print(f\"Loading dataset from HuggingFace Hub took: {time.time() - start:.2g} seconds\")\n", + "\n", + "prob_def = huggingface_description_to_problem_definition(hf_dataset.description)\n", + "\n", + "train_split = prob_def.get_split(global_params['train_split_name'])[:100]\n", + "dataset_train, _ = huggingface_dataset_to_plaid(hf_dataset, ids = train_split, processes_number = 24)#os.cpu_count())" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
ColumnTransformer(remainder='passthrough',\n",
+       "                  transformers=[('pca', PCA(n_components=8),\n",
+       "                                 [0, 1, 2, 3, 4, 5, 6, 7])])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "ColumnTransformer(remainder='passthrough',\n", + " transformers=[('pca', PCA(n_components=8),\n", + " [0, 1, 2, 3, 4, 5, 6, 7])])" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.decomposition import PCA\n", + "feats_to_reduce = list(range(8))\n", + "preprocessor = ColumnTransformer(\n", + " transformers=[\n", + " (\n", + " \"pca\",\n", + " PCA(n_components=8),\n", + " feats_to_reduce,\n", + " ),\n", + " ],\n", + " remainder=\"passthrough\",\n", + ")\n", + "preprocessor" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('input_scalar_scaler',\n",
+       "                 ScalarScalerNode(params={'scalar_names': ['angle_in',\n",
+       "                                                           'mach_out'],\n",
+       "                                          'type': 'MinMaxScaler'})),\n",
+       "                ('pca_nodes',\n",
+       "                 PCAEmbeddingNode(n_components=3,\n",
+       "                                  params={'base_name': 'Base_2_2',\n",
+       "                                          'field_name': 'nodes',\n",
+       "                                          'n_components': 3}))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('input_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['angle_in',\n", + " 'mach_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_nodes',\n", + " PCAEmbeddingNode(n_components=3,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'nodes',\n", + " 'n_components': 3}))])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "preprocessor = Pipeline([\n", + " ('input_scalar_scaler', ScalarScalerNode(params = config['input_scalar_scaler'])),\n", + " ('pca_nodes', PCAEmbeddingNode(params = config['pca_nodes'], n_components = config['pca_nodes']['n_components'])),\n", + "])\n", + "preprocessor" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('output_scalar_scaler',\n",
+       "                 ScalarScalerNode(params={'scalar_names': ['Q', 'power', 'Pr',\n",
+       "                                                           'Tr', 'eth_is',\n",
+       "                                                           'angle_out'],\n",
+       "                                          'type': 'MinMaxScaler'})),\n",
+       "                ('pca_mach',\n",
+       "                 PCAEmbeddingNode(n_components=5,\n",
+       "                                  params={'base_name': 'Base_2_2',\n",
+       "                                          'field_name': 'mach',\n",
+       "                                          'n_components': 5}))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('output_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['Q', 'power', 'Pr',\n", + " 'Tr', 'eth_is',\n", + " 'angle_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_mach',\n", + " PCAEmbeddingNode(n_components=5,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'mach',\n", + " 'n_components': 5}))])" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "postprocessor = Pipeline(\n", + " [\n", + " ('output_scalar_scaler', ScalarScalerNode(params = config['output_scalar_scaler'])),\n", + " ('pca_mach', PCAEmbeddingNode(params = config['pca_mach'], n_components = config['pca_mach']['n_components'])),\n", + " ]\n", + ")\n", + "postprocessor" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
DatasetTargetTransformerRegressor(regressor=GPRegressorNode(params={'input': {'scalar_names': ['angle_in',\n",
+       "                                                                                               'mach_out'],\n",
+       "                                                                              'vector_names': ['reduced_nodes']},\n",
+       "                                                                    'options': {'anisotropic': True,\n",
+       "                                                                                'kernel': 'Matern',\n",
+       "                                                                                'kernel_options': {'nu': 2.5},\n",
+       "                                                                                'num_restarts': 2,\n",
+       "                                                                                'optim': 'fmin_l_bfgs_b',\n",
+       "                                                                                'random_state': 42,\n",
+       "                                                                                'show_warnings': False},\n",
+       "                                                                    'output': {'vector_names': ['reduced_mach']},\n",
+       "                                                                    'type': 'GaussianProcessRegressor'}),\n",
+       "                                  transformer=Pipeline(steps=[('output_scalar_scaler',\n",
+       "                                                               ScalarScalerNode(params={'scalar_names': ['Q',\n",
+       "                                                                                                         'power',\n",
+       "                                                                                                         'Pr',\n",
+       "                                                                                                         'Tr',\n",
+       "                                                                                                         'eth_is',\n",
+       "                                                                                                         'angle_out'],\n",
+       "                                                                                        'type': 'MinMaxScaler'})),\n",
+       "                                                              ('pca_mach',\n",
+       "                                                               PCAEmbeddingNode(n_components=5,\n",
+       "                                                                                params={'base_name': 'Base_2_2',\n",
+       "                                                                                        'field_name': 'mach',\n",
+       "                                                                                        'n_components': 5}))]))
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "DatasetTargetTransformerRegressor(regressor=GPRegressorNode(params={'input': {'scalar_names': ['angle_in',\n", + " 'mach_out'],\n", + " 'vector_names': ['reduced_nodes']},\n", + " 'options': {'anisotropic': True,\n", + " 'kernel': 'Matern',\n", + " 'kernel_options': {'nu': 2.5},\n", + " 'num_restarts': 2,\n", + " 'optim': 'fmin_l_bfgs_b',\n", + " 'random_state': 42,\n", + " 'show_warnings': False},\n", + " 'output': {'vector_names': ['reduced_mach']},\n", + " 'type': 'GaussianProcessRegressor'}),\n", + " transformer=Pipeline(steps=[('output_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['Q',\n", + " 'power',\n", + " 'Pr',\n", + " 'Tr',\n", + " 'eth_is',\n", + " 'angle_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_mach',\n", + " PCAEmbeddingNode(n_components=5,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'mach',\n", + " 'n_components': 5}))]))" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "regressor = DatasetTargetTransformerRegressor(\n", + " regressor=GPRegressorNode(params = config['regressor_mach']),\n", + " transformer=postprocessor,\n", + ")\n", + "regressor" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('preprocessor',\n",
+       "                 Pipeline(steps=[('input_scalar_scaler',\n",
+       "                                  ScalarScalerNode(params={'scalar_names': ['angle_in',\n",
+       "                                                                            'mach_out'],\n",
+       "                                                           'type': 'MinMaxScaler'})),\n",
+       "                                 ('pca_nodes',\n",
+       "                                  PCAEmbeddingNode(n_components=3,\n",
+       "                                                   params={'base_name': 'Base_2_2',\n",
+       "                                                           'field_name': 'nodes',\n",
+       "                                                           'n_components': 3}))])),\n",
+       "                ('regressor',\n",
+       "                 DatasetTargetTransformerRegressor(regressor=GPRegressorNo...\n",
+       "                                                                                     'output': {'vector_names': ['reduced_mach']},\n",
+       "                                                                                     'type': 'GaussianProcessRegressor'}),\n",
+       "                                                   transformer=Pipeline(steps=[('output_scalar_scaler',\n",
+       "                                                                                ScalarScalerNode(params={'scalar_names': ['Q',\n",
+       "                                                                                                                          'power',\n",
+       "                                                                                                                          'Pr',\n",
+       "                                                                                                                          'Tr',\n",
+       "                                                                                                                          'eth_is',\n",
+       "                                                                                                                          'angle_out'],\n",
+       "                                                                                                         'type': 'MinMaxScaler'})),\n",
+       "                                                                               ('pca_mach',\n",
+       "                                                                                PCAEmbeddingNode(n_components=5,\n",
+       "                                                                                                 params={'base_name': 'Base_2_2',\n",
+       "                                                                                                         'field_name': 'mach',\n",
+       "                                                                                                         'n_components': 5}))])))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('preprocessor',\n", + " Pipeline(steps=[('input_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['angle_in',\n", + " 'mach_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_nodes',\n", + " PCAEmbeddingNode(n_components=3,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'nodes',\n", + " 'n_components': 3}))])),\n", + " ('regressor',\n", + " DatasetTargetTransformerRegressor(regressor=GPRegressorNo...\n", + " 'output': {'vector_names': ['reduced_mach']},\n", + " 'type': 'GaussianProcessRegressor'}),\n", + " transformer=Pipeline(steps=[('output_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['Q',\n", + " 'power',\n", + " 'Pr',\n", + " 'Tr',\n", + " 'eth_is',\n", + " 'angle_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_mach',\n", + " PCAEmbeddingNode(n_components=5,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'mach',\n", + " 'n_components': 5}))])))])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipeline = Pipeline(\n", + " steps=[\n", + " (\"preprocessor\", preprocessor),\n", + " (\"regressor\", regressor),\n", + " ]\n", + ")\n", + "pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('preprocessor',\n",
+       "                 Pipeline(steps=[('input_scalar_scaler',\n",
+       "                                  ScalarScalerNode(params={'scalar_names': ['angle_in',\n",
+       "                                                                            'mach_out'],\n",
+       "                                                           'type': 'MinMaxScaler'})),\n",
+       "                                 ('pca_nodes',\n",
+       "                                  PCAEmbeddingNode(n_components=3,\n",
+       "                                                   params={'base_name': 'Base_2_2',\n",
+       "                                                           'field_name': 'nodes',\n",
+       "                                                           'n_components': 3}))])),\n",
+       "                ('regressor',\n",
+       "                 DatasetTargetTransformerRegressor(regressor=GPRegressorNo...\n",
+       "                                                                                     'output': {'vector_names': ['reduced_mach']},\n",
+       "                                                                                     'type': 'GaussianProcessRegressor'}),\n",
+       "                                                   transformer=Pipeline(steps=[('output_scalar_scaler',\n",
+       "                                                                                ScalarScalerNode(params={'scalar_names': ['Q',\n",
+       "                                                                                                                          'power',\n",
+       "                                                                                                                          'Pr',\n",
+       "                                                                                                                          'Tr',\n",
+       "                                                                                                                          'eth_is',\n",
+       "                                                                                                                          'angle_out'],\n",
+       "                                                                                                         'type': 'MinMaxScaler'})),\n",
+       "                                                                               ('pca_mach',\n",
+       "                                                                                PCAEmbeddingNode(n_components=5,\n",
+       "                                                                                                 params={'base_name': 'Base_2_2',\n",
+       "                                                                                                         'field_name': 'mach',\n",
+       "                                                                                                         'n_components': 5}))])))])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('preprocessor',\n", + " Pipeline(steps=[('input_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['angle_in',\n", + " 'mach_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_nodes',\n", + " PCAEmbeddingNode(n_components=3,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'nodes',\n", + " 'n_components': 3}))])),\n", + " ('regressor',\n", + " DatasetTargetTransformerRegressor(regressor=GPRegressorNo...\n", + " 'output': {'vector_names': ['reduced_mach']},\n", + " 'type': 'GaussianProcessRegressor'}),\n", + " transformer=Pipeline(steps=[('output_scalar_scaler',\n", + " ScalarScalerNode(params={'scalar_names': ['Q',\n", + " 'power',\n", + " 'Pr',\n", + " 'Tr',\n", + " 'eth_is',\n", + " 'angle_out'],\n", + " 'type': 'MinMaxScaler'})),\n", + " ('pca_mach',\n", + " PCAEmbeddingNode(n_components=5,\n", + " params={'base_name': 'Base_2_2',\n", + " 'field_name': 'mach',\n", + " 'n_components': 5}))])))])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pipeline.fit(dataset_train, dataset_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# pipeline.get_params()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "5\n" + ] + } + ], + "source": [ + "print(pipeline.get_params()['preprocessor__pca_nodes__n_components'])\n", + "print(pipeline.get_params()['regressor__transformer__pca_mach__n_components'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Fitting 3 folds for each of 4 candidates, totalling 12 fits\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:45,338:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,338:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,339:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,339:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,340:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,340:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,340:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,341:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,341:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,341:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,342:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,342:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,342:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,343:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,343:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,343:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,344:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,344:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,344:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,344:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,345:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,345:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,345:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,346:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,346:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,346:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,347:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,347:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,347:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,348:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,348:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,348:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,348:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:45,349:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/3] END preprocessor__pca_nodes__n_components=2, regressor__transformer__pca_mach__n_components=4;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:46,292:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,292:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,293:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,293:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,293:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,294:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,294:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,294:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,295:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,295:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,295:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,296:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,296:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,296:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,296:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,297:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,297:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,297:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,298:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,298:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,298:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,299:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,299:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,299:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,300:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,300:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,300:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,300:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,301:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,301:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,301:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,302:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:46,302:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 2/3] END preprocessor__pca_nodes__n_components=2, regressor__transformer__pca_mach__n_components=4;, score=nan total time= 1.0s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:47,137:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,138:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,138:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,138:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,139:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,139:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,139:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,140:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,140:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,140:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,141:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,141:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,141:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,142:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,142:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,142:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,142:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,143:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,143:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,143:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,144:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,144:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,144:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,145:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,145:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,145:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,145:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,146:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,146:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,146:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,147:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,147:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:47,147:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/3] END preprocessor__pca_nodes__n_components=2, regressor__transformer__pca_mach__n_components=4;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:48,151:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,152:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,152:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,153:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,153:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,153:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,154:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,154:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,154:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,155:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,155:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,155:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,156:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,156:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,156:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,156:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,157:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,157:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,157:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,158:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,158:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,158:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,159:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,159:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,159:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,160:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,160:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,160:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,160:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,161:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,161:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,161:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,162:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:48,162:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/3] END preprocessor__pca_nodes__n_components=2, regressor__transformer__pca_mach__n_components=5;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:49,205:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,206:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,206:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,207:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,207:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,207:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,208:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,208:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,208:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,209:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,209:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,209:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,210:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,210:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,210:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,211:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,211:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,211:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,211:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,212:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,212:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,212:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,213:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,213:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,213:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,214:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,214:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,214:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,214:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,215:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,215:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,215:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:49,216:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 2/3] END preprocessor__pca_nodes__n_components=2, regressor__transformer__pca_mach__n_components=5;, score=nan total time= 1.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:50,098:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,099:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,099:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,100:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,100:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,100:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,101:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,101:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,101:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,101:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,102:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,102:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,102:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,103:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,103:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,103:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,104:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,104:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,104:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,104:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,105:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,105:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,105:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,106:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,106:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,106:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,107:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,107:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,107:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,107:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,108:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,108:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,108:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/3] END preprocessor__pca_nodes__n_components=2, regressor__transformer__pca_mach__n_components=5;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:50,984:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,984:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,985:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,985:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,985:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,986:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,986:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,986:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,987:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,987:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,987:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,988:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,988:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,988:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,989:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,989:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,989:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,990:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,990:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,990:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,990:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,991:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,991:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,991:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,992:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,992:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,992:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,993:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,993:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,993:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,993:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,994:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,994:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:50,994:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/3] END preprocessor__pca_nodes__n_components=3, regressor__transformer__pca_mach__n_components=4;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:51,868:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,868:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,869:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,869:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,870:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,870:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,870:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,870:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,871:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,871:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,871:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,872:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,872:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,872:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,873:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,873:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,873:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,874:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,874:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,874:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,874:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,875:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,875:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,875:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,876:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,876:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,876:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,877:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,877:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,877:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,877:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,878:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:51,878:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 2/3] END preprocessor__pca_nodes__n_components=3, regressor__transformer__pca_mach__n_components=4;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:52,666:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,667:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,667:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,668:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,668:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,668:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,669:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,669:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,669:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,670:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,670:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,670:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,671:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,671:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,671:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,671:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,672:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,672:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,672:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,673:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,673:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,673:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,674:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,674:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,674:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,674:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,675:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,675:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,675:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,676:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,676:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,676:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:52,677:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/3] END preprocessor__pca_nodes__n_components=3, regressor__transformer__pca_mach__n_components=4;, score=nan total time= 0.8s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:53,603:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,603:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,604:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,605:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,605:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,605:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,606:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,606:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,606:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,607:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,607:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,607:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,608:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,608:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,608:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,608:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,609:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,609:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,609:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,610:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,610:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,610:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,611:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,611:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,611:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,611:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,612:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,612:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,612:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,613:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,613:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,613:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,614:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:53,614:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 1/3] END preprocessor__pca_nodes__n_components=3, regressor__transformer__pca_mach__n_components=5;, score=nan total time= 0.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:54,486:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,486:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,487:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,487:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,487:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,488:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,488:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,488:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,489:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,489:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,489:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,490:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,490:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,490:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,491:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,491:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,491:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,491:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,492:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,492:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,492:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,493:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,493:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,493:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,494:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,494:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,494:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,494:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,495:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,495:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,495:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,496:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:54,496:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 2/3] END preprocessor__pca_nodes__n_components=3, regressor__transformer__pca_mach__n_components=5;, score=nan total time= 1.0s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2025-07-16 18:19:55,422:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,423:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,423:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,424:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,424:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,424:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,425:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,425:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,425:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,426:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,426:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,427:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,427:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,427:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,428:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,428:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,428:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,429:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,429:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,429:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,430:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,430:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,430:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,431:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,431:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,431:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,432:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,432:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,432:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,433:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,433:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,433:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n", + "[2025-07-16 18:19:55,434:WARNING:sample.py:add_field(1685)]:field node with name mach already exists -> data will be replaced\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV 3/3] END preprocessor__pca_nodes__n_components=3, regressor__transformer__pca_mach__n_components=5;, score=nan total time= 0.8s\n" + ] + }, + { + "data": { + "text/html": [ + "
GridSearchCV(cv=3,\n",
+       "             estimator=Pipeline(steps=[('preprocessor',\n",
+       "                                        Pipeline(steps=[('input_scalar_scaler',\n",
+       "                                                         ScalarScalerNode(params={'scalar_names': ['angle_in',\n",
+       "                                                                                                   'mach_out'],\n",
+       "                                                                                  'type': 'MinMaxScaler'})),\n",
+       "                                                        ('pca_nodes',\n",
+       "                                                         PCAEmbeddingNode(n_components=3,\n",
+       "                                                                          params={'base_name': 'Base_2_2',\n",
+       "                                                                                  'field_name': 'nodes',\n",
+       "                                                                                  'n_components': 3}))])),\n",
+       "                                       ('regressor',\n",
+       "                                        DatasetTargetTransformerRegre...\n",
+       "                                                                                                       ScalarScalerNode(params={'scalar_names': ['Q',\n",
+       "                                                                                                                                                 'power',\n",
+       "                                                                                                                                                 'Pr',\n",
+       "                                                                                                                                                 'Tr',\n",
+       "                                                                                                                                                 'eth_is',\n",
+       "                                                                                                                                                 'angle_out'],\n",
+       "                                                                                                                                'type': 'MinMaxScaler'})),\n",
+       "                                                                                                      ('pca_mach',\n",
+       "                                                                                                       PCAEmbeddingNode(n_components=5,\n",
+       "                                                                                                                        params={'base_name': 'Base_2_2',\n",
+       "                                                                                                                                'field_name': 'mach',\n",
+       "                                                                                                                                'n_components': 5}))])))]),\n",
+       "             param_grid={'preprocessor__pca_nodes__n_components': [2, 3],\n",
+       "                         'regressor__transformer__pca_mach__n_components': [4,\n",
+       "                                                                            5]},\n",
+       "             verbose=3)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.