Menu
CoddyTech

Previsões de sim ou não

Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 16 de 58.

Este capítulo responde a perguntas de sim ou não com probabilidades. Ele termina com um filtro de spam que você cria, classificando e-mails assim:

Oito e-mails representados por barras com a probabilidade de serem spam, de 0.02 para Mamãe a 0.97 para GANHE AGORA. As barras acima de uma linha tracejada em 0.5 são vermelhas: spam

Uma reserva em um restaurante será cancelada? LogisticRegression aprende isso com 60 reservas anteriores: dias de antecedência da reserva e se foi cancelada (1) ou mantida (0):

Sessenta reservas representadas por pontos em 0 (mantida) e 1 (cancelada), em relação aos dias de antecedência da reserva, e uma curva em S laranja que sobe de 0.07 a 0.93. Ela indica 0.09 para 3 dias e 0.72 para 40 dias

from sklearn.linear_model import LogisticRegression

model = LogisticRegression(max_iter=1000)  # iterações suficientes para concluir o treinamento
model.fit(X, cancelled)  # X: dias de antecedência, uma coluna
print(np.round(model.predict_proba([[3], [40]]), 2))

Isso exibe:

[[0.91 0.09]
 [0.28 0.72]]

A linha de cada reserva contém a probabilidade da classe 0 e, em seguida, da classe 1. [:, 1] mantém as probabilidades da classe 1, que corresponde a um cancelamento.

Elas seguem um S: nunca abaixo de 0 ou acima de 1, como devem ser as probabilidades.

challenge icon

Desafio

Médio

Um clube de pipas reserva três horários de lançamento para amanhã. kites.csv contém 90 lançamentos anteriores: wind_kmh e flew, 1 se a pipa decolou. O programa lê a previsão de vento de cada horário em slots.

  1. Ajuste uma LogisticRegression (max_iter=1000) aos ventos.
  2. Imprima a chance de voo de cada horário, em porcentagem inteira.
  3. Imprima os voos esperados: a soma das chances (1 casa decimal).

Para outro clube:

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

Experimente você mesmo

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

# 90 lançamentos anteriores: o vento em km/h e flew (1 se a pipa decolou)
kites = pd.read_csv("kites.csv")
# Os três horários de lançamento de amanhã, conforme a previsão do vento
winds = []
for i in range(3):
    winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Aprendizado supervisionado

Pratique por conta própria: Compilador de Python online