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ę:
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.
Wyzwanie
ŚredniPingwiny potrzebują ścieżek z obrazka. Kod początkowy dzieli dane i odczytuje numer wiersza.
- Zbuduj
prep, czyliColumnTransformer, który kierujenumbersścieżką liczbową, atextścieżką tekstową. - Dopasuj go do wierszy treningowych i przekształć je w jednym wywołaniu.
- 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
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Uczenie nadzorowane
1Twój pierwszy model
Uczenie się na przykładachZbiory treningowe i testoweDopasowywanie i przewidywanieOcena modeluPodsumowanie: Sortownik nasion4Regresja logistyczna
Przewidywanie „tak” lub „nie”Próg decyzyjnyWagi jako dowodyWiele klasPodsumowanie: filtr spamu2Najbliżsi sąsiedzi
Jak działa k-NNWybór kGranice decyzyjneSkalowanie dla sąsiadówPodsumowanie: sąsiedzi w zbiorze Wine5Ocena klasyfikatorów
Macierz pomyłekPrecyzja i czułośćWynik F1Niezrównoważone klasyKrzywe ROCPodsumowanie: test przesiewowy8Walidacja krzyżowa
Walidacja k-krotnaUczciwe porównywanie modeliPrzeszukiwanie siatkiPodsumowanie: naprawa deskorolki11Projekt: Gatunki pingwinów
Poznaj pingwinyPrzygotuj daneWybierz modelDopracuj zwycięski modelWdróż modelPoćwicz samodzielnie: Kompilator Python online