Kurs uczenia maszynowego od zera · Projekt do portfolio · 45 min
Projekt B: czysta tabela
W skrócie
Drugi projekt do portfolio: z surowej tabeli pingwinów (braki, kategorie) zbuduj pipeline bez wycieku, a potem znajdź wyciek w trzech cudzych pipeline’ach.
Zadanie
Dostajesz tabelę tak, jak ją opublikowano: 344 pingwinów, z czego 2 nie mają żadnego pomiaru, a 11 nie mają wpisanej płci. Wyspa i płeć to słowa, nie liczby. Model ma rozpoznać gatunek.
- Złóż pipeline z bloków: czym uzupełnić braki, co zrobić z brakującą płcią, jak zakodować wyspę i płeć, czy skalować i jaki model. Przy każdym kroku, który może uczyć się z wierszy, wybierz, gdzie go dopasować: w pipeline’ie czy przed podziałem.
- Napisz jedno zdanie uzasadnienia i wyślij pipeline na ukryty test.
- W trzech cudzych pipeline’ach wskaż krok, który przecieka.
Pipeline sprawdzasz walidacją krzyżową. Ukryty test ocenia go raz, na końcu.
Dane i podział
Palmer Penguins (Gorman, Williams i Fraser 2014; pakiet palmerpenguins, Horst, Hill i Gorman 2020), licencja CC0 1.0: 344 pingwinów trzech gatunków (Adelie, Chinstrap, Gentoo) z trzech wysp archipelagu Palmera w Antarktyce. Pomiary: długość i głębokość dzioba, długość płetwy, masa ciała. Do tego wyspa i płeć. palmerpenguins
- Nauka: 258 pingwinów (Adelie 114, Chinstrap 51, Gentoo 93). Walidacja krzyżowa w 5 częściach: każda część raz jest walidacją, a pipeline uczy się na pozostałych.
- Ukryty test: 86 pingwinów (Adelie 38, Chinstrap 17, Gentoo 31), odłożonych raz, losowo, z zachowaniem proporcji gatunków (ziarno 1). Pipeline uczy się na wszystkich 258 i dopiero wtedy ocenia test.
- „Przed podziałem” znaczy: krok dopasowany na całej tabeli, 344 pingwinów razem z ukrytym testem. „W pipeline’ie” znaczy: tylko na pingwinach, na których model się uczy (w każdym foldzie, a na końcu na wszystkich 258).
„Ukryty” znaczy tu „niepokazywany na stronie”, a nie zabezpieczony. Kod strony jest publiczny i każdy może go przeczytać. Limit wysyłek liczy Twoja przeglądarka, więc wyczyszczenie danych strony go zeruje. To ćwiczenie dyscypliny, nie egzamin.
Jak zaliczyć
Zaliczenie jest automatyczne, według trzech zasad:
- pipeline bez wycieku: każdy krok, który uczy się z wierszy (średnia albo mediana do braków, najczęstsza płeć, średnia i odchylenie skalera), stoi w pipeline’ie. Krok, który patrzy na jeden wiersz naraz (stała „nieznana”, usunięcie kolumny), może stać gdziekolwiek;
- trafność na ukrytym teście wyższa niż obu prostych reguł: „zawsze najczęstszy gatunek” (44,2% na teście) i „jedno pytanie”, czyli drzewo o głębokości 1, które pyta, czy płetwa ma najwyżej 207,5 mm (77,9%);
- liczy się pierwsza wysyłka i pierwszy wybór w każdym z trzech cudzych pipeline’ów: trzeba trafić trzy wycieki z trzech. Masz 3 wysyłki, ale kolejne są „po fakcie”: pokazują wynik testu, a zaliczenia nie zmieniają.
Dlaczego wyciek sprawdzamy w budowie, a nie w liczbie. Na pingwinach taki wyciek prawie nie rusza wyniku: w każdym z 2304 pipeline’ów, które da się tu złożyć, przeniesienie kroków z pipeline’u przed podział zmienia trafność CV najwyżej o 0,8 punktu procentowego. Liczba nie ostrzeże, więc pipeline ocenia się po budowie, jak na przeglądzie kodu.
Narzędzie samo liczy CV, więc walidacji nie da się oszukać. Da się za to dopasować wybór do testu: wysłać, zobaczyć wynik i poprawić. Dlatego liczy się tylko pierwsza wysyłka. Przed wysyłką narzędzie pokazuje zwykły przedział: od CV − 4 do CV + 4 punktów procentowych. Tyle wynosił rozrzut testu wokół CV dla przykładowych pipeline’ów na 200 innych losowych podziałach (95% przypadków). Jeden pingwin na teście to 1,2 punktu.
Przykładowe pipeline’y bez wycieku zaliczają na 100% z tych 200 podziałów. kNN bez skalowania zalicza tylko na 35%: masa ciała w gramach zagłusza inne pomiary, więc w CV taki pipeline (75,7%) przegrywa nawet z „jednym pytaniem” (79,0%) i o zaliczeniu decydowałby los podziału. Nie ma rankingu: wynik widzisz tylko Ty.
Twój pipeline
Narzędzie działa w przeglądarce z włączonym JavaScriptem. Bez niego zrób pipeline w notebooku poniżej.
Trzy cudze pipeline’y
Każdy z tych pipeline’ów liczy walidację krzyżową na wszystkich 344 pingwinach i w każdym jeden krok przecieka: to trzy z ośmiu typów wycieku z lekcji o wycieku danych (Kapoor i Narayanan 2023). Po wyborze zobaczysz typ, naprawę i to, ile wyciek zmienia na pingwinach.
Wyszukiwanie wycieków działa w przeglądarce z włączonym JavaScriptem.
Karta ukończenia
Po zaliczeniu możesz pobrać kartę (PNG). Imię wpisujesz na tej stronie, karta powstaje w Twojej przeglądarce, a imię nie trafia do adresu strony ani na serwer. „Udostępnij na LinkedIn” przekazuje tylko adres tej strony.
Dla kodujących: notebook
Notebook robi to samo w scikit-learn: ten sam zbiór (plik CSV z repozytorium seaborn-data, przypięty do jednego commita), te same wiersze ukrytego testu (86, podane numerami), te same wybory co bloki na stronie, walidacja krzyżowa w 5 częściach, sprawdzenie wycieku z budowy i warunek zaliczenia. Komórkę z testem uruchom raz, po wyborze: liczy się pierwsze uruchomienie. W sprawdzonych przykładach kNN daje te same liczby co strona; drzewo może różnić się o pojedyncze pingwiny, bo scikit-learn inaczej rozstrzyga remisy.
Szablon README do GitHuba
Notatnik przepisany z tutorialu mało mówi o Tobie. README z własnymi decyzjami i granicami mówi więcej. Skopiuj szablon i wypełnij każdą sekcję własnymi słowami.
Pokaż szablon
# Czysta tabela: pipeline bez wycieku
Projekt B kursu ML Atlas: https://mlatlas.org/pl/kurs/ml/projekt-b/
## Problem
Rozpoznać gatunek pingwina z pomiarów, wyspy i płci, gdy tabela ma braki i kategorie. <Twoimi słowami: komu i do czego to służy.>
## Dane i licencja
Palmer Penguins, Gorman, Williams i Fraser (2014), pakiet palmerpenguins (Horst, Hill i Gorman 2020), CC0 1.0, https://allisonhorst.github.io/palmerpenguins/. 344 pingwinów, 2 bez pomiarów, 11 bez płci.
## Walidacja
<Jak podzieliłeś dane, ile części ma walidacja krzyżowa, gdzie dopasowany jest każdy krok (w pipeline’ie czy przed podziałem) i ile razy sprawdzałeś ukryty test.>
## Wynik ± rozrzut
<Pipeline, trafność CV i jej rozrzut między częściami; trafność na teście.>
## Baseline
<Trafność reguł „zawsze najczęstszy gatunek” i „jedno pytanie” na tych samych danych.>
## Czego model nie umie
<Granice: trzy wyspy, lata 2007–2009, co z pingwinem bez pomiarów, co z innym gatunkiem.>
## Co dalej
<Co sprawdziłbyś następnie i dlaczego.>