O limiar de decisão
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 17 de 58.
predict diz sim quando a probabilidade ultrapassa 0.5, o limiar. Mas deixar passar uma tela com defeito pode custar mais do que dar uma segunda olhada. Diminua o limiar:
Um falso alarme é uma tela sinalizada por engano. Escolha seu próprio limite usando uma comparação:
proba = model.predict_proba(X_test)[:, 1]
flag = proba >= 0.3 # True: verificar esta telaMais baixo, ele detecta mais casos reais e gera mais falsos alarmes; mais alto, ocorre o contrário. As chances nunca mudam, apenas o limite.
Escolha com base no custo de cada erro.
Desafio
MédioUma companhia aérea realoca passageiros com probabilidade de perder a conexão antes mesmo de eles pousarem. O código inicial ajusta um modelo usando connections.csv e lê um limiar.
- Obtenha as chances de os passageiros de teste perderem a conexão.
- Para 0.5 e, em seguida, para o limiar, conte os passageiros realocados, as perdas reais evitadas (de todas as perdas) e as realocações desnecessárias.
- Imprima uma linha por limiar.
Para outra companhia aérea e 0.25:
Threshold 0.5: 9 rebooked, 7 of 15 misses caught, 2 needless rebookings
Threshold 0.25: 21 rebooked, 13 of 15 misses caught, 8 needless rebookingsExperimente você mesmo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# Uma linha por passageiro: tempo de conexão e atraso do voo de chegada em minutos, troca de terminal (1 ou 0), bagagens despachadas; missed é 1 ou 0
trips = pd.read_csv("connections.csv")
features = ["layover_min", "delay_min", "terminal_change", "checked_bags"]
X_train, X_test, y_train, y_test = train_test_split(trips[features], trips["missed"], test_size=0.25, random_state=0)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
threshold = float(input())
# Escreva seu código abaixo
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
1Seu primeiro modelo
Aprendendo com exemplosConjuntos de treino e testeAjustar e preverAvaliar um modeloRecapitulação: classificador de sementes4Regressão logística
Previsões de sim ou nãoO limiar de decisãoPesos como evidênciasVárias classesRevisão: filtro de spam2Vizinhos Mais Próximos
Como o k-NN DecideEscolhendo kLimites de DecisãoEscalonamento para VizinhosRevisão: Vizinhos do Vinho5Avaliando Classificadores
A Matriz de ConfusãoPrecisão e RevocaçãoA Pontuação F1Classes DesbalanceadasCurvas ROCRecapitulação: Teste de Triagem8Validação Cruzada
Validação K-FoldComparando Modelos de Forma JustaBusca em GradeRevisão: Consertos de Skate11Projeto: Espécies de Pinguins
Conheça os PinguinsPrepare os DadosEscolha um ModeloAjuste o VencedorColoque o Modelo em Produção3Regressão Linear
Prevendo númerosVárias característicasMedindo errosGráficos de resíduosRevisão: aluguel de bicicletas6Árvores de Decisão
Árvores fazem perguntasLendo uma árvoreProfundidade da árvoreImportância das característicasRevisão: decisões de empréstimoPratique por conta própria: Compilador de Python online