Menu
CoddyTech

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 :

Huit e-mails représentés par des barres indiquant leur probabilité d’être du spam, de 0.02 pour Maman à 0.97 pour WIN NOW. Les barres au-dessus d’une ligne pointillée à 0.5 sont rouges : spam

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) :

Soixante réservations représentées par des points à 0 (honorées) et 1 (annulées) en fonction du nombre de jours à l’avance, et une courbe en S orange qui monte de 0.07 à 0.93. Elle indique 0.09 à 3 jours et 0.72 à 40 jours

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.

challenge icon

Défi

Moyen

Un 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.

  1. Entraîne une LogisticRegression (max_iter=1000) sur les vents.
  2. Affiche la probabilité que le cerf-volant décolle pour chaque créneau, en pourcentage entier.
  3. 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 3

Essayez 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
quiz iconTestez-vous

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é

Entraînez-vous par vous-même : Compilateur Python en ligne