ML Atlas

10 · Praktyka · 3 min czytania · aktualizacja

Jak zacząć konkurs na Kaggle i wysłać pierwsze zgłoszenie?

W skrócie

Praca na Kaggle to pętla: zrozum metrykę, zbuduj walidację podobną do testu, wyślij prosty baseline, ulepszaj według lokalnej CV, nie rankingu publicznego.

Co to jest

Kaggle to platforma konkursów predykcyjnych: organizator udostępnia zbiór uczący z etykietami i zbiór testowy bez etykiet, uczestnicy wysyłają predykcje, a system liczy wynik zadaną metryką. Część testu jest oceniana od razu (ranking publiczny), reszta dopiero po zakończeniu konkursu (ranking prywatny), i to ona decyduje o miejscu.

Skuteczny sposób pracy jest w gruncie rzeczy zwykłym przebiegiem projektu ML z jedną różnicą: metryka i zbiór testowy są narzucone z góry, a pokusa strojenia pod widoczny wynik — bardzo silna. Titanic jest klasycznym konkursem na start: 891 pasażerów w zbiorze uczącym, 418 w testowym, metryka to dokładność.

Mechanizm — dlaczego tak działa

Pierwszy krok to metryka i format zgłoszenia, bo one definiują problem. Inny model wygrywa przy dokładności, inny przy log-loss, inny przy AUC. Kto optymalizuje inną metrykę niż organizator, traci punkty, zanim zacznie modelować.

Drugi krok to lokalna walidacja, która naśladuje relację między zbiorem uczącym a testowym. Jeśli test pochodzi z innego okresu, walidacja musi ciąć po czasie; jeśli ci sami klienci występują wiele razy, foldy muszą grupować po kliencie (GroupKFold). Taka walidacja jest jedynym kompasem, bo ranking publiczny liczony jest na małej próbce i daje tylko jedną liczbę na zgłoszenie — a zgłoszeń dziennie jest mało.

Trzeci krok to szybkie, proste zgłoszenie. Sprawdza ono cały łańcuch (wczytanie, przetwarzanie, format pliku, kolejność identyfikatorów) i daje pierwszy punkt kalibracji: jeśli lokalna CV mówi 79%, a ranking 78%, walidacja jest prawdopodobnie sensowna. Jeśli różnica jest duża, trzeba szukać błędu, zanim zbuduje się cokolwiek złożonego.

Potem zaczyna się pętla: hipoteza → zmiana → lokalna CV → zapis w dzienniku. Wysyła się tylko to, co poprawiło CV, a wynik publiczny traktuje jako dodatkowy, zaszumiony punkt danych. Na końcu najlepsze modele łączy się w zespół, a jako ostateczne zgłoszenia wybiera te najlepsze według CV, nie według rankingu publicznego.

Na przykładzie

Pierwsze zgłoszenie na Titanicu: reguła „kobiety przeżywają”. Na zbiorze uczącym daje 78,7% i nie wymaga żadnego modelu, a sprawdza cały proces — plik z kolumnami PassengerId i Survived, 418 wierszy. Drugie zgłoszenie: pipeline z imputacją, one-hot i regresją logistyczną — 79,6% w 5-krotnej walidacji krzyżowej. Trzecie: gradient boosting — 81,5%.

Ile z tego zobaczy ranking? Zasymulowaliśmy konkurs, dzieląc 891 pasażerów z ustalonym ziarnem na 473 do uczenia i 418 „testowych”, a test po połowie na publiczny i prywatny. Reguła płci dała 78,5% na publicznym i 78,9% na prywatnym, zgodnie z lokalną oceną. Ale 209 osób to mało: jeden pasażer więcej lub mniej zmienia wynik o 0,48 punktu procentowego, a błąd standardowy dokładności rzędu 80% to około 2,8 punktu. Różnice między dobrymi modelami są mniejsze niż ten szum.

Dane: Titanic

W praktyce

  • Przeczytaj stronę z danymi i metryką, zanim otworzysz notebook. Zapisz metrykę jako funkcję i używaj jej w cross_val_score(..., scoring=...).
  • Zbuduj walidację podobną do testu: StratifiedKFold, GroupKFold albo TimeSeriesSplit — i trzymaj te same foldy przez cały konkurs.
  • Pierwsze zgłoszenie w ciągu godziny: baseline, pd.DataFrame({'PassengerId': ids, 'Survived': pred}).to_csv('submission.csv', index=False).
  • Prowadź tabelę: zmiana, CV (średnia i odchylenie), wynik publiczny. Ich korelacja mówi, czy walidacja działa.
  • Czytaj forum i publiczne notebooki dla pomysłów, ale weryfikuj je własną CV.
  • Typowy błąd: wybór ostatecznych zgłoszeń według rankingu publicznego.

Najczęstsze pytania

Dlaczego na szczycie rankingu Titanica są wyniki 100%?
Lista ocalałych z Titanica jest publicznie dostępna, więc część zgłoszeń po prostu ją przepisuje. W naszej walidacji krzyżowej rzetelne modele dają od 78,7% (reguła płci) do około 82% — i taki zakres, a nie szczyt rankingu, jest uczciwym punktem odniesienia.
Ile zgłoszeń dziennie warto wysyłać?
Tyle, ile masz hipotez sprawdzonych lokalnie. Wysyłanie dziesiątek wariantów i wybieranie najlepszego na rankingu publicznym to dopasowywanie się do szumu tej małej próbki, które zwykle mści się na rankingu prywatnym.
Notebook na Kaggle czy praca lokalna?
Oba działają. Konkursy z kodem (code competitions) wymagają uruchomienia predykcji w notebooku Kaggle z limitem czasu i sprzętu, więc warto od początku pisać kod, który zmieści się w tych limitach.

Źródła

Zobacz też