Menu
CoddyTech

Previsioni sì o no

Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 16 di 58.

In questo capitolo risponderai a domande con risposta sì o no usando le probabilità. Si conclude con un filtro antispam che costruirai, classificando le email così:

Otto email rappresentate da barre che indicano la probabilità che siano spam, da 0.02 per Mom a 0.97 per WIN NOW. Le barre sopra una linea tratteggiata a 0.5 sono rosse: spam

Una prenotazione al ristorante verrà cancellata? LogisticRegression lo impara da 60 prenotazioni passate: giorni di anticipo con cui è stata effettuata la prenotazione e cancellata (1) o mantenuta (0):

Sessanta prenotazioni come punti a 0 (mantenute) e 1 (cancellate) rispetto ai giorni di anticipo con cui è stata effettuata la prenotazione, e una curva a S arancione che sale da 0.07 a 0.93. Segna 0.09 a 3 giorni e 0.72 a 40 giorni

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(max_iter=1000)  # passi sufficienti per completare l'addestramento
model.fit(X, cancelled)  # X: giorni di anticipo, una colonna
print(np.round(model.predict_proba([[3], [40]]), 2))

Questo stampa:

[[0.91 0.09]
 [0.28 0.72]]

Ogni riga di prenotazione contiene la probabilità della classe 0, poi quella della classe 1. [:, 1] mantiene le probabilità della classe 1, cioè una cancellazione.

Seguono una S: mai al di sotto di 0 o al di sopra di 1, come dovrebbero essere le probabilità.

challenge icon

Sfida

Medio

Un club di aquiloni prenota tre fasce orarie di lancio per domani. kites.csv contiene 90 lanci passati: wind_kmh e flew, 1 se l’aquilone si è sollevato da terra. Il programma legge il vento previsto per ogni fascia oraria in slots.

  1. Adatta una LogisticRegression (max_iter=1000) ai dati sul vento.
  2. Stampa la probabilità di volo per ogni fascia oraria, in percentuale intera.
  3. Stampa i voli previsti: la somma delle probabilità (1 decimale).

Per un altro 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

Provalo tu

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression

# 90 lanci precedenti: il vento in km/h e flew (1 se l'aquilone si è alzato in volo)
kites = pd.read_csv("kites.csv")
# Le tre fasce orarie di lancio di domani, in base al vento previsto
winds = []
for i in range(3):
    winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})

# 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