Publica el modelo
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 54 de 58.
Los pingüinos de prueba han esperado durante todo el proyecto. Ajusta la canalización optimizada con las filas de entrenamiento y después evalúala una sola vez con los pingüinos de prueba: el número honesto.
Después, observa dónde falla. El modelo de una clínica clasifica a las personas como sanas, con resfriado o con gripe; las filas muestran la realidad y las columnas, sus predicciones:
Un pingüino nuevo es una tabla de una fila con las columnas de entrenamiento. predict lo identifica, y predict_proba(new).max() indica cuánta seguridad hay: la proporción de la clase ganadora; para k-NN, los vecinos que coinciden.
Desafío
IntermedioLa meta. model es tu canalización ajustada; el programa inicial lee un pingüino nuevo en new_penguin.
- Ajusta el modelo con las filas de entrenamiento. Imprime su precisión de prueba (3 decimales) y cuántos pingüinos de prueba clasificó correctamente.
- Dibuja la matriz de confusión de las predicciones de prueba en
axy muéstrala. - Indica quién es el pingüino nuevo y cuánta seguridad tiene el modelo, en porcentaje.
Para una colonia en otra estación:
Test accuracy: 0.960 (72 of 75 penguins)
New penguin: Gentoo (86% sure)y su matriz:
Después Coddy informa tus resultados. La estrella de Meet the Penguins medía 47.2, 18.0, 194 y 3650, en Dream, hembra. Ejecuta tu programa con ella: ¿quién es?
Pruébalo tú mismo
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import ConfusionMatrixDisplay
# La colonia de Meet the Penguins, sus características y su etiqueta
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
# De Prepare the Data: las dos vías
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])
# De Choose a Model and Tune the Winner: k-NN con k = 7
model = make_pipeline(prep, KNeighborsClassifier(n_neighbors=7))
# Un nuevo pingüino observado en el campo, en una tabla de una fila con las mismas columnas
new_penguin = pd.DataFrame({
"bill_length_mm": [float(input())],
"bill_depth_mm": [float(input())],
"flipper_length_mm": [float(input())],
"body_mass_g": [float(input())],
"island": [input()],
"sex": [input()],
})
fig, ax = plt.subplots()
ax.set_title("Test Penguins")
# 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