Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Effiziente Datenvorverarbeitung mit Pipelines | Pipelines
ML-Einführung Mit Scikit-Learn

bookEffiziente Datenvorverarbeitung mit Pipelines

Mit der Möglichkeit, Spalten separat mit der Funktion make_column_transformer zu transformieren, besteht der nächste Schritt darin, Pipelines zu erstellen. Eine Pipeline ist ein Container, der Vorverarbeitungsschritte organisiert und diese sequenziell anwendet.

Eine Pipeline in Scikit-learn kann entweder mit dem Konstruktor der Pipeline-Klasse oder mit der Funktion make_pipeline aus dem Modul sklearn.pipeline erstellt werden. In diesem Kurs liegt der Fokus auf make_pipeline, da diese Methode einfacher anzuwenden ist.

Es genügt, alle Transformer als Argumente an eine Funktion zu übergeben. Das Erstellen von Pipelines ist so einfach.

Wenn jedoch die Methode .fit_transform(X) am Pipeline-Objekt aufgerufen wird, wird .fit_transform(X) auf jeden Transformer innerhalb der Pipeline angewendet. Wenn bestimmte Spalten unterschiedlich behandelt werden sollen, sollte ein ColumnTransformer verwendet und an make_pipeline() übergeben werden.

Erstellen Sie eine Pipeline unter Verwendung derselben Datei wie im vorherigen Kapitel. Die Pipeline sollte Encoder für kategoriale Merkmale zusammen mit SimpleImputer enthalten. Da der Datensatz sowohl nominale als auch ordinale Merkmale umfasst, verwenden Sie einen ColumnTransformer, um diese separat zu verarbeiten.

1234567891011121314151617
import 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))
copy
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain what each step in the pipeline is doing?

What is the difference between OneHotEncoder and OrdinalEncoder?

Why do we use SimpleImputer with the 'most_frequent' strategy here?

Awesome!

Completion rate improved to 3.13

bookEffiziente Datenvorverarbeitung mit Pipelines

Swipe um das Menü anzuzeigen

Mit der Möglichkeit, Spalten separat mit der Funktion make_column_transformer zu transformieren, besteht der nächste Schritt darin, Pipelines zu erstellen. Eine Pipeline ist ein Container, der Vorverarbeitungsschritte organisiert und diese sequenziell anwendet.

Eine Pipeline in Scikit-learn kann entweder mit dem Konstruktor der Pipeline-Klasse oder mit der Funktion make_pipeline aus dem Modul sklearn.pipeline erstellt werden. In diesem Kurs liegt der Fokus auf make_pipeline, da diese Methode einfacher anzuwenden ist.

Es genügt, alle Transformer als Argumente an eine Funktion zu übergeben. Das Erstellen von Pipelines ist so einfach.

Wenn jedoch die Methode .fit_transform(X) am Pipeline-Objekt aufgerufen wird, wird .fit_transform(X) auf jeden Transformer innerhalb der Pipeline angewendet. Wenn bestimmte Spalten unterschiedlich behandelt werden sollen, sollte ein ColumnTransformer verwendet und an make_pipeline() übergeben werden.

Erstellen Sie eine Pipeline unter Verwendung derselben Datei wie im vorherigen Kapitel. Die Pipeline sollte Encoder für kategoriale Merkmale zusammen mit SimpleImputer enthalten. Da der Datensatz sowohl nominale als auch ordinale Merkmale umfasst, verwenden Sie einen ColumnTransformer, um diese separat zu verarbeiten.

1234567891011121314151617
import 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))
copy
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
some-alt