Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Pre-elaborazione Efficiente Dei Dati con Pipeline | Pipelines
Introduzione al ML con Scikit-Learn

bookPre-elaborazione Efficiente Dei Dati con Pipeline

Con la possibilità di trasformare le colonne separatamente utilizzando la funzione make_column_transformer, il passo successivo è costruire delle pipeline. Una pipeline è un contenitore che organizza le fasi di pre-elaborazione e le applica sequenzialmente.

Una pipeline in Scikit-learn può essere creata utilizzando sia il costruttore della classe Pipeline sia la funzione make_pipeline dal modulo sklearn.pipeline. Questo corso si concentrerà su make_pipeline, in quanto è più semplice da applicare.

È sufficiente passare tutti i trasformatori come argomenti a una funzione. Creare pipeline è così semplice.

Tuttavia, quando si richiama il metodo .fit_transform(X) sull'oggetto Pipeline, viene applicato .fit_transform(X) a ogni trasformatore all'interno della pipeline; quindi, se si desidera trattare alcune colonne in modo diverso, è opportuno utilizzare un ColumnTransformer e passarlo a make_pipeline().

Costruire una pipeline utilizzando lo stesso file del capitolo precedente. La pipeline deve includere encoder per le caratteristiche categoriche insieme a SimpleImputer. Poiché il dataset contiene sia caratteristiche nominali che ordinali, utilizzare un ColumnTransformer per elaborarle separatamente.

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
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookPre-elaborazione Efficiente Dei Dati con Pipeline

Scorri per mostrare il menu

Con la possibilità di trasformare le colonne separatamente utilizzando la funzione make_column_transformer, il passo successivo è costruire delle pipeline. Una pipeline è un contenitore che organizza le fasi di pre-elaborazione e le applica sequenzialmente.

Una pipeline in Scikit-learn può essere creata utilizzando sia il costruttore della classe Pipeline sia la funzione make_pipeline dal modulo sklearn.pipeline. Questo corso si concentrerà su make_pipeline, in quanto è più semplice da applicare.

È sufficiente passare tutti i trasformatori come argomenti a una funzione. Creare pipeline è così semplice.

Tuttavia, quando si richiama il metodo .fit_transform(X) sull'oggetto Pipeline, viene applicato .fit_transform(X) a ogni trasformatore all'interno della pipeline; quindi, se si desidera trattare alcune colonne in modo diverso, è opportuno utilizzare un ColumnTransformer e passarlo a make_pipeline().

Costruire una pipeline utilizzando lo stesso file del capitolo precedente. La pipeline deve includere encoder per le caratteristiche categoriche insieme a SimpleImputer. Poiché il dataset contiene sia caratteristiche nominali che ordinali, utilizzare un ColumnTransformer per elaborarle separatamente.

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
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3
some-alt