Adattare e prevedere
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 3 di 58.
Ogni modello di scikit-learn funziona con due chiamate. fit studia le righe di addestramento con le relative etichette; predict assegna un'etichetta a righe che il modello non ha mai visto:
Il modello della prima lezione di questo percorso è k-nearest neighbors: assegna a una riga l'etichetta della riga di addestramento più vicina. Animali domestici in base al peso (kg) e alla lunghezza delle orecchie (cm):
from sklearn.neighbors import KNeighborsClassifier
X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))Questo stampa ['cat' 'dog']. Le nuove righe vengono inserite in una tabella, una riga per animale domestico.
Crea, addestra, predici: ogni modello in questa sezione segue questi tre passaggi.
Sfida
FacileL'app di un club di birdwatching identifica gli uccelli in base all'apertura alare e al peso. Il codice iniziale suddivide il file birds.csv del club e legge gli uccelli di stasera nella tabella spotted.
- Crea un modello dei k vicini più prossimi e addestralo sugli uccelli di addestramento.
- Prevedi ogni uccello avvistato con una sola chiamata.
- Stampa una riga per uccello, come sotto.
Per tre uccelli durante un'altra passeggiata:
Bird 1: sparrow
Bird 2: blackbird
Bird 3: robinProvalo tu
import pandas as pd
from sklearn.model_selection import train_test_split
# Una riga per ogni uccello a cui il club ha dato un nome: apertura alare in cm, peso in grammi
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Passeggiata di stasera: quanti uccelli, poi l'apertura alare e il peso di ciascuno
count = int(input())
spans = []
weights = []
for i in range(count):
spans.append(float(input()))
weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})
# 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