.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/mlearning/transformer/plot_scaler.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_transformer_plot_scaler.py: Scaler example ============== In this example, we will create a scaler to transform data. .. GENERATED FROM PYTHON SOURCE LINES 29-50 .. code-block:: default from __future__ import absolute_import, division, print_function, unicode_literals from builtins import zip import matplotlib.pyplot as plt from future import standard_library from numpy import linspace from numpy import max as npmax from numpy import mean from numpy import min as npmin from numpy import sin, std from gemseo.api import configure_logger from gemseo.mlearning.transform.scaler.min_max_scaler import MinMaxScaler from gemseo.mlearning.transform.scaler.scaler import Scaler from gemseo.mlearning.transform.scaler.standard_scaler import StandardScaler configure_logger() standard_library.install_aliases() .. GENERATED FROM PYTHON SOURCE LINES 51-53 Create dataset -------------- .. GENERATED FROM PYTHON SOURCE LINES 53-57 .. code-block:: default x = linspace(0, 1, 100) data = (x < 0.3) * 5 * x + (x > 0.3) * sin(20 * x) .. GENERATED FROM PYTHON SOURCE LINES 58-60 Create transformers --------------------------- .. GENERATED FROM PYTHON SOURCE LINES 60-65 .. code-block:: default same_scaler = Scaler() scaler = Scaler(offset=-2, coefficient=0.5) min_max_scaler = MinMaxScaler() standard_scaler = StandardScaler() .. GENERATED FROM PYTHON SOURCE LINES 66-68 Transform data -------------- .. GENERATED FROM PYTHON SOURCE LINES 68-73 .. code-block:: default same_data = same_scaler.fit_transform(data) scaled_data = scaler.fit_transform(data) min_max_scaled_data = min_max_scaler.fit_transform(data) standard_scaled_data = standard_scaler.fit_transform(data) .. GENERATED FROM PYTHON SOURCE LINES 74-76 Compute jacobian ---------------- .. GENERATED FROM PYTHON SOURCE LINES 76-83 .. code-block:: default jac_same = same_scaler.compute_jacobian(data) jac_scaled = scaler.compute_jacobian(data) jac_min_max_scaled = min_max_scaler.compute_jacobian(data) jac_standard_scaled = standard_scaler.compute_jacobian(data) print(jac_standard_scaled) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [[1.42827181 0. 0. ... 0. 0. 0. ] [0. 1.42827181 0. ... 0. 0. 0. ] [0. 0. 1.42827181 ... 0. 0. 0. ] ... [0. 0. 0. ... 1.42827181 0. 0. ] [0. 0. 0. ... 0. 1.42827181 0. ] [0. 0. 0. ... 0. 0. 1.42827181]] .. GENERATED FROM PYTHON SOURCE LINES 84-92 Print properties ---------------- We may print the min, max, mean and standard deviation of the transformed data. This reveals some of the properties of the different scalers: The scaler without arguments has an offset of 0 and a scaling coefficient of 1, which turns this transformer into the identity function. The min-max scaler has a min of 0 and a max of 1. The standard scaler has a mean of zero and a standard deviation of 1. .. GENERATED FROM PYTHON SOURCE LINES 92-109 .. code-block:: default names = [ "Original data ", "Same scaler ", "Scaler(-2, 0.5)", "Min-max scaler ", "Standard scaler", ] print("{:^18}{:^8}{:^8}{:^8}{:^8}".format("", "min", "max", "mean", "std")) for name, y in zip( names, [data, same_data, scaled_data, min_max_scaled_data, standard_scaled_data] ): print( "{} : {: .3f}, {: .3f}, {: .3f}, {: .3f}".format( name, npmin(y), npmax(y), mean(y), std(y) ), ) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none min max mean std Original data : -0.996, 1.465, 0.251, 0.700 Same scaler : -0.996, 1.465, 0.251, 0.700 Scaler(-2, 0.5) : -2.498, -1.268, -1.874, 0.350 Min-max scaler : 0.000, 1.000, 0.507, 0.285 Standard scaler : -1.782, 1.733, 0.000, 1.000 .. GENERATED FROM PYTHON SOURCE LINES 110-112 Plot data --------- .. GENERATED FROM PYTHON SOURCE LINES 112-119 .. code-block:: default plt.plot(x, data, label="Original") plt.plot(x, same_data, label="Identity scaled", linestyle="--") plt.plot(x, scaled_data, label="Scaled(-2, 0.5)") plt.plot(x, min_max_scaled_data, label="Min-max") plt.plot(x, standard_scaled_data, label="Standard") plt.legend() plt.show() .. image:: /examples/mlearning/transformer/images/sphx_glr_plot_scaler_001.png :alt: plot scaler :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.114 seconds) .. _sphx_glr_download_examples_mlearning_transformer_plot_scaler.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_scaler.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_scaler.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_