Note
Click here to download the full example code or to run this example in your browser via Binder
Create Nested Pipelines in Neuraxle¶
You can create pipelines within pipelines using the composition design pattern.
This demonstrates how to create pipelines within pipelines, and how to access the steps and their attributes in the nested pipelines.
For more info, see the thread here.
import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from neuraxle.base import Identity
from neuraxle.pipeline import Pipeline
def main():
np.random.seed(42)
X = np.random.randint(5, size=(100, 5))
# Create and fit the pipeline:
pipeline = Pipeline([
StandardScaler(),
Identity(),
Pipeline([
Identity(),
Identity(), # Note: an Identity step is a step that does nothing.
Identity(), # We use it here for demonstration purposes.
Pipeline([
Identity(),
PCA(n_components=2)
])
])
])
pipeline, X_t = pipeline.fit_transform(X)
# Get the components:
pca_components = pipeline["Pipeline"]["Pipeline"][-1].get_wrapped_sklearn_predictor().components_
assert pca_components.shape == (2, 5)
# Discussion:
# https://stackoverflow.com/questions/28822756/getting-model-attributes-from-scikit-learn-pipeline/58359509#58359509
if __name__ == "__main__":
main()
Total running time of the script: ( 0 minutes 0.002 seconds)