Menu
CoddyTech

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:

Diagrama de un pingüino de entrenamiento. Sus cuatro medidas pasan por un carril azul, se completan con la mediana y luego se escalan, y salen como -0.79, 0.00, -0.05 y -0.90. Su isla, Biscoe, y su sexo faltante pasan por un carril naranja, se completan con «desconocido» y luego se convierten en codificación one-hot, y salen como seis columnas con valores 0 o 1

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.

challenge icon

Desafío

Intermedio

Los pingüinos necesitan los carriles de la imagen. El código inicial los divide y lee un número de fila.

  1. Construye prep, un ColumnTransformer que envía numbers por el carril numérico y text por el carril de texto.
  2. Ajústalo con las filas de entrenamiento y transfórmalas en una sola llamada.
  3. 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
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje supervisado

Practica por tu cuenta: Compilador de Python online