.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/mlearning/dimension_reduction/plot_moe_burgers.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_mlearning_dimension_reduction_plot_moe_burgers.py: Mixture of experts with PCA on Burgers dataset ============================================== In this demo, we apply a mixture of experts regression model to the Burgers dataset. In order to reduce the output dimension, we apply a PCA to the outputs. .. GENERATED FROM PYTHON SOURCE LINES 30-33 Imports ------- Import from standard libraries and |g|. .. GENERATED FROM PYTHON SOURCE LINES 33-43 .. code-block:: default import matplotlib.pyplot as plt from gemseo.api import configure_logger from gemseo.api import load_dataset from gemseo.mlearning.api import create_regression_model from matplotlib.lines import Line2D from numpy import nonzero configure_logger() .. rst-class:: sphx-glr-script-out Out: .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 44-46 Load dataset (Burgers) ---------------------- .. GENERATED FROM PYTHON SOURCE LINES 46-51 .. code-block:: default n_samples = 50 dataset = load_dataset("BurgersDataset", n_samples=n_samples) inputs = dataset.get_data_by_group(dataset.INPUT_GROUP) outputs = dataset.get_data_by_group(dataset.OUTPUT_GROUP) .. GENERATED FROM PYTHON SOURCE LINES 52-56 Mixture of experts (MoE) ------------------------ In this section we load a mixture of experts regression model through the machine learning API, using clustering, classification and regression models. .. GENERATED FROM PYTHON SOURCE LINES 58-62 Mixture of experts model ~~~~~~~~~~~~~~~~~~~~~~~~ We construct the MoE model using the predefined parameters, and fit the model to the dataset through the learn() method. .. GENERATED FROM PYTHON SOURCE LINES 62-71 .. code-block:: default model = create_regression_model("MOERegressor", dataset) model.set_clusterer("KMeans", n_clusters=2, transformer={"outputs": "JamesonSensor"}) model.set_classifier("KNNClassifier", n_neighbors=3) model.set_regressor( "GaussianProcessRegressor", transformer={"outputs": ("PCA", {"n_components": 20})} ) model.learn() .. rst-class:: sphx-glr-script-out Out: .. code-block:: none /home/docs/checkouts/readthedocs.org/user_builds/gemseo/envs/4.0.0/lib/python3.9/site-packages/sklearn/gaussian_process/_gpr.py:616: ConvergenceWarning: lbfgs failed to converge (status=2): ABNORMAL_TERMINATION_IN_LNSRCH. Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html _check_optimize_result("lbfgs", opt_res) .. GENERATED FROM PYTHON SOURCE LINES 72-74 Make predictions ~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 74-78 .. code-block:: default predictions = model.predict(inputs) local_pred_0 = model.predict_local_model(inputs, 0) local_pred_1 = model.predict_local_model(inputs, 1) .. GENERATED FROM PYTHON SOURCE LINES 79-81 Plot clusters ~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 81-91 .. code-block:: default for i in nonzero(model.clusterer.labels == 0)[0]: plt.plot(outputs[i], color="r") for i in nonzero(model.clusterer.labels == 1)[0]: plt.plot(outputs[i], color="b") plt.legend( [Line2D([0], [0], color="r"), Line2D([0], [0], color="b")], ["Cluster 0", "Cluster 1"], ) plt.show() .. image-sg:: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_001.png :alt: plot moe burgers :srcset: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 92-94 Plot predictions ~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 94-107 .. code-block:: default def lines(i): return (0, (i + 3, 1, 1, 1)) for i, pred in enumerate(predictions): color = "b" if model.labels[i] == 0: color = "r" plt.plot(pred, color=color, linestyle=lines(i)) plt.show() .. image-sg:: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_002.png :alt: plot moe burgers :srcset: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 108-110 Plot local models ~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 110-118 .. code-block:: default plt.subplot(121) for i, pred in enumerate(local_pred_0): plt.plot(pred, color="r", linestyle=lines(i)) plt.subplot(122) for i, pred in enumerate(local_pred_1): plt.plot(pred, color="b", linestyle=lines(i)) plt.show() .. image-sg:: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_003.png :alt: plot moe burgers :srcset: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 119-121 Plot selected predictions and exact curves ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 121-132 .. code-block:: default for i in [ 0, int(dataset.n_samples / 4), int(dataset.n_samples * 2 / 4), int(dataset.n_samples * 3 / 4), -1, ]: plt.plot(outputs[i], color="r") plt.plot(predictions[i], color="b", linestyle=":") plt.show() .. image-sg:: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_004.png :alt: plot moe burgers :srcset: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_004.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 133-135 Plot components ~~~~~~~~~~~~~~~ .. GENERATED FROM PYTHON SOURCE LINES 135-143 .. code-block:: default local_models = model.regress_models plt.subplot(121) plt.plot(local_models[0].transformer["outputs"].components) plt.title("1st local model") plt.subplot(122) plt.plot(local_models[1].transformer["outputs"].components) plt.title("2nd local model") plt.show() .. image-sg:: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_005.png :alt: 1st local model, 2nd local model :srcset: /examples/mlearning/dimension_reduction/images/sphx_glr_plot_moe_burgers_005.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 1.546 seconds) .. _sphx_glr_download_examples_mlearning_dimension_reduction_plot_moe_burgers.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_moe_burgers.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_moe_burgers.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_