Prepara i dati
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 51 di 58.
Un modello legge solo righe di numeri complete. Nei dati dei pinguini ci sono valori mancanti e due colonne di testo, quindi ogni colonna segue un percorso:
Le lacune di testo ricevono la parola "unknown": un pinguino di sesso non registrato ottiene una propria colonna invece di una supposizione.
text_steps = make_pipeline(
SimpleImputer(strategy="constant", fill_value="unknown"),
OneHotEncoder())Adatta le corsie solo sulle righe di addestramento. Una mediana che ha visto i pinguini di test causerebbe una fuga di dati nell'addestramento.
Sfida
MedioAi pinguini servono le corsie dell’immagine. Il codice iniziale li suddivide e legge un numero di riga.
- Crea
prep, unColumnTransformerche invianumberslungo la corsia dei numeri etextlungo la corsia del testo. - Adattalo alle righe di addestramento e trasformale con una sola chiamata.
- Stampa la dimensione e i valori mancanti prima della trasformazione, la dimensione dopo, poi quella riga preparata, con 2 decimali.
Per un’altra colonia e la riga 3:
Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12 0.47 -0.83 -0.6 0. 1. 0. 0. 1. 0. ]La riga 14 è un pinguino che nessuno è riuscito a misurare. In cosa si trasforma?
Provalo tu
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
# La colonia di Meet the Penguins, le sue caratteristiche e la sua etichetta
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
# Prima suddividi i dati: i pinguini del set di test restano da parte fino a Ship the Model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(input())
# Scrivi il tuo codice qui sotto
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Apprendimento supervisionato
1Il tuo primo modello
Imparare dagli esempiInsiemi di addestramento e testAdattare e prevedereValutare un modelloRiepilogo: Ordinatore di semi4Regressione logistica
Previsioni sì o noLa soglia decisionaleI pesi come evidenzePiù classiRiepilogo: filtro antispam2Vicini più prossimi
Come decide k-NNScegliere kConfini decisionaliNormalizzare le scale per i viciniRiepilogo: vicini del vino5Misurare i classificatori
La matrice di confusionePrecisione e richiamoIl punteggio F1Classi sbilanciateCurve ROCRiepilogo: test di screening8Convalida incrociata
Validazione K-foldConfronto equo tra modelliRicerca a grigliaRiepilogo: riparazioni di skateboard11Progetto: specie di pinguini
Incontra i pinguiniPrepara i datiScegli un modelloOttimizza il miglioreDistribuisci il modello3Regressione lineare
Prevedere numeriPiù caratteristicheMisurare gli erroriGrafici dei residuiRiepilogo: noleggio di biciclette6Alberi decisionali
Gli alberi fanno domandeLeggere un alberoProfondità dell’alberoImportanza delle caratteristicheRiepilogo: decisioni sui prestitiEsercitati da solo: Compilatore Python online