Repaso: prueba de detección
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 26 de 58.
Desafío
Intermedio¿Recuerdas la celda de casos no detectados con la que empezó este capítulo? Una clínica analiza muestras de tejido para detectar cáncer, y no detectar una muestra maligna es el peor error. El programa lee la sensibilidad que necesita la clínica; el código inicial carga y escala las muestras (1 significa maligno) y enumera los thresholds, empezando por el más estricto.
- Entrena una regresión logística e imprime su AUC.
- Encuentra el primer umbral cuya sensibilidad alcanza el valor necesario.
- En ese umbral, imprime los recuentos y la precisión, como se muestra a continuación.
Para otra clínica y 0.9:
AUC: 0.981
Threshold: 0.4
Caught 47 of 51 malignant samples
False alarms: 2
Precision: 0.959Pruébalo tú mismo
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, recall_score, precision_score, confusion_matrix
# La sensibilidad que necesita la clínica, como 0.95
needed = float(input())
# Muestras de tejido: 1 en y significa maligno, el caso que el cribado debe detectar
cancer = load_breast_cancer()
X = cancer.data
y = 1 - cancer.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0, stratify=y)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# Umbrales que se probarán, empezando por el más estricto
thresholds = [0.5, 0.4, 0.3, 0.2, 0.1, 0.05]
# Escribe tu código a continuación
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