El umbral de decisión
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 17 de 58.
predict dice que sí cuando la probabilidad supera 0.5, el umbral. Pero pasar por alto una pantalla defectuosa puede costar más que echarle un segundo vistazo. Baja el umbral:
Una falsa alarma es una pantalla correcta marcada. Elige tu propio umbral con una comparación:
proba = model.predict_proba(X_test)[:, 1]
flag = proba >= 0.3 # True: revisar esta pantallaMás bajo, detecta más casos reales y genera más falsas alarmas; más alto, lo contrario. Las probabilidades nunca cambian, solo el umbral.
Elígelo según lo que cueste cada error.
Desafío
IntermedioUna aerolínea vuelve a reservar a los pasajeros que probablemente perderán su conexión antes incluso de que aterricen. El código inicial ajusta un modelo con connections.csv y lee un umbral.
- Obtén las probabilidades de que los pasajeros de prueba pierdan su conexión.
- Para
0.5y después para el umbral, cuenta los pasajeros a los que se les vuelve a reservar, las pérdidas reales de conexión detectadas (del total de pérdidas) y las reservas innecesarias. - Imprime una línea por umbral.
Para otra aerolínea y 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 rebookingsPruébalo tú mismo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# Una fila por pasajero: tiempo de conexión y retraso del vuelo entrante en minutos, cambio de terminal (1 o 0), equipaje facturado; missed es 1 o 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())
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje supervisado
1Tu primer modelo
Aprender de ejemplosConjuntos de entrenamiento y pruebaAjustar y predecirEvaluar un modeloRepaso: clasificador de semillas4Regresión logística
Predicciones de sí o noEl umbral de decisiónLos pesos como evidenciaVarias clasesRepaso: filtro de spam2Vecinos más cercanos
Cómo decide k-NNCómo elegir kFronteras de decisiónEscalado para los vecinosRepaso: vecinos del vino5Medición de clasificadores
La matriz de confusiónPrecisión y exhaustividadLa puntuación F1Clases desequilibradasCurvas ROCRepaso: prueba de detección8Validación cruzada
Validación K-FoldComparación justa de modelosBúsqueda en cuadrículaRepaso: reparaciones de monopatines11Proyecto: especies de pingüinos
Conoce a los pingüinosPrepara los datosElige un modeloAjusta el modelo ganadorPublica el modelo3Regresión lineal
Predicción de númerosVarias característicasMedición de erroresGráficos de residuosRepaso: alquiler de bicicletas6Árboles de decisión
Los árboles hacen preguntasLeer un árbolProfundidad del árbolImportancia de las característicasRepaso: decisiones de préstamosPractica por tu cuenta: Compilador de Python online