Menu
CoddyTech

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:

Un diagramma di un pinguino di addestramento. Le sue quattro misurazioni seguono un percorso blu, vengono riempite con la mediana e poi ridimensionate, e diventano -0.79, 0.00, -0.05 e -0.90. La sua isola Biscoe e il sesso mancante seguono un percorso arancione, vengono riempiti con «unknown» e poi codificati one-hot, e diventano sei colonne con 0 o 1

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.

challenge icon

Sfida

Medio

Ai pinguini servono le corsie dell’immagine. Il codice iniziale li suddivide e legge un numero di riga.

  1. Crea prep, un ColumnTransformer che invia numbers lungo la corsia dei numeri e text lungo la corsia del testo.
  2. Adattalo alle righe di addestramento e trasformale con una sola chiamata.
  3. 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
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento supervisionato

Esercitati da solo: Compilatore Python online