Evaluar un modelo
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 4 de 58.
¿Es bueno un modelo? Lo indica su precisión, la proporción de filas de prueba que acierta. Compáralo con una conjetura perezosa:
El 78% de los préstamos de esta biblioteca se devolvieron a tiempo, así que responder «a tiempo» en todos los casos obtiene una puntuación de 0.78. Esa es la línea de base.
from sklearn.metrics import accuracy_score
pred = model.predict(X_test)
print(accuracy_score(y_test, pred))
print(model.score(X_test, y_test))
common = y_train.value_counts().index[0]
print((y_test == common).mean())Esto imprime 0.88, 0.88, 0.78. score predice y cuenta en una sola llamada; la línea base siempre responde con la etiqueta de entrenamiento más común.
Un modelo se gana su lugar solo si supera la línea base.
Desafío
FácilLos sensores de una apicultora vigilan 160 colmenas en hives.csv; swarm indica si cada colmena formó un enjambre. ¿Puede un sensor avisarle? El código inicial lee el nombre de un sensor y ajusta un modelo usando solo ese sensor.
- Muestra su precisión de prueba, redondeada a 3 decimales.
- Muestra la línea base e indica la etiqueta que siempre responde.
- Muestra si el modelo la supera.
Para otro apiario y weight_change_kg:
Model on weight_change_kg: 0.775
Always "no": 0.7
Beats the baseline: yesPruébalo tú mismo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# Una fila por colmena: sus sensores y si produjo un enjambre
hives = pd.read_csv("hives.csv")
sensor = input()
X = hives[[sensor]]
y = hives["swarm"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
model = KNeighborsClassifier()
model.fit(X_train, y_train)
# 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