Menu
CoddyTech

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:

Un diagramma: sei animali domestici, X_train con il peso e la lunghezza delle orecchie accanto a y_train, tre gatti e tre cani, passano attraverso fit in un modello. Due nuovi animali domestici, X_new, passano attraverso predict, usando il modello, e ne escono come gatto e cane

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.

challenge icon

Sfida

Facile

L'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.

  1. Crea un modello dei k vicini più prossimi e addestralo sugli uccelli di addestramento.
  2. Prevedi ogni uccello avvistato con una sola chiamata.
  3. Stampa una riga per uccello, come sotto.

Per tre uccelli durante un'altra passeggiata:

Bird 1: sparrow
Bird 2: blackbird
Bird 3: robin

Provalo 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
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