Prédictions oui ou non
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 16 sur 58.
Ce chapitre répond à des questions par oui ou par non à l’aide de probabilités. Il se termine par un filtre anti-spam que tu construis et qui classe les e-mails comme ceci :
Une réservation au restaurant sera-t-elle annulée ? LogisticRegression l’apprend à partir de 60 réservations passées : le nombre de jours à l’avance, et si elles ont été annulées (1) ou honorées (0) :
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000) # assez d’itérations pour terminer l’apprentissage
model.fit(X, cancelled) # X : nombre de jours à l’avance, une seule colonne
print(np.round(model.predict_proba([[3], [40]]), 2))Cela affiche :
[[0.91 0.09]
[0.28 0.72]]La ligne de chaque réservation contient la probabilité de la classe 0, puis celle de la classe 1. [:, 1] conserve les probabilités de la classe 1, c’est-à-dire d’une annulation.
Elles suivent un S : jamais en dessous de 0 ni au-dessus de 1, comme il se doit pour des probabilités.
Défi
MoyenUn club de cerfs-volants réserve trois créneaux de lancement pour demain. kites.csv contient les données de 90 lancements passés : wind_kmh et flew, 1 si le cerf-volant a décollé. Le programme lit les prévisions de vent pour chaque créneau dans slots.
- Entraîne une
LogisticRegression(max_iter=1000) sur les vents. - Affiche la probabilité que le cerf-volant décolle pour chaque créneau, en pourcentage entier.
- Affiche le nombre de vols prévu : la somme des probabilités (1 décimale).
Pour un autre club :
6 km/h: 9% chance the kite flies
18 km/h: 64% chance the kite flies
30 km/h: 97% chance the kite flies
Expected flights: 1.7 of 3Essayez vous-même
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
# 90 lancements passés : le vent en km/h et flew (1 si le cerf-volant a décollé)
kites = pd.read_csv("kites.csv")
# Les trois créneaux de lancement de demain, selon les prévisions de vent
winds = []
for i in range(3):
winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})
# É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