Comment k-NN prend ses décisions
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 6 sur 58.
Ce chapitre vous fait découvrir k-NN. À la fin, vous saurez tracer sa carte pour n’importe quelles données, comme celle-ci pour les piments doux et forts :
Pour étiqueter un nouveau piment, les k plus proches voisins trouvent les k piments d’entraînement les plus proches de celui-ci, puis votent :
Le plus proche signifie la distance la plus petite, celle que tu as rencontrée dans la section 2. Tu choisis k :
model = KNeighborsClassifier(n_neighbors=5)n_neighbors est k, 5 sauf indication contraire. Avec deux classes, un k impair ne peut jamais produire d'égalité.
Défi
FacileUn club d’astronomie classe les étoiles de stars.csv en naines et géantes selon leur température et leur magnitude. Le code de départ lit une nouvelle étoile et k.
- Trouve à la main les k étoiles les plus proches : ajoute une colonne
distance, puis trie. - Affiche combien d’entre elles sont des géantes, puis la gagnante du vote.
- Vérifie le résultat avec un modèle k-NN de ce k, entraîné sur toutes les étoiles.
Pour une étoile et k = 5 d’un autre club :
Giants among the nearest 5: 4
By hand: giant
Model: giantEssayez vous-même
import numpy as np
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier
# Une ligne par étoile : température en milliers de kelvins, magnitude (plus elle est faible, plus l’étoile est brillante), naine ou géante
stars = pd.read_csv("stars.csv")
X = stars[["temp_kK", "magnitude"]]
y = stars["type"]
# La nouvelle étoile et k
temp = float(input())
mag = float(input())
k = int(input())
new_star = pd.DataFrame({"temp_kK": [temp], "magnitude": [mag]})
# É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