Prepara los datos
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 51 de 58.
Un modelo solo lee filas completas de números. Los pingüinos tienen valores faltantes y dos columnas de texto, así que cada columna pasa por un carril:
A los valores de texto faltantes se les asigna la palabra "unknown": un pingüino cuyo sexo no se registró obtiene su propia columna en lugar de una suposición.
text_steps = make_pipeline(
SimpleImputer(strategy="constant", fill_value="unknown"),
OneHotEncoder())Ajusta las columnas solo con las filas de entrenamiento. Una mediana que haya visto los pingüinos de prueba los filtraría al entrenamiento.
Desafío
IntermedioLos pingüinos necesitan los carriles de la imagen. El código inicial los divide y lee un número de fila.
- Construye
prep, unColumnTransformerque envíanumberspor el carril numérico ytextpor el carril de texto. - Ajústalo con las filas de entrenamiento y transfórmalas en una sola llamada.
- Imprime el tamaño y los valores faltantes antes, el tamaño después y, luego, esa fila preparada, con 2 decimales.
Para otra colonia y la fila 3:
Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12 0.47 -0.83 -0.6 0. 1. 0. 0. 1. 0. ]La fila 14 corresponde a un pingüino que nadie pudo medir. ¿En qué se convierte?
Pruébalo tú mismo
import numpy as np
import pandas as pd
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
# 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"]
# Primero, divide los datos: los pingüinos de prueba se mantienen apartados hasta Ship the Model
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(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