Calibration of a polynomial regression

from __future__ import annotations

import matplotlib.pyplot as plt
from gemseo import configure_logger
from gemseo.algos.design_space import DesignSpace
from gemseo.mlearning.core.calibration import MLAlgoCalibration
from gemseo.mlearning.quality_measures.mse_measure import MSEMeasure
from gemseo.problems.dataset.rosenbrock import create_rosenbrock_dataset
from matplotlib.tri import Triangulation

Load the dataset

dataset = create_rosenbrock_dataset(opt_naming=False, n_samples=25)

Define the measure

configure_logger()
test_dataset = create_rosenbrock_dataset(opt_naming=False)
measure_evaluation_method_name = "TEST"
measure_options = {"test_data": test_dataset}

Calibrate the degree of the polynomial regression

Define and execute the calibration

calibration_space = DesignSpace()
calibration_space.add_variable("degree", 1, "integer", 1, 10, 1)
calibration = MLAlgoCalibration(
    "PolynomialRegressor",
    dataset,
    ["degree"],
    calibration_space,
    MSEMeasure,
    measure_evaluation_method_name=measure_evaluation_method_name,
    measure_options=measure_options,
)
calibration.execute({"algo": "fullfact", "n_samples": 10})
x_opt = calibration.optimal_parameters
f_opt = calibration.optimal_criterion
degree = x_opt["degree"][0]
f"optimal degree = {degree}; optimal criterion = {f_opt}"
    INFO - 13:53:01:
    INFO - 13:53:01: *** Start DOEScenario execution ***
    INFO - 13:53:01: DOEScenario
    INFO - 13:53:01:    Disciplines: MLAlgoAssessor
    INFO - 13:53:01:    MDO formulation: DisciplinaryOpt
    INFO - 13:53:01: Optimization problem:
    INFO - 13:53:01:    minimize criterion(degree)
    INFO - 13:53:01:    with respect to degree
    INFO - 13:53:01:    over the design space:
    INFO - 13:53:01:    +--------+-------------+-------+-------------+---------+
    INFO - 13:53:01:    | name   | lower_bound | value | upper_bound | type    |
    INFO - 13:53:01:    +--------+-------------+-------+-------------+---------+
    INFO - 13:53:01:    | degree |      1      |   1   |      10     | integer |
    INFO - 13:53:01:    +--------+-------------+-------+-------------+---------+
    INFO - 13:53:01: Solving optimization problem with algorithm fullfact:
    INFO - 13:53:01: ...   0%|          | 0/10 [00:00<?, ?it]
    INFO - 13:53:01: ...  10%|█         | 1/10 [00:00<00:00, 28.44 it/sec, obj=5.89e+5]
    INFO - 13:53:01: ...  20%|██        | 2/10 [00:00<00:00, 39.87 it/sec, obj=1.73e+5]
    INFO - 13:53:01: ...  30%|███       | 3/10 [00:00<00:00, 46.04 it/sec, obj=3e+4]
    INFO - 13:53:01: ...  40%|████      | 4/10 [00:00<00:00, 50.19 it/sec, obj=1.1e-24]
    INFO - 13:53:01: ...  50%|█████     | 5/10 [00:00<00:00, 52.99 it/sec, obj=0.11]
    INFO - 13:53:01: ...  60%|██████    | 6/10 [00:00<00:00, 54.83 it/sec, obj=1.18e+3]
    INFO - 13:53:01: ...  70%|███████   | 7/10 [00:00<00:00, 56.39 it/sec, obj=6.9e+3]
    INFO - 13:53:01: ...  80%|████████  | 8/10 [00:00<00:00, 57.60 it/sec, obj=1.36e+4]
    INFO - 13:53:01: ...  90%|█████████ | 9/10 [00:00<00:00, 58.50 it/sec, obj=9.18e+4]
    INFO - 13:53:01: ... 100%|██████████| 10/10 [00:00<00:00, 59.17 it/sec, obj=1.63e+5]
    INFO - 13:53:01: Optimization result:
    INFO - 13:53:01:    Optimizer info:
    INFO - 13:53:01:       Status: None
    INFO - 13:53:01:       Message: None
    INFO - 13:53:01:       Number of calls to the objective function by the optimizer: 10
    INFO - 13:53:01:    Solution:
    INFO - 13:53:01:       Objective: 1.0957626812742524e-24
    INFO - 13:53:01:       Design space:
    INFO - 13:53:01:       +--------+-------------+-------+-------------+---------+
    INFO - 13:53:01:       | name   | lower_bound | value | upper_bound | type    |
    INFO - 13:53:01:       +--------+-------------+-------+-------------+---------+
    INFO - 13:53:01:       | degree |      1      |   4   |      10     | integer |
    INFO - 13:53:01:       +--------+-------------+-------+-------------+---------+
    INFO - 13:53:01: *** End DOEScenario execution (time: 0:00:00.181544) ***

'optimal degree = 4; optimal criterion = 1.0957626812742524e-24'

Get the history

calibration.dataset
GROUP inputs outputs
VARIABLE degree criterion learning
COMPONENT 0 0 0
0 1.0 5.888317e+05 8.200828e+05
1 2.0 1.732475e+05 2.404571e+05
2 3.0 3.001292e+04 1.645714e+04
3 4.0 1.095763e-24 1.703801e-24
4 5.0 1.097877e-01 1.391092e-23
5 6.0 1.183264e+03 2.332471e-24
6 7.0 6.895919e+03 1.401963e-23
7 8.0 1.356307e+04 5.192192e-23
8 9.0 9.180547e+04 8.964290e-23
9 10.0 1.625259e+05 8.767875e-23


Visualize the results

degree = calibration.get_history("degree")
criterion = calibration.get_history("criterion")
learning = calibration.get_history("learning")

plt.plot(degree, criterion, "-o", label="test", color="red")
plt.plot(degree, learning, "-o", label="learning", color="blue")
plt.xlabel("polynomial degree")
plt.ylabel("quality")
plt.axvline(x_opt["degree"], color="red", ls="--")
plt.legend()
plt.show()
plot calibration

Calibrate the ridge penalty of the polynomial regression

Define and execute the calibration

calibration_space = DesignSpace()
calibration_space.add_variable("penalty_level", 1, "float", 0.0, 100.0, 0.0)
calibration = MLAlgoCalibration(
    "PolynomialRegressor",
    dataset,
    ["penalty_level"],
    calibration_space,
    MSEMeasure,
    measure_evaluation_method_name=measure_evaluation_method_name,
    measure_options=measure_options,
    degree=10,
)
calibration.execute({"algo": "fullfact", "n_samples": 10})
x_opt = calibration.optimal_parameters
f_opt = calibration.optimal_criterion
x_opt["penalty_level"][0], f_opt
    INFO - 13:53:01:
    INFO - 13:53:01: *** Start DOEScenario execution ***
    INFO - 13:53:01: DOEScenario
    INFO - 13:53:01:    Disciplines: MLAlgoAssessor
    INFO - 13:53:01:    MDO formulation: DisciplinaryOpt
    INFO - 13:53:01: Optimization problem:
    INFO - 13:53:01:    minimize criterion(penalty_level)
    INFO - 13:53:01:    with respect to penalty_level
    INFO - 13:53:01:    over the design space:
    INFO - 13:53:01:    +---------------+-------------+-------+-------------+-------+
    INFO - 13:53:01:    | name          | lower_bound | value | upper_bound | type  |
    INFO - 13:53:01:    +---------------+-------------+-------+-------------+-------+
    INFO - 13:53:01:    | penalty_level |      0      |   0   |     100     | float |
    INFO - 13:53:01:    +---------------+-------------+-------+-------------+-------+
    INFO - 13:53:01: Solving optimization problem with algorithm fullfact:
    INFO - 13:53:01: ...   0%|          | 0/10 [00:00<?, ?it]
    INFO - 13:53:01: ...  10%|█         | 1/10 [00:00<00:00, 55.92 it/sec, obj=1.63e+5]
    INFO - 13:53:01: ...  20%|██        | 2/10 [00:00<00:00, 58.81 it/sec, obj=3.25e+4]
    INFO - 13:53:01: ...  30%|███       | 3/10 [00:00<00:00, 60.98 it/sec, obj=1.78e+4]
    INFO - 13:53:01: ...  40%|████      | 4/10 [00:00<00:00, 62.24 it/sec, obj=1.72e+4]
    INFO - 13:53:01: ...  50%|█████     | 5/10 [00:00<00:00, 63.25 it/sec, obj=2e+4]
    INFO - 13:53:01: ...  60%|██████    | 6/10 [00:00<00:00, 63.52 it/sec, obj=2.35e+4]
    INFO - 13:53:01: ...  70%|███████   | 7/10 [00:00<00:00, 64.11 it/sec, obj=2.7e+4]
    INFO - 13:53:01: ...  80%|████████  | 8/10 [00:00<00:00, 64.50 it/sec, obj=3.03e+4]
    INFO - 13:53:01: ...  90%|█████████ | 9/10 [00:00<00:00, 64.65 it/sec, obj=3.33e+4]
    INFO - 13:53:01: ... 100%|██████████| 10/10 [00:00<00:00, 65.05 it/sec, obj=3.59e+4]
    INFO - 13:53:01: Optimization result:
    INFO - 13:53:01:    Optimizer info:
    INFO - 13:53:01:       Status: None
    INFO - 13:53:01:       Message: None
    INFO - 13:53:01:       Number of calls to the objective function by the optimizer: 10
    INFO - 13:53:01:    Solution:
    INFO - 13:53:01:       Objective: 17189.52649297074
    INFO - 13:53:01:       Design space:
    INFO - 13:53:01:       +---------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:01:       | name          | lower_bound |       value       | upper_bound | type  |
    INFO - 13:53:01:       +---------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:01:       | penalty_level |      0      | 33.33333333333333 |     100     | float |
    INFO - 13:53:01:       +---------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:01: *** End DOEScenario execution (time: 0:00:00.166009) ***

(33.33333333333333, 17189.52649297074)

Get the history

calibration.dataset
GROUP inputs outputs
VARIABLE penalty_level criterion learning
COMPONENT 0 0 0
0 0.000000 162525.860760 8.767875e-23
1 11.111111 32506.221289 1.087801e+03
2 22.222222 17820.599507 1.982580e+03
3 33.333333 17189.526493 2.690007e+03
4 44.444444 19953.420378 3.251453e+03
5 55.555556 23493.269988 3.703714e+03
6 66.666667 27024.053276 4.074147e+03
7 77.777778 30303.486633 4.382362e+03
8 88.888889 33272.062306 4.642448e+03
9 100.000000 35934.745536 4.864667e+03


Visualize the results

penalty_level = calibration.get_history("penalty_level")
criterion = calibration.get_history("criterion")
learning = calibration.get_history("learning")

plt.plot(penalty_level, criterion, "-o", label="test", color="red")
plt.plot(penalty_level, learning, "-o", label="learning", color="blue")
plt.axvline(x_opt["penalty_level"], color="red", ls="--")
plt.xlabel("ridge penalty")
plt.ylabel("quality")
plt.legend()
plt.show()
plot calibration

Calibrate the lasso penalty of the polynomial regression

Define and execute the calibration

calibration_space = DesignSpace()
calibration_space.add_variable("penalty_level", 1, "float", 0.0, 100.0, 0.0)
calibration = MLAlgoCalibration(
    "PolynomialRegressor",
    dataset,
    ["penalty_level"],
    calibration_space,
    MSEMeasure,
    measure_evaluation_method_name=measure_evaluation_method_name,
    measure_options=measure_options,
    degree=10,
    l2_penalty_ratio=0.0,
)
calibration.execute({"algo": "fullfact", "n_samples": 10})
x_opt = calibration.optimal_parameters
f_opt = calibration.optimal_criterion
x_opt["penalty_level"][0], f_opt
    INFO - 13:53:02:
    INFO - 13:53:02: *** Start DOEScenario execution ***
    INFO - 13:53:02: DOEScenario
    INFO - 13:53:02:    Disciplines: MLAlgoAssessor
    INFO - 13:53:02:    MDO formulation: DisciplinaryOpt
    INFO - 13:53:02: Optimization problem:
    INFO - 13:53:02:    minimize criterion(penalty_level)
    INFO - 13:53:02:    with respect to penalty_level
    INFO - 13:53:02:    over the design space:
    INFO - 13:53:02:    +---------------+-------------+-------+-------------+-------+
    INFO - 13:53:02:    | name          | lower_bound | value | upper_bound | type  |
    INFO - 13:53:02:    +---------------+-------------+-------+-------------+-------+
    INFO - 13:53:02:    | penalty_level |      0      |   0   |     100     | float |
    INFO - 13:53:02:    +---------------+-------------+-------+-------------+-------+
    INFO - 13:53:02: Solving optimization problem with algorithm fullfact:
    INFO - 13:53:02: ...   0%|          | 0/10 [00:00<?, ?it]
    INFO - 13:53:02: ...  10%|█         | 1/10 [00:00<00:00, 54.37 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.301e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  20%|██        | 2/10 [00:00<00:00, 50.89 it/sec, obj=1.58e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.631e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  30%|███       | 3/10 [00:00<00:00, 51.42 it/sec, obj=3.15e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.284e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  40%|████      | 4/10 [00:00<00:00, 51.92 it/sec, obj=4.74e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.984e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  50%|█████     | 5/10 [00:00<00:00, 52.10 it/sec, obj=5.94e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.054e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  60%|██████    | 6/10 [00:00<00:00, 51.88 it/sec, obj=6.27e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.152e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  70%|███████   | 7/10 [00:00<00:00, 51.87 it/sec, obj=6.63e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.925e+03, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  80%|████████  | 8/10 [00:00<00:00, 51.92 it/sec, obj=6.93e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.746e+03, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  90%|█████████ | 9/10 [00:00<00:00, 52.11 it/sec, obj=7.25e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.372e+03, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ... 100%|██████████| 10/10 [00:00<00:00, 52.39 it/sec, obj=7.57e+4]
    INFO - 13:53:02: Optimization result:
    INFO - 13:53:02:    Optimizer info:
    INFO - 13:53:02:       Status: None
    INFO - 13:53:02:       Message: None
    INFO - 13:53:02:       Number of calls to the objective function by the optimizer: 10
    INFO - 13:53:02:    Solution:
    INFO - 13:53:02:       Objective: 15775.989581125898
    INFO - 13:53:02:       Design space:
    INFO - 13:53:02:       +---------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:02:       | name          | lower_bound |       value       | upper_bound | type  |
    INFO - 13:53:02:       +---------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:02:       | penalty_level |      0      | 11.11111111111111 |     100     | float |
    INFO - 13:53:02:       +---------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:02: *** End DOEScenario execution (time: 0:00:00.205355) ***

(11.11111111111111, 15775.989581125898)

Get the history

calibration.dataset
GROUP inputs outputs
VARIABLE penalty_level criterion learning
COMPONENT 0 0 0
0 0.000000 162525.860760 8.767875e-23
1 11.111111 15775.989581 1.814382e+03
2 22.222222 31529.584354 4.057302e+03
3 33.333333 47420.249503 5.792299e+03
4 44.444444 59358.207437 7.169565e+03
5 55.555556 62656.171431 7.278397e+03
6 66.666667 66256.259889 7.410137e+03
7 77.777778 69336.190346 7.540731e+03
8 88.888889 72457.378777 7.675963e+03
9 100.000000 75749.793494 7.816545e+03


Visualize the results

penalty_level = calibration.get_history("penalty_level")
criterion = calibration.get_history("criterion")
learning = calibration.get_history("learning")

plt.plot(penalty_level, criterion, "-o", label="test", color="red")
plt.plot(penalty_level, learning, "-o", label="learning", color="blue")
plt.axvline(x_opt["penalty_level"], color="red", ls="--")
plt.xlabel("lasso penalty")
plt.ylabel("quality")
plt.legend()
plt.show()
plot calibration

Calibrate the elasticnet penalty of the polynomial regression

Define and execute the calibration

calibration_space = DesignSpace()
calibration_space.add_variable("penalty_level", 1, "float", 0.0, 40.0, 0.0)
calibration_space.add_variable("l2_penalty_ratio", 1, "float", 0.0, 1.0, 0.5)
calibration = MLAlgoCalibration(
    "PolynomialRegressor",
    dataset,
    ["penalty_level", "l2_penalty_ratio"],
    calibration_space,
    MSEMeasure,
    measure_evaluation_method_name=measure_evaluation_method_name,
    measure_options=measure_options,
    degree=10,
)
calibration.execute({"algo": "fullfact", "n_samples": 100})
x_opt = calibration.optimal_parameters
f_opt = calibration.optimal_criterion
x_opt["penalty_level"][0], x_opt["l2_penalty_ratio"][0], f_opt
    INFO - 13:53:02:
    INFO - 13:53:02: *** Start DOEScenario execution ***
    INFO - 13:53:02: DOEScenario
    INFO - 13:53:02:    Disciplines: MLAlgoAssessor
    INFO - 13:53:02:    MDO formulation: DisciplinaryOpt
    INFO - 13:53:02: Optimization problem:
    INFO - 13:53:02:    minimize criterion(penalty_level, l2_penalty_ratio)
    INFO - 13:53:02:    with respect to l2_penalty_ratio, penalty_level
    INFO - 13:53:02:    over the design space:
    INFO - 13:53:02:    +------------------+-------------+-------+-------------+-------+
    INFO - 13:53:02:    | name             | lower_bound | value | upper_bound | type  |
    INFO - 13:53:02:    +------------------+-------------+-------+-------------+-------+
    INFO - 13:53:02:    | penalty_level    |      0      |   0   |      40     | float |
    INFO - 13:53:02:    | l2_penalty_ratio |      0      |  0.5  |      1      | float |
    INFO - 13:53:02:    +------------------+-------------+-------+-------------+-------+
    INFO - 13:53:02: Solving optimization problem with algorithm fullfact:
    INFO - 13:53:02: ...   0%|          | 0/100 [00:00<?, ?it]
    INFO - 13:53:02: ...   1%|          | 1/100 [00:00<00:01, 55.22 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.904e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   2%|▏         | 2/100 [00:00<00:01, 52.36 it/sec, obj=4.14e+3]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.786e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   3%|▎         | 3/100 [00:00<00:01, 52.20 it/sec, obj=1.34e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.325e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   4%|▍         | 4/100 [00:00<00:01, 51.98 it/sec, obj=1.79e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.034e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   5%|▌         | 5/100 [00:00<00:01, 52.14 it/sec, obj=2.39e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.631e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   6%|▌         | 6/100 [00:00<00:01, 52.00 it/sec, obj=3.15e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.166e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   7%|▋         | 7/100 [00:00<00:01, 52.12 it/sec, obj=3.91e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.968e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   8%|▊         | 8/100 [00:00<00:01, 52.05 it/sec, obj=4.5e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.545e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...   9%|▉         | 9/100 [00:00<00:01, 49.96 it/sec, obj=4.95e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.811e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  10%|█         | 10/100 [00:00<00:01, 50.14 it/sec, obj=5.42e+4]
    INFO - 13:53:02: ...  11%|█         | 11/100 [00:00<00:01, 51.34 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.233e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  12%|█▏        | 12/100 [00:00<00:01, 51.16 it/sec, obj=1.35e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.032e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  13%|█▎        | 13/100 [00:00<00:01, 51.04 it/sec, obj=2.44e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.991e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  14%|█▍        | 14/100 [00:00<00:01, 51.07 it/sec, obj=3.28e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.326e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  15%|█▌        | 15/100 [00:00<00:01, 50.85 it/sec, obj=4.19e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.100e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  16%|█▌        | 16/100 [00:00<00:01, 50.89 it/sec, obj=4.76e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.636e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  17%|█▋        | 17/100 [00:00<00:01, 50.85 it/sec, obj=5.16e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.011e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  18%|█▊        | 18/100 [00:00<00:01, 50.92 it/sec, obj=5.52e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.376e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  19%|█▉        | 19/100 [00:00<00:01, 50.91 it/sec, obj=5.78e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.274e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  20%|██        | 20/100 [00:00<00:01, 51.02 it/sec, obj=5.98e+4]
    INFO - 13:53:02: ...  21%|██        | 21/100 [00:00<00:01, 51.61 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.416e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  22%|██▏       | 22/100 [00:00<00:01, 51.51 it/sec, obj=1.97e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.049e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  23%|██▎       | 23/100 [00:00<00:01, 51.48 it/sec, obj=3.17e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.114e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  24%|██▍       | 24/100 [00:00<00:01, 51.50 it/sec, obj=4.02e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.879e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  25%|██▌       | 25/100 [00:00<00:01, 51.50 it/sec, obj=4.59e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.346e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:02: ...  26%|██▌       | 26/100 [00:00<00:01, 51.53 it/sec, obj=4.97e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.139e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  27%|██▋       | 27/100 [00:00<00:01, 51.54 it/sec, obj=5.3e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.088e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  28%|██▊       | 28/100 [00:00<00:01, 51.57 it/sec, obj=5.6e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.614e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  29%|██▉       | 29/100 [00:00<00:01, 51.59 it/sec, obj=5.89e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.419e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  30%|███       | 30/100 [00:00<00:01, 51.64 it/sec, obj=6.18e+4]
    INFO - 13:53:03: ...  31%|███       | 31/100 [00:00<00:01, 52.03 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.445e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  32%|███▏      | 32/100 [00:00<00:01, 52.00 it/sec, obj=2.43e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.489e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  33%|███▎      | 33/100 [00:00<00:01, 51.96 it/sec, obj=3.58e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.720e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  34%|███▍      | 34/100 [00:00<00:01, 51.95 it/sec, obj=4.29e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.355e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  35%|███▌      | 35/100 [00:00<00:01, 51.76 it/sec, obj=4.77e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.901e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  36%|███▌      | 36/100 [00:00<00:01, 51.76 it/sec, obj=5.12e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.912e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  37%|███▋      | 37/100 [00:00<00:01, 51.75 it/sec, obj=5.43e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.813e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  38%|███▊      | 38/100 [00:00<00:01, 51.71 it/sec, obj=5.74e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.575e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  39%|███▉      | 39/100 [00:00<00:01, 51.69 it/sec, obj=6.05e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.228e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  40%|████      | 40/100 [00:00<00:01, 51.67 it/sec, obj=6.35e+4]
    INFO - 13:53:03: ...  41%|████      | 41/100 [00:00<00:01, 51.96 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.024e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  42%|████▏     | 42/100 [00:00<00:01, 51.91 it/sec, obj=2.75e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.011e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  43%|████▎     | 43/100 [00:00<00:01, 51.86 it/sec, obj=3.82e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.113e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  44%|████▍     | 44/100 [00:00<00:01, 51.82 it/sec, obj=4.42e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.519e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  45%|████▌     | 45/100 [00:00<00:01, 51.75 it/sec, obj=4.9e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.055e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  46%|████▌     | 46/100 [00:00<00:01, 51.68 it/sec, obj=5.28e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.144e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  47%|████▋     | 47/100 [00:00<00:01, 51.67 it/sec, obj=5.61e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.279e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  48%|████▊     | 48/100 [00:00<00:01, 51.65 it/sec, obj=5.93e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.108e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  49%|████▉     | 49/100 [00:00<00:00, 51.64 it/sec, obj=6.24e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.238e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  50%|█████     | 50/100 [00:00<00:00, 51.64 it/sec, obj=6.54e+4]
    INFO - 13:53:03: ...  51%|█████     | 51/100 [00:00<00:00, 51.85 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.431e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  52%|█████▏    | 52/100 [00:01<00:00, 51.82 it/sec, obj=2.99e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.364e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  53%|█████▎    | 53/100 [00:01<00:00, 51.78 it/sec, obj=3.96e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.413e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  54%|█████▍    | 54/100 [00:01<00:00, 51.76 it/sec, obj=4.51e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.943e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  55%|█████▌    | 55/100 [00:01<00:00, 51.73 it/sec, obj=5e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.337e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  56%|█████▌    | 56/100 [00:01<00:00, 51.71 it/sec, obj=5.43e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.369e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  57%|█████▋    | 57/100 [00:01<00:00, 51.71 it/sec, obj=5.78e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.650e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  58%|█████▊    | 58/100 [00:01<00:00, 51.71 it/sec, obj=6.11e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.892e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  59%|█████▉    | 59/100 [00:01<00:00, 51.70 it/sec, obj=6.41e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.651e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  60%|██████    | 60/100 [00:01<00:00, 51.71 it/sec, obj=6.66e+4]
    INFO - 13:53:03: ...  61%|██████    | 61/100 [00:01<00:00, 51.90 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.740e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  62%|██████▏   | 62/100 [00:01<00:00, 51.84 it/sec, obj=3.18e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.649e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  63%|██████▎   | 63/100 [00:01<00:00, 51.81 it/sec, obj=4.07e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.844e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  64%|██████▍   | 64/100 [00:01<00:00, 51.77 it/sec, obj=4.6e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.984e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  65%|██████▌   | 65/100 [00:01<00:00, 51.74 it/sec, obj=5.09e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.131e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  66%|██████▌   | 66/100 [00:01<00:00, 51.72 it/sec, obj=5.53e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.602e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  67%|██████▋   | 67/100 [00:01<00:00, 51.71 it/sec, obj=5.92e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.732e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  68%|██████▊   | 68/100 [00:01<00:00, 51.68 it/sec, obj=6.25e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.134e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  69%|██████▉   | 69/100 [00:01<00:00, 51.65 it/sec, obj=6.52e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.496e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  70%|███████   | 70/100 [00:01<00:00, 51.63 it/sec, obj=6.71e+4]
    INFO - 13:53:03: ...  71%|███████   | 71/100 [00:01<00:00, 51.79 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.000e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  72%|███████▏  | 72/100 [00:01<00:00, 51.76 it/sec, obj=3.32e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.897e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  73%|███████▎  | 73/100 [00:01<00:00, 51.74 it/sec, obj=4.15e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.148e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  74%|███████▍  | 74/100 [00:01<00:00, 51.70 it/sec, obj=4.69e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.706e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  75%|███████▌  | 75/100 [00:01<00:00, 51.66 it/sec, obj=5.19e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.195e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  76%|███████▌  | 76/100 [00:01<00:00, 51.64 it/sec, obj=5.63e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.466e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  77%|███████▋  | 77/100 [00:01<00:00, 51.62 it/sec, obj=6.01e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.580e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:03: ...  78%|███████▊  | 78/100 [00:01<00:00, 51.60 it/sec, obj=6.32e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.258e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  79%|███████▉  | 79/100 [00:01<00:00, 51.57 it/sec, obj=6.55e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.020e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  80%|████████  | 80/100 [00:01<00:00, 51.56 it/sec, obj=6.72e+4]
    INFO - 13:53:04: ...  81%|████████  | 81/100 [00:01<00:00, 51.71 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.222e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  82%|████████▏ | 82/100 [00:01<00:00, 51.68 it/sec, obj=3.44e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.179e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  83%|████████▎ | 83/100 [00:01<00:00, 51.65 it/sec, obj=4.23e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.446e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  84%|████████▍ | 84/100 [00:01<00:00, 51.61 it/sec, obj=4.78e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.507e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  85%|████████▌ | 85/100 [00:01<00:00, 51.56 it/sec, obj=5.3e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.936e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  86%|████████▌ | 86/100 [00:01<00:00, 51.51 it/sec, obj=5.74e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.005e+05, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  87%|████████▋ | 87/100 [00:01<00:00, 51.47 it/sec, obj=6.09e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.010e+05, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  88%|████████▊ | 88/100 [00:01<00:00, 51.43 it/sec, obj=6.35e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.877e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  89%|████████▉ | 89/100 [00:01<00:00, 51.40 it/sec, obj=6.53e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.866e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  90%|█████████ | 90/100 [00:01<00:00, 51.36 it/sec, obj=6.67e+4]
    INFO - 13:53:04: ...  91%|█████████ | 91/100 [00:01<00:00, 51.47 it/sec, obj=1.63e+5]
    INFO - 13:53:04: ...  92%|█████████▏| 92/100 [00:01<00:00, 51.58 it/sec, obj=6.89e+4]
    INFO - 13:53:04: ...  93%|█████████▎| 93/100 [00:01<00:00, 51.71 it/sec, obj=4.03e+4]
    INFO - 13:53:04: ...  94%|█████████▍| 94/100 [00:01<00:00, 51.84 it/sec, obj=2.71e+4]
    INFO - 13:53:04: ...  95%|█████████▌| 95/100 [00:01<00:00, 51.97 it/sec, obj=2.07e+4]
    INFO - 13:53:04: ...  96%|█████████▌| 96/100 [00:01<00:00, 52.11 it/sec, obj=1.78e+4]
    INFO - 13:53:04: ...  97%|█████████▋| 97/100 [00:01<00:00, 52.23 it/sec, obj=1.68e+4]
    INFO - 13:53:04: ...  98%|█████████▊| 98/100 [00:01<00:00, 52.35 it/sec, obj=1.69e+4]
    INFO - 13:53:04: ...  99%|█████████▉| 99/100 [00:01<00:00, 52.47 it/sec, obj=1.76e+4]
    INFO - 13:53:04: ... 100%|██████████| 100/100 [00:01<00:00, 52.60 it/sec, obj=1.87e+4]
    INFO - 13:53:04: Optimization result:
    INFO - 13:53:04:    Optimizer info:
    INFO - 13:53:04:       Status: None
    INFO - 13:53:04:       Message: None
    INFO - 13:53:04:       Number of calls to the objective function by the optimizer: 100
    INFO - 13:53:04:    Solution:
    INFO - 13:53:04:       Objective: 4136.820826715568
    INFO - 13:53:04:       Design space:
    INFO - 13:53:04:       +------------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:04:       | name             | lower_bound |       value       | upper_bound | type  |
    INFO - 13:53:04:       +------------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:04:       | penalty_level    |      0      | 4.444444444444445 |      40     | float |
    INFO - 13:53:04:       | l2_penalty_ratio |      0      |         0         |      1      | float |
    INFO - 13:53:04:       +------------------+-------------+-------------------+-------------+-------+
    INFO - 13:53:04: *** End DOEScenario execution (time: 0:00:01.914330) ***

(4.444444444444445, 0.0, 4136.820826715568)

Get the history

calibration.dataset
GROUP inputs outputs
VARIABLE penalty_level l2_penalty_ratio criterion learning
COMPONENT 0 0 0 0
0 0.000000 0.0 162525.860760 8.767875e-23
1 4.444444 0.0 4136.820827 4.546714e+02
2 8.888889 0.0 13371.034446 1.375915e+03
3 13.333333 0.0 17860.819693 2.176736e+03
4 17.777778 0.0 23914.366014 3.005032e+03
... ... ... ... ...
95 22.222222 1.0 17820.599507 1.982580e+03
96 26.666667 1.0 16816.595592 2.285780e+03
97 31.111111 1.0 16894.821607 2.561538e+03
98 35.555556 1.0 17602.178769 2.812662e+03
99 40.000000 1.0 18674.751406 3.041823e+03

100 rows × 4 columns



Visualize the results

penalty_level = calibration.get_history("penalty_level").flatten()
l2_penalty_ratio = calibration.get_history("l2_penalty_ratio").flatten()
criterion = calibration.get_history("criterion").flatten()
learning = calibration.get_history("learning").flatten()

triang = Triangulation(penalty_level, l2_penalty_ratio)

fig = plt.figure()
ax = fig.add_subplot(1, 2, 1)
ax.tricontourf(triang, criterion, cmap="Purples")
ax.scatter(x_opt["penalty_level"][0], x_opt["l2_penalty_ratio"][0])
ax.set_xlabel("penalty level")
ax.set_ylabel("l2 penalty ratio")
ax.set_title("Test measure")
ax = fig.add_subplot(1, 2, 2)
ax.tricontourf(triang, learning, cmap="Purples")
ax.scatter(x_opt["penalty_level"][0], x_opt["l2_penalty_ratio"][0])
ax.set_xlabel("penalty level")
ax.set_ylabel("l2 penalty ratio")
ax.set_title("Learning measure")

plt.show()
Test measure, Learning measure

Add an optimization stage

calibration_space = DesignSpace()
calibration_space.add_variable("penalty_level", 1, "float", 0.0, 40.0, 0.0)
calibration_space.add_variable("l2_penalty_ratio", 1, "float", 0.0, 1.0, 0.5)
calibration = MLAlgoCalibration(
    "PolynomialRegressor",
    dataset,
    ["penalty_level", "l2_penalty_ratio"],
    calibration_space,
    MSEMeasure,
    measure_evaluation_method_name=measure_evaluation_method_name,
    measure_options=measure_options,
    degree=10,
)
calibration.execute({"algo": "NLOPT_COBYLA", "max_iter": 100})
x_opt2 = calibration.optimal_parameters
f_opt2 = calibration.optimal_criterion

fig = plt.figure()
ax = fig.add_subplot(1, 2, 1)
ax.tricontourf(triang, criterion, cmap="Purples")
ax.scatter(x_opt["penalty_level"][0], x_opt["l2_penalty_ratio"][0])
ax.scatter(x_opt2["penalty_level"][0], x_opt2["l2_penalty_ratio"][0], color="red")
ax.set_xlabel("penalty level")
ax.set_ylabel("l2 penalty ratio")
ax.set_title("Test measure")
ax = fig.add_subplot(1, 2, 2)
ax.tricontourf(triang, learning, cmap="Purples")
ax.scatter(x_opt["penalty_level"][0], x_opt["l2_penalty_ratio"][0])
ax.scatter(x_opt2["penalty_level"][0], x_opt2["l2_penalty_ratio"][0], color="red")
ax.set_xlabel("penalty level")
ax.set_ylabel("l2 penalty ratio")
ax.set_title("Learning measure")
plt.show()

n_iterations = len(calibration.scenario.disciplines[0].cache)
print(f"MSE with DOE: {f_opt} (100 evaluations)")
print(f"MSE with OPT: {f_opt2} ({n_iterations} evaluations)")
print(f"MSE reduction:{round((f_opt2 - f_opt) / f_opt * 100)}%")
Test measure, Learning measure
    INFO - 13:53:04:
    INFO - 13:53:04: *** Start MDOScenario execution ***
    INFO - 13:53:04: MDOScenario
    INFO - 13:53:04:    Disciplines: MLAlgoAssessor
    INFO - 13:53:04:    MDO formulation: DisciplinaryOpt
    INFO - 13:53:04: Optimization problem:
    INFO - 13:53:04:    minimize criterion(penalty_level, l2_penalty_ratio)
    INFO - 13:53:04:    with respect to l2_penalty_ratio, penalty_level
    INFO - 13:53:04:    over the design space:
    INFO - 13:53:04:    +------------------+-------------+-------+-------------+-------+
    INFO - 13:53:04:    | name             | lower_bound | value | upper_bound | type  |
    INFO - 13:53:04:    +------------------+-------------+-------+-------------+-------+
    INFO - 13:53:04:    | penalty_level    |      0      |   0   |      40     | float |
    INFO - 13:53:04:    | l2_penalty_ratio |      0      |  0.5  |      1      | float |
    INFO - 13:53:04:    +------------------+-------------+-------+-------------+-------+
    INFO - 13:53:04: Solving optimization problem with algorithm NLOPT_COBYLA:
    INFO - 13:53:04: ...   0%|          | 0/100 [00:00<?, ?it]
    INFO - 13:53:04: ...   1%|          | 1/100 [00:00<00:01, 55.15 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.287e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   2%|▏         | 2/100 [00:00<00:01, 52.54 it/sec, obj=4.06e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.952e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   3%|▎         | 3/100 [00:00<00:01, 52.00 it/sec, obj=4.28e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.118e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   4%|▍         | 4/100 [00:00<00:01, 51.50 it/sec, obj=5.16e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.089e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   5%|▌         | 5/100 [00:00<00:01, 50.94 it/sec, obj=4.66e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.973e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   6%|▌         | 6/100 [00:00<00:01, 50.55 it/sec, obj=3.63e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.402e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   7%|▋         | 7/100 [00:00<00:01, 50.39 it/sec, obj=3.03e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.059e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   8%|▊         | 8/100 [00:00<00:01, 49.98 it/sec, obj=2.03e+4]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.428e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...   9%|▉         | 9/100 [00:00<00:01, 49.67 it/sec, obj=2.75e+3]
    INFO - 13:53:04: ...  10%|█         | 10/100 [00:00<00:01, 50.27 it/sec, obj=493]
    INFO - 13:53:04: ...  11%|█         | 11/100 [00:00<00:01, 51.38 it/sec, obj=1.63e+5]
    INFO - 13:53:04: ...  12%|█▏        | 12/100 [00:00<00:01, 52.33 it/sec, obj=1.63e+5]
/home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/5.1.0/lib/python3.9/site-packages/sklearn/linear_model/_coordinate_descent.py:628: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.976e+04, tolerance: 2.850e+03
  model = cd_fast.enet_coordinate_descent(
    INFO - 13:53:04: ...  13%|█▎        | 13/100 [00:00<00:01, 52.06 it/sec, obj=5.23e+3]
    INFO - 13:53:04: ...  14%|█▍        | 14/100 [00:00<00:01, 52.35 it/sec, obj=493]
    INFO - 13:53:04: ...  15%|█▌        | 15/100 [00:00<00:01, 52.56 it/sec, obj=493]
    INFO - 13:53:04: ...  16%|█▌        | 16/100 [00:00<00:01, 52.75 it/sec, obj=493]
    INFO - 13:53:04: Optimization result:
    INFO - 13:53:04:    Optimizer info:
    INFO - 13:53:04:       Status: None
    INFO - 13:53:04:       Message: Successive iterates of the objective function are closer than ftol_rel or ftol_abs. GEMSEO Stopped the driver
    INFO - 13:53:04:       Number of calls to the objective function by the optimizer: 17
    INFO - 13:53:04:    Solution:
    INFO - 13:53:04:       Objective: 493.1818200496802
    INFO - 13:53:04:       Design space:
    INFO - 13:53:04:       +------------------+-------------+-----------------------+-------------+-------+
    INFO - 13:53:04:       | name             | lower_bound |         value         | upper_bound | type  |
    INFO - 13:53:04:       +------------------+-------------+-----------------------+-------------+-------+
    INFO - 13:53:04:       | penalty_level    |      0      | 2.289834988289385e-15 |      40     | float |
    INFO - 13:53:04:       | l2_penalty_ratio |      0      |   0.5765298371174132  |      1      | float |
    INFO - 13:53:04:       +------------------+-------------+-----------------------+-------------+-------+
    INFO - 13:53:04: *** End MDOScenario execution (time: 0:00:00.318244) ***
MSE with DOE: 4136.820826715568 (100 evaluations)
MSE with OPT: 493.1818200496802 (1 evaluations)
MSE reduction:-88%

Total running time of the script: (0 minutes 3.706 seconds)

Gallery generated by Sphinx-Gallery