Menu
CoddyTech

Prepare os Dados

Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 51 de 58.

Um modelo lê apenas linhas completas de números. Os pinguins têm lacunas e duas colunas de texto, então cada coluna segue por um caminho:

Um diagrama de um pinguim de treinamento. Suas quatro medidas seguem por um caminho azul, são preenchidas com a mediana e depois escaladas, e resultam em -0.79, 0.00, -0.05 e -0.90. Sua ilha Biscoe e seu sexo ausente seguem por um caminho laranja, são preenchidos com desconhecido e depois codificados one-hot, e resultam em seis colunas com 0 ou 1

Valores ausentes em colunas de texto recebem a palavra "unknown": um pinguim cujo sexo não foi registrado ganha sua própria coluna em vez de receber um palpite.

text_steps = make_pipeline(
    SimpleImputer(strategy="constant", fill_value="unknown"),
    OneHotEncoder())

Ajuste os transformadores apenas nas linhas de treinamento. Uma mediana que tenha levado em conta os pinguins de teste causaria vazamento de dados para o treinamento.

challenge icon

Desafio

Médio

Os pinguins precisam das faixas da imagem. O código inicial os separa e lê um número de linha.

  1. Crie prep, um ColumnTransformer que envia numbers pela faixa numérica e text pela faixa de texto.
  2. Ajuste-o às linhas de treinamento e transforme-as em uma única chamada.
  3. Imprima o tamanho e as lacunas antes, o tamanho depois e, em seguida, essa linha preparada, com 2 casas decimais.

Para outra colônia e a linha 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.  ]

A linha 14 é de um pinguim que ninguém conseguiu medir. Em que ele se transforma?

Experimente você mesmo

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

# A colônia de Meet the Penguins, suas características e seu rótulo
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"]

# Primeiro, separe os dados: os pinguins de teste ficam reservados até 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())

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Aprendizado supervisionado

Pratique por conta própria: Compilador de Python online