Zdefiniuj, co reprezentuje każdy przykład
Zacznij od zdania opisującego decyzję: rozpoznanie kategorii nowego zgłoszenia, wyodrębnienie trzech pól z dokumentu albo odpowiedź na pytanie wraz z załącznikami. Opisz dane wejściowe dostępne w momencie predykcji, oczekiwane wyjście oraz przypadki poza zakresem. Informacja dodana po rozwiązaniu zgłoszenia nie powinna pojawiać się w danych wejściowych, które mają reprezentować jego nadejście.
Następnie rozróżnij wiersz i niezależną jednostkę. Pięć wiadomości z jednej rozmowy dzieli wspólny kontekst; dziesięć stron jednego dossier dzieli swoje pochodzenie. Jeśli twój cel dotyczy nowych dossier, trzymaj każde dossier w jednej partycji. Podział według użytkownika, dokumentu, urządzenia lub okresu odpowiada na różne pytania: wybierz ten, który przypomina przyszłe użycie, a następnie zapisz jego uzasadnienie w manifeście.
Źródła techniczne: scikit-learn 1.9 — walidacja z grupami i zależnościami czasowymi
Przypisz rolę każdemu zbiorowi
Zbiór uczący służy do dostrajania modelu. Zbiór walidacyjny kieruje decyzjami rozwojowymi: promptem, progiem, hiperparametrami lub wyborem wariantu. Finalny test odpowiada na pytanie ustalone z góry. Zaglądanie do niego, by wybrać najlepsze ustawienie, stopniowo czyni ten test narzędziem rozwojowym, nawet jeśli nie liczy się na nim żadnego gradientu.
Oddziel również dane używane do uczenia przekształcenia. Normalizacja, selekcja zmiennych lub imputacja dopasowana na całym korpusie może przekazać informację do modelu. Ucz się tych przekształceń na dozwolonej partycji, a następnie zastosuj zachowane przekształcenie do pozostałych zbiorów. Pipeline ułatwia tę kontrolę; sam jednak nie naprawi źle rozdzielonych grup.
| Zbiór | Dozwolone użycie | Decyzja, której należy unikać |
|---|---|---|
| Uczący | Dostrajanie parametrów i wyuczonych przekształceń | Importowanie do niego odpowiedzi z finalnego testu |
| Walidacyjny | Wybór ustawień, promptów i progów | Przedstawianie najlepszego wyniku eksploracyjnego jako niezależnego wyniku finalnego |
| Finalny test | Ocena wybranej konfiguracji według ustalonej reguły | Zmiana ustawień po odczycie i ponowne użycie tego samego wyniku jako potwierdzenia |
| Ewentualna kalibracja | Przygotowanie metody kwantyzacji, która tego wymaga | Użyj testu końcowego, aby zbudować oceniany wariant |
Źródła techniczne: scikit-learn 1.9 — wyciek danych i transformacje
Radzenie sobie z duplikatami bez usuwania trudnych przypadków
Zachowaj surowy korpus, a następnie zbuduj roboczy inwentarz z identyfikatorem, pochodzeniem i grupą. Odcisk treści wykrywa dokładne kopie zgodnie z wybraną reprezentacją. Udokumentuj tę reprezentację: usunięcie całej interpunkcji lub zamiana tekstu na małe litery może scalić wpisy, których różnica ma znaczenie dla zadania. Zachowaj powiązanie między odrzuconą kopią a zachowanym egzemplarzem.
Quasi-duplikaty wymagają dodatkowego przeglądu: zmodyfikowany eksport, przeformułowana odpowiedź, wspólny fragment lub ponownie zredagowany dokument. Wysokie podobieństwo to sygnał do zbadania, a nie dowód, że dwie adnotacje są wymienne. Pogrupuj powiązane warianty przed podziałem danych. Jeśli dwie kopie mają sprzeczne odwołania, otwórz pytanie adnotacyjne; nie wybieraj automatycznie tej, którą model przewiduje najlepiej.
Przykład przećwiczony: 1200 wierszy to nie 1200 niezależnych obserwacji
Ten przykład jest w całości ilustracyjny: nie zmierzono żadnego korpusu ani modelu. Załóżmy 240 rozmów, każda wyeksportowana w pięciu wierszach. Jeden wiersz to dokładna kopia w każdej rozmowie; pozostałe cztery są odrębne. Usunięcie tych 240 kopii pozostawia 960 przykładów, wciąż zorganizowanych w 240 grup. Poniższy wybór dydaktyczny przeznacza 70% grup na uczenie, 15% na walidację i 15% na test.
Otrzymujemy 168, 36 i 36 rozmów, czyli 672, 144 i 144 przykłady. Równość proporcji w wierszach i grupach wynika tutaj z czterech przykładów na rozmowę. W rzeczywistym korpusie o zmiennych rozmiarach nie byłaby automatyczna. Te proporcje nie są uniwersalną regułą: muszą pozostawić wystarczająco dużo grup i ważnych przypadków w każdym zbiorze.
| Podział | Całe rozmowy | Przykłady | Rola |
|---|---|---|---|
| Uczący | 168 | 672 | Dostroić |
| Walidacyjny | 36 | 144 | Wybrać |
| Finalny test | 36 | 144 | Potwierdzić na odrębnym zbiorze |
Źródła techniczne: scikit-learn 1.9 — GroupShuffleSplit liczy grupy
Sprawdź klasy, długości i chronologię
Po podziale policz klasy i grupy, które je noszą. Klasa obecna w wielu wierszach, ale w jednej rozmowie, nie oferuje wielu niezależnych przypadków. Zbadaj również długości, faktycznie pokryte języki, niekompletne dokumenty i kategorie ważne dla decyzji. Pocieszająca średnia może maskować podział bez żadnego przykładu krytycznego przypadku.
Stratyfikacja z grupami stara się zachować proporcje klas bez rozpraszania grup. Nie gwarantuje idealnej równowagi, gdy grup jest niewiele lub są bardzo nierówne. Jeśli zadanie polega na przewidywaniu przyszłych obserwacji, podział chronologiczny może być bardziej odpowiedni niż losowe mieszanie. Sprawdź też, czy zmienne były dostępne w dacie predykcji.
Źródła techniczne: scikit-learn 1.9 — StratifiedGroupKFold i jego ograniczenia · scikit-learn 1.9 — walidacja danych czasowych
Uczyń punkt odniesienia wystarczająco precyzyjnym, by ocenić wynik
Napisz instrukcję adnotacji z przykładami i przypadkami brzegowymi. W przypadku ekstrakcji określ znaczenie nieobecnego pola, format dat, walutę i akceptowane odpowiedniki. W przypadku klasyfikacji opisz granice między kategoriami. Odpowiedź inna niż punkt odniesienia nie zawsze jest błędem modelu: punkt odniesienia może być niejednoznaczny lub błędny.
Zleć przegląd zróżnicowanej selekcji, zwłaszcza sporów i ważnych przypadków, a następnie zapisz rozstrzygnięcie. Zachowaj poprawki w nowej wersji zbioru. Jeśli poprawka zmienia wynik porównania, przelicz wszystkie powiązane warianty na tym samym punkcie odniesienia; nie poprawiaj tylko wiersza niekorzystnego dla preferowanego modelu.
Przygotuj pakiet ewaluacyjny przed kampanią GPU
Rezultatem tych przygotowań jest identyfikowalny zbiór wraz z jego regułami. Pozwala odtworzyć selekcję danych bez polegania na pamięci notebooka. Przygotowanie tego pakietu przed wynajmem pozwala uniknąć zużywania okresu obliczeniowego na rozwiązywanie różnic w plikach lub kryteriach.
- Ustal identyfikatory, grupy, podziały i ich uzasadnienie; zachowaj skrypt lub listę, które je tworzą.
- Sprawdź przecięcia identyfikatorów, grup i skrótów między partycjami. Każde nieoczekiwane przecięcie musi zostać wyjaśnione lub poprawione.
- Wyeksportuj liczebności według partycji, klasy i użytecznej podgrupy, a także listę wykluczeń i ich powody.
- Ustal punkt odniesienia, zasady normalizacji, główną metrykę i progi przed porównaniem.
- Zachowaj wersję, skróty, prawa do wykorzystania i lokalizację danych. Skrót zapewnia identyfikację, a nie anonimowość.
- Zarezerwuj dostęp do testu końcowego aż do zaplanowanej decyzji; prowadź dziennik konsultacji i zmian protokołu.
Wiedzieć, co dowodzi kontrola
Przygotowanie jest akceptowalne, gdy liczebności zgadzają się ze spisem, nakładanie się jest opanowane, a każdy wynik można ocenić według jasnej reguły. Nie dowodzi to jednak, że model odniesie sukces ani że wszystkie przyszłe zastosowania są reprezentowane. Mały zbiór może opisywać konkretny problem, pozostając niewystarczającym do wyciągnięcia wniosków o rzadkiej klasie.
Jeśli wykorzystujesz błędy testu końcowego do ulepszenia systemu, zachowaj ten test jako historyczny i przygotuj nowe niezależne potwierdzenie. W przypadku modelu wstępnie wytrenowanego, którego dane źródłowe są nieznane, twoja partycja nie może zaświadczyć o braku wcześniejszej ekspozycji. Udokumentuj to ograniczenie, zamiast nazywać zbiór całkowicie dziewiczym.
Praktyczne pytania
Czy zawsze trzeba przeznaczać 20% danych na test?
Nie. Użyteczny udział zależy od liczby niezależnych jednostek i przypadków do pokrycia. Sprawdź grupy, ważne kategorie i dokładność oczekiwanego wniosku; sam procent nie gwarantuje informatywnego testu.
Czy inny identyfikator wystarczy, aby wykluczyć duplikaty?
Nie. Dwa eksporty mogą mieć różne identyfikatory, a zawierać ten sam tekst lub warianty tego samego przypadku. Sprawdź treść i pochodzenie, a następnie pozostaw powiązane przykłady w partycji zgodnej z twoją regułą grupowania.
Czy mogę ponownie wykorzystać test po poprawieniu modelu na podstawie jego błędów?
Możesz go zachować do śledzenia historii, ale uczestniczył w rozwoju. Aby potwierdzić poprawę na danych odłożonych, użyj nowego niezależnego zbioru i jasno ogłoś rolę każdego z nich.