Pipeline
Γ¨ un oggetto molto utile che consente di concatenare piΓΉ trasformazioni di dati e modelli di machine learning in un'unica sequenza. Questo Γ¨ particolarmente utile quando si lavora con flussi di lavoro complessi che coinvolgono molteplici passaggi di pre-elaborazione dei dati e modelli di apprendimento automatico.
Lβoggetto Pipeline accetta in input un elenco di tuple, dove il primo valore di ciascuna tupla Γ¨ un identificatore stringa arbitrario, che possiamo utilizzare per accedere ai singoli elementi della pipeline, e il secondo elemento di ogni tupla Γ¨ un trasformatore o estimatore scikit-learn. I passi intermedi di una pipeline costituiscono i trasformatori scikit-learn e lβultimo passo Γ¨ un estimatore.
Ad esempio, immagina di dover costruire un modello di classificazione utilizzando un insieme di dati. Prima di addestrare il modello, potresti dover eseguire diverse operazioni di pre-elaborazione come la standardizzazione delle caratteristiche e la riduzione della dimensionalitΓ . Successivamente, potresti voler applicare un modello di classificazione come Support Vector Machine (SVM) per fare previsioni.
Ecco un esempio di come potresti utilizzare Pipeline
in scikit-learn per questo scopo:
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Carica il dataset (ad esempio il dataset Iris)
iris = load_iris()
X = iris.data
y = iris.target
# Dividi il dataset in set di addestramento e di test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Definisci i passaggi della pipeline
steps = [
('scaler', StandardScaler()), # Standardizzazione delle caratteristiche
('pca', PCA(n_components=2)), # Riduzione della dimensionalitΓ con PCA
('classifier', SVC()) # Modello di classificazione (Support Vector Machine)
]
# Crea la pipeline
pipeline = Pipeline(steps)
# Addestra il modello utilizzando la pipeline
pipeline.fit(X_train, y_train)
# Valuta il modello
accuracy = pipeline.score(X_test, y_test)
print("Accuracy:", accuracy)
In questo esempio, stiamo costruendo una pipeline per la classificazione utilizzando il dataset Iris. La pipeline include tre passaggi:
StandardScaler
: questo passaggio standardizza le caratteristiche rimuovendo la media e riducendo la varianza in modo che tutte le caratteristiche abbiano una varianza unitaria. Questo Γ¨ importante quando si utilizzano algoritmi sensibili alla scala delle caratteristiche, come le SVM.PCA
: questo passaggio esegue la Riduzione della DimensionalitΓ utilizzando lβanalisi delle componenti principali (PCA) per proiettare i dati in un nuovo spazio di dimensioni inferiori. In questo esempio, stiamo riducendo la dimensionalitΓ a 2 per facilitare la visualizzazione, ma in pratica il numero di componenti principali potrebbe essere scelto in modo piΓΉ accurato.SVC
: infine, applichiamo un modello di classificazione Support Vector Machine (SVM) per fare previsioni sul dataset.
Con la pipeline definita, possiamo addestrare il modello chiamando il metodo fit
e valutarlo chiamando il metodo score
utilizzando i dati di test. La pipeline si occupa automaticamente di eseguire tutte le trasformazioni di dati necessarie prima di addestrare il modello, rendendo il flusso di lavoro molto piΓΉ pulito e organizzato.