Ajuster et prédire
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 3 sur 58.
Chaque modèle scikit-learn fonctionne en deux appels. fit étudie les lignes d’entraînement avec leurs étiquettes ; predict étiquette les lignes que le modèle n’a jamais vues :
Le modèle de la première leçon de ce parcours est celui des k plus proches voisins : il attribue une étiquette à une ligne en fonction des lignes d’entraînement qui en sont les plus proches. Animaux domestiques selon leur poids (kg) et la longueur de leurs oreilles (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]]))Cela affiche ['cat' 'dog']. Les nouvelles lignes sont ajoutées sous forme de tableau, une ligne par animal.
Créer, ajuster, prédire : chaque modèle de cette section suit ces trois étapes.
Défi
FacileL’application d’un club d’observation des oiseaux identifie les oiseaux à partir de leur envergure et de leur poids. Le code de départ sépare le fichier birds.csv du club et lit les oiseaux de la sortie de ce soir dans le tableau spotted.
- Crée un modèle des k plus proches voisins et entraîne-le sur les oiseaux d’entraînement.
- Prédisez tous les oiseaux observés en un seul appel.
- Affiche une ligne par oiseau, comme ci-dessous.
Pour trois oiseaux lors d’une autre sortie :
Bird 1: sparrow
Bird 2: blackbird
Bird 3: robinEssayez vous-même
import pandas as pd
from sklearn.model_selection import train_test_split
# Une ligne par oiseau identifié par le club : envergure en cm, poids en grammes
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)
# Promenade de ce soir : le nombre d’oiseaux, puis l’envergure et le poids de chacun
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})
# Écrivez votre code ci-dessous
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage supervisé
1Votre premier modèle
Apprendre à partir d’exemplesJeux d’entraînement et de testAjuster et prédireÉvaluer un modèleRécapitulatif : trieur de graines4Régression logistique
Prédictions oui ou nonLe seuil de décisionLes poids comme indicesPlusieurs classesRécapitulatif : filtre anti-spam2Plus proches voisins
Comment k-NN prend ses décisionsChoisir kFrontières de décisionMettre les voisins à l’échelleRécapitulatif : voisins et vin5Évaluer les classificateurs
La matrice de confusionPrécision et rappelLe score F1Classes déséquilibréesCourbes ROCRécapitulatif : test de dépistage8Validation croisée
Validation K-foldComparer les modèles équitablementRecherche par grilleRécapitulatif : réparations de skateboard11Projet : espèces de manchots
À la rencontre des manchotsPréparer les donnéesChoisir un modèleOptimiser le modèle gagnantDéployer le modèle3Régression linéaire
Prédire des nombresPlusieurs caractéristiquesMesurer les erreursGraphiques des résidusRécapitulatif : locations de vélos6Arbres de décision
Les arbres posent des questionsLire un arbreProfondeur de l’arbreImportance des caractéristiquesRécapitulatif : décisions de prêtEntraînez-vous par vous-même : Compilateur Python en ligne