Efficiënte Gegevensvoorverwerking met Pipelines
Veeg om het menu te tonen
Met de mogelijkheid om kolommen afzonderlijk te transformeren met de functie make_column_transformer, is de volgende stap het bouwen van pipelines. Een pipeline is een container die preprocessingsstappen organiseert en deze achtereenvolgens toepast.
Een pipeline in Scikit-learn kan worden gemaakt met behulp van de Pipeline class constructor of de make_pipeline functie uit de sklearn.pipeline module. In deze cursus ligt de focus op make_pipeline, omdat deze eenvoudiger toe te passen is.
Het enige wat nodig is, is om alle transformers als argumenten aan een functie door te geven. Pipelines maken is zo eenvoudig.
Wanneer je echter de methode .fit_transform(X) aanroept op het Pipeline-object, wordt .fit_transform(X) toegepast op elke transformer binnen de pipeline, dus als je sommige kolommen anders wilt behandelen, moet je een ColumnTransformer gebruiken en deze doorgeven aan make_pipeline().
Een pipeline opbouwen met hetzelfde bestand als in het vorige hoofdstuk. De pipeline bevat encoders voor categorische kenmerken samen met SimpleImputer. Omdat de dataset zowel nominale als ordinale kenmerken bevat, gebruik maken van een ColumnTransformer om deze apart te verwerken.
1234567891011121314151617import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.