Menu
CoddyTech

Przygotuj dane

Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 51 z 58.

Model odczytuje tylko kompletne wiersze liczb. Dane pingwinów zawierają braki i dwie kolumny tekstowe, więc każda kolumna trafia na osobną ścieżkę:

Schemat przedstawiający jednego pingwina z zestawu treningowego. Jego cztery pomiary trafiają na niebieską ścieżkę, są uzupełniane medianą, a następnie skalowane; wyniki to -0.79, 0.00, -0.05 i -0.90. Jego wyspa Biscoe i brakująca informacja o płci trafiają na pomarańczową ścieżkę, są uzupełniane wartością unknown, a następnie kodowane metodą one-hot; wynikiem jest sześć kolumn z wartościami 0 lub 1

Luki w danych tekstowych otrzymują wartość "unknown": pingwin o nieodnotowanej płci otrzymuje własną kolumnę zamiast przypisanej na chybił trafił.

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

Dopasuj ścieżki wyłącznie do wierszy treningowych. Mediana wyznaczona na podstawie pingwinów z testu spowodowałaby wyciek ich danych do zbioru treningowego.

challenge icon

Wyzwanie

Średni

Pingwiny potrzebują ścieżek z obrazka. Kod początkowy dzieli dane i odczytuje numer wiersza.

  1. Zbuduj prep, czyli ColumnTransformer, który kieruje numbers ścieżką liczbową, a text ścieżką tekstową.
  2. Dopasuj go do wierszy treningowych i przekształć je w jednym wywołaniu.
  3. Wypisz rozmiar i braki przed przekształceniem, rozmiar po nim, a następnie przygotowany wiersz z dokładnością do 2 miejsc po przecinku.

Dla innej kolonii i wiersza 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.  ]

Wiersz 14 przedstawia pingwina, którego nikt nie mógł zmierzyć. W co się zmieni?

Spróbuj swoich sił

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

# Kolonia z Meet the Penguins, jej cechy i etykieta
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"]

# Najpierw podziel dane: pingwiny testowe pozostają niedostępne aż do 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())

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Uczenie nadzorowane

Poćwicz samodzielnie: Kompilator Python online