.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/miscellaneous/plot_pipeline_display.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_miscellaneous_plot_pipeline_display.py: ================================================================= Displaying Pipelines ================================================================= The default configuration for displaying a pipeline in a Jupyter Notebook is `'diagram'` where `set_config(display='diagram')`. To deactivate HTML representation, use `set_config(display='text')`. To see more detailed steps in the visualization of the pipeline, click on the steps in the pipeline. .. GENERATED FROM PYTHON SOURCE LINES 13-17 .. code-block:: Python # Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause .. GENERATED FROM PYTHON SOURCE LINES 18-24 Displaying a Pipeline with a Preprocessing Step and Classifier ############################################################################### This section constructs a :class:`~sklearn.pipeline.Pipeline` with a preprocessing step, :class:`~sklearn.preprocessing.StandardScaler`, and classifier, :class:`~sklearn.linear_model.LogisticRegression`, and displays its visual representation. .. GENERATED FROM PYTHON SOURCE LINES 24-36 .. code-block:: Python from sklearn import set_config from sklearn.linear_model import LogisticRegression from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler steps = [ ("preprocessing", StandardScaler()), ("classifier", LogisticRegression()), ] pipe = Pipeline(steps) .. GENERATED FROM PYTHON SOURCE LINES 37-38 To visualize the diagram, the default is `display='diagram'`. .. GENERATED FROM PYTHON SOURCE LINES 38-41 .. code-block:: Python set_config(display="diagram") pipe # click on the diagram below to see the details of each step .. raw:: html
Pipeline(steps=[('preprocessing', StandardScaler()),
                    ('classifier', LogisticRegression())])
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.


.. GENERATED FROM PYTHON SOURCE LINES 42-43 To view the text pipeline, change to `display='text'`. .. GENERATED FROM PYTHON SOURCE LINES 43-46 .. code-block:: Python set_config(display="text") pipe .. rst-class:: sphx-glr-script-out .. code-block:: none Pipeline(steps=[('preprocessing', StandardScaler()), ('classifier', LogisticRegression())]) .. GENERATED FROM PYTHON SOURCE LINES 47-48 Put back the default display .. GENERATED FROM PYTHON SOURCE LINES 48-50 .. code-block:: Python set_config(display="diagram") .. GENERATED FROM PYTHON SOURCE LINES 51-58 Displaying a Pipeline Chaining Multiple Preprocessing Steps & Classifier ############################################################################### This section constructs a :class:`~sklearn.pipeline.Pipeline` with multiple preprocessing steps, :class:`~sklearn.preprocessing.PolynomialFeatures` and :class:`~sklearn.preprocessing.StandardScaler`, and a classifier step, :class:`~sklearn.linear_model.LogisticRegression`, and displays its visual representation. .. GENERATED FROM PYTHON SOURCE LINES 58-71 .. code-block:: Python from sklearn.linear_model import LogisticRegression from sklearn.pipeline import Pipeline from sklearn.preprocessing import PolynomialFeatures, StandardScaler steps = [ ("standard_scaler", StandardScaler()), ("polynomial", PolynomialFeatures(degree=3)), ("classifier", LogisticRegression(C=2.0)), ] pipe = Pipeline(steps) pipe # click on the diagram below to see the details of each step .. raw:: html
Pipeline(steps=[('standard_scaler', StandardScaler()),
                    ('polynomial', PolynomialFeatures(degree=3)),
                    ('classifier', LogisticRegression(C=2.0))])
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.


.. GENERATED FROM PYTHON SOURCE LINES 72-78 Displaying a Pipeline and Dimensionality Reduction and Classifier ############################################################################### This section constructs a :class:`~sklearn.pipeline.Pipeline` with a dimensionality reduction step, :class:`~sklearn.decomposition.PCA`, a classifier, :class:`~sklearn.svm.SVC`, and displays its visual representation. .. GENERATED FROM PYTHON SOURCE LINES 78-87 .. code-block:: Python from sklearn.decomposition import PCA from sklearn.pipeline import Pipeline from sklearn.svm import SVC steps = [("reduce_dim", PCA(n_components=4)), ("classifier", SVC(kernel="linear"))] pipe = Pipeline(steps) pipe # click on the diagram below to see the details of each step .. raw:: html
Pipeline(steps=[('reduce_dim', PCA(n_components=4)),
                    ('classifier', SVC(kernel='linear'))])
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.


.. GENERATED FROM PYTHON SOURCE LINES 88-94 Displaying a Complex Pipeline Chaining a Column Transformer ############################################################################### This section constructs a complex :class:`~sklearn.pipeline.Pipeline` with a :class:`~sklearn.compose.ColumnTransformer` and a classifier, :class:`~sklearn.linear_model.LogisticRegression`, and displays its visual representation. .. GENERATED FROM PYTHON SOURCE LINES 94-130 .. code-block:: Python import numpy as np from sklearn.compose import ColumnTransformer from sklearn.impute import SimpleImputer from sklearn.linear_model import LogisticRegression from sklearn.pipeline import Pipeline, make_pipeline from sklearn.preprocessing import OneHotEncoder, StandardScaler numeric_preprocessor = Pipeline( steps=[ ("imputation_mean", SimpleImputer(missing_values=np.nan, strategy="mean")), ("scaler", StandardScaler()), ] ) categorical_preprocessor = Pipeline( steps=[ ( "imputation_constant", SimpleImputer(fill_value="missing", strategy="constant"), ), ("onehot", OneHotEncoder(handle_unknown="ignore")), ] ) preprocessor = ColumnTransformer( [ ("categorical", categorical_preprocessor, ["state", "gender"]), ("numerical", numeric_preprocessor, ["age", "weight"]), ] ) pipe = make_pipeline(preprocessor, LogisticRegression(max_iter=500)) pipe # click on the diagram below to see the details of each step .. raw:: html
Pipeline(steps=[('columntransformer',
                     ColumnTransformer(transformers=[('categorical',
                                                      Pipeline(steps=[('imputation_constant',
                                                                       SimpleImputer(fill_value='missing',
                                                                                     strategy='constant')),
                                                                      ('onehot',
                                                                       OneHotEncoder(handle_unknown='ignore'))]),
                                                      ['state', 'gender']),
                                                     ('numerical',
                                                      Pipeline(steps=[('imputation_mean',
                                                                       SimpleImputer()),
                                                                      ('scaler',
                                                                       StandardScaler())]),
                                                      ['age', 'weight'])])),
                    ('logisticregression', LogisticRegression(max_iter=500))])
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.


.. GENERATED FROM PYTHON SOURCE LINES 131-137 Displaying a Grid Search over a Pipeline with a Classifier ############################################################################### This section constructs a :class:`~sklearn.model_selection.GridSearchCV` over a :class:`~sklearn.pipeline.Pipeline` with :class:`~sklearn.ensemble.RandomForestClassifier` and displays its visual representation. .. GENERATED FROM PYTHON SOURCE LINES 137-184 .. code-block:: Python import numpy as np from sklearn.compose import ColumnTransformer from sklearn.ensemble import RandomForestClassifier from sklearn.impute import SimpleImputer from sklearn.model_selection import GridSearchCV from sklearn.pipeline import Pipeline, make_pipeline from sklearn.preprocessing import OneHotEncoder, StandardScaler numeric_preprocessor = Pipeline( steps=[ ("imputation_mean", SimpleImputer(missing_values=np.nan, strategy="mean")), ("scaler", StandardScaler()), ] ) categorical_preprocessor = Pipeline( steps=[ ( "imputation_constant", SimpleImputer(fill_value="missing", strategy="constant"), ), ("onehot", OneHotEncoder(handle_unknown="ignore")), ] ) preprocessor = ColumnTransformer( [ ("categorical", categorical_preprocessor, ["state", "gender"]), ("numerical", numeric_preprocessor, ["age", "weight"]), ] ) pipe = Pipeline( steps=[("preprocessor", preprocessor), ("classifier", RandomForestClassifier())] ) param_grid = { "classifier__n_estimators": [200, 500], "classifier__max_features": ["auto", "sqrt", "log2"], "classifier__max_depth": [4, 5, 6, 7, 8], "classifier__criterion": ["gini", "entropy"], } grid_search = GridSearchCV(pipe, param_grid=param_grid, n_jobs=1) grid_search # click on the diagram below to see the details of each step .. raw:: html
GridSearchCV(estimator=Pipeline(steps=[('preprocessor',
                                            ColumnTransformer(transformers=[('categorical',
                                                                             Pipeline(steps=[('imputation_constant',
                                                                                              SimpleImputer(fill_value='missing',
                                                                                                            strategy='constant')),
                                                                                             ('onehot',
                                                                                              OneHotEncoder(handle_unknown='ignore'))]),
                                                                             ['state',
                                                                              'gender']),
                                                                            ('numerical',
                                                                             Pipeline(steps=[('imputation_mean',
                                                                                              SimpleImputer()),
                                                                                             ('scaler',
                                                                                              StandardScaler())]),
                                                                             ['age',
                                                                              'weight'])])),
                                           ('classifier',
                                            RandomForestClassifier())]),
                 n_jobs=1,
                 param_grid={'classifier__criterion': ['gini', 'entropy'],
                             'classifier__max_depth': [4, 5, 6, 7, 8],
                             'classifier__max_features': ['auto', 'sqrt', 'log2'],
                             'classifier__n_estimators': [200, 500]})
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.


.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.102 seconds) .. _sphx_glr_download_auto_examples_miscellaneous_plot_pipeline_display.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/scikit-learn/scikit-learn/main?urlpath=lab/tree/notebooks/auto_examples/miscellaneous/plot_pipeline_display.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_pipeline_display.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_pipeline_display.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_pipeline_display.zip ` .. include:: plot_pipeline_display.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_