Zyski:
- Możliwość zdefiniowania rodzaju problemu (klasyfikacja, regresja, grupowanie) i kryteriów sukcesu w zależności od rzeczywistego kosztu zadania
- Umiejętność uczciwego podziału danych (bez dotykania zbioru testowego; chronologicznie w szeregach czasowych) i ustalenia pozbawionej wycieków podstawy oceny
- Możliwość wyboru modelu dającego się zinterpretować, zaczynając od prostego punktu bazowego i dodając złożoność tylko wtedy, gdy na to zasługuje.
Do tej pory zebraliśmy dane, oczyściliśmy je, zbadaliśmy i stworzyliśmy funkcje. Teraz dochodzimy do właściwej pracy, czyli budowy modelu. Model to struktura matematyczna, która uczy się wzorców z danych i generuje prognozy dla nowych sytuacji. Jednak najważniejszą częścią budowania modelu nie jest sam kod, ale dwie poprzedzające go decyzje: zdefiniowanie właściwego problemu i prawidłowy podział danych. Sztuczna inteligencja jest potężnym doradcą w wyborze algorytmów, pisaniu kodu i dostrajaniu parametrów; ale decyzja o tym, co przewidzieć i co oznacza sukces, należy do człowieka. Źle zdefiniowany problem nie zadziała nawet w przypadku doskonale napisanego modelu.
Najpierw zdefiniuj problem: co przewidujemy
Każde zadanie modelowania zaczyna się od pytania, a to pytanie określa rodzaj modelu. Klasyfikacja — wynikiem jest kategoria: „Czy ten klient odejdzie czy zostanie?”, „Czy ta transakcja jest fałszywa?”. Regresja (w języku angielskim regresja - wynikiem jest liczba): „Ile jest wart ten dom?”, „Ile zamówień wpłynie w przyszłym miesiącu?”. Klastrowanie (dzielenie nieoznaczonych danych na grupy naturalne): „Na ile naturalnych segmentów podzieleni są moi klienci?”.
Druga część opisu problemu to kryterium sukcesu: co to znaczy, że ten model jest „dobry”? W modelu oszustwa przeoczenie oszusta jest znacznie droższe niż przypadkowe zablokowanie uczciwego klienta; Dlatego na pierwszy plan wysuwa się nie „ogólna dokładność”, ale „wskaźnik wyłapywania oszustów”. Jeśli nie zdefiniujesz tego kryterium od początku wspólnie z właścicielem firmy, otrzymasz „wysoce dokładny” model, który nie będzie działać (więcej na temat wskaźników omówimy w części 7).
Uwaga: „Dokładność” może wprowadzać w błąd. Jeśli 10 na 1000 transakcji jest fałszywych, głupi model, który mówi, że „żadna nie jest fałszywa”, da 99% dokładności, ale nie wyłapie ani jednego oszusta. Wybierz kryteria sukcesu w oparciu o rzeczywisty koszt problemu.
Podział treningu/testu: uczciwe sprawdzenie modelu
Testowanie modelu na podstawie zdobytych danych przypomina zadawanie uczniowi tych samych pytań, których uczył się na egzaminie; Dostaje wysokie oceny, ale nie pokazuje tego, co naprawdę wie. Dzielimy więc dane na dwie (często trzy):
- Zestaw treningowy (zestaw treningowy w języku angielskim, zwykle 70-80%): Model uczy się na tym.
- Zbiór testowy (zbiór testowy, zwykle 20-30%): Model w ogóle tego nie widzi; Tutaj mierzona jest rzeczywista wydajność.
- Zbiór walidacyjny: zbiór pośredni używany do ustawienia modelu (który parametr jest lepszy); aby utrzymać zestaw testowy „w czystości”.
Najbardziej podstawowa zasada: zestawu testowego nigdy nie dotyka się podczas treningu. Skalowanie, kodowanie, wybór funkcji — wszystkiego można się po prostu nauczyć ze zbioru uczącego, a następnie zastosować do testowania (zasada wycieku z rozdziału 5). Zestaw testowy to pierwszy raz, kiedy model widzi prawdziwy świat; Jeśli włączysz go zbyt wcześnie, nigdy nie poznasz prawdziwej wydajności.
Wyjątek dla szeregów czasowych: jeśli dane są zależne od czasu (sprzedaż, giełda, popyt), losowy podział nie jest wykonywany. Ponieważ losowy podział powoduje, że model widzi przyszłość i przewiduje przeszłość — jest to wyciek. Zamiast tego dziel się chronologicznie: trenuj na starym okresie, testuj na nowym.
Wybór algorytmu: od prostego do złożonego
Najczęstszym błędem początkujących jest rozpoczęcie od najbardziej złożonego modelu. Prawidłowe podejście jest odwrotne: najpierw ustal prostą linię bazową. „zawsze zgaduj klasę większościową” w klasyfikacji; „zawsze oszacuj średnią” w regresji. Ten głupi model daje punkt odniesienia; Jeśli Twój aktualny model nie może tego przejść, oznacza to problem. Następnie przejdź do prostych i możliwych do zinterpretowania modeli.
modelka
Typ problemu
mocny punkt
słabość
Wartość bazowa (większość/średnia)
oba
Daje punkt odniesienia
nie uczy się
Regresja logistyczna
Klasyfikacja
Proste, zrozumiałe
Tylko zależność liniowa
Regresja liniowa
regresja
Proste, szybkie
założenie liniowe
drzewo decyzyjne
oba
interpretowalne
Łatwe zapamiętywanie
losowy las
oba
Mocny, trwały
Mniej interpretowalne
Wzmocnienie gradientowe (XGBoost itp.)
oba
bardzo silny
Trudne do dostosowania, ryzyko zapamiętywania
Zasada: wybierz najprostszy „wystarczająco dobry” model. W większości kontekstów biznesowych interpretowalność jest cenniejsza niż władza; Lepiej wyjaśnić odmowę pożyczki „ponieważ stosunek zadłużenia do dochodu jest wysoki” niż „ponieważ tak stwierdziła czarna skrzynka”.
trzy mini etui
Przypadek 1 — Nieprawidłowa definicja problemu. Zespół zbudował model klasyfikacji w oparciu o „czy klient jest zadowolony”, ale jako kryterium sukcesu wybrał „dokładność”. Z danych wynika, że 88% klientów było zadowolonych; Model uzyskał 88% trafności, nazywając wszystkich „zadowolonymi” i nigdy nie łapał niezadowolonych osób — mimo że prawdziwym celem było ich odnalezienie. Lekcja: wybierz kryteria sukcesu w oparciu o prawdziwy cel.
Przypadek 2 — Wyciek czasu w przedziale. W projekcie prognozowania popytu dane zostały losowo podzielone. Model zapewniał dokładność na poziomie 93%, ale uległ awarii w produkcji, ponieważ podczas szkolenia przewidywał styczeń, potem listopad, a na podstawie danych z grudnia – widział przyszłość. Kiedy przeszliśmy na podział chronologiczny, rzeczywista wydajność wzrosła do 74%. Lekcja: podział chronologiczny w szeregach czasowych.
Przypadek 3 — Niepotrzebna złożoność. Jeden z analityków zaczął bezpośrednio od głębokiej sieci neuronowej, dostrajał ją tygodniami i uzyskał 81% dokładności. Następnie kolega uzyskał 80% przy 20 liniach regresji logistycznej — znacznie szybciej, łatwiej zinterpretować i łatwiej utrzymać. Lekcja: zacznij od linii bazowej i prostego modelu, dodaj złożoność, gdy na to zasługuje.
Cztery szablony do kopiowania
1) Wyjaśnienie definicji problemu:
Twoja rola: konsultant ds. modelowania. Pomóż mi zdefiniować tę pracę: „Chcę zmniejszyć odpływ klientów”. Zapytaj mnie i wyjaśnij: (1) czy jest to klasyfikacja czy regresja, (2) czym dokładnie jest zmienna docelowa i jak należy ją zdefiniować, (3) jakie powinny być kryteria sukcesu i dlaczego. Decyzja należy do mnie; przedstawiasz pytania i opcje.
2) Bezpieczna komora szkoleniowo-testowa:
Podziel mój df na trening/testowanie 80%/20%. Zachowaj rozkład klas (stratify).random_state=42. To NIE jest SZEREG CZASOWY (niezależne obserwacje). Wydrukuj stosunek klas każdego zestawu po podzieleniu. Po prostu podaj kod podziału do zestawu testowego bez stosowania żadnej transformacji.
3) Podział chronologiczny szeregów czasowych:
Dane zależą od czasu (kolumna daty: data_zamówienia). NIE losowo, podziel chronologicznie: najstarsze 80% treningu, najnowsze 20% testów. Wydrukuj zakresy dat szkoleń i testów, aby móc sprawdzić, czy przyszłość nie wyciekła.
4) Ustalenie wartości bazowej:
Mam problem z klasyfikacją (cel: rezygnacja 0/1). Najpierw ustal punkt odniesienia: zmierz dokładność szkolenia/testowania za pomocą DummyClassifier, który zawsze przewiduje klasę większości. Następnie wytrenuj prostą regresję logistyczną i porównaj, czy przekracza ona wartość bazową. Pokaż metryki obu obok siebie.
Słaba zachęta/silna zachęta
Słaba zachęta:
Zbuduj najlepszy model na podstawie tych danych.
„Najlepszy” jest nieokreślony; Nie ma typu problemu, celu, kryteriów sukcesu i strategii podziału. Sztuczna inteligencja generuje losowy wzór, prawdopodobnie nieszczelny.
Potężny monit:
Twoja rola: asystent modelki. Problem: klasyfikacja, cel „odejście” (0/1), brak równowagi klas (odpływ ~12%). Kryterium sukcesu: Przypomnienie tych, którzy odchodzą, jest priorytetem. Obserwacja niezależna od danych (nie szeregi czasowe). Zadanie: (1) podział warstwowy 80/20%, (2) wartość bazowa DummyClassifier, (3) regresja logistyczna, wszystkie transformacje w przygotowaniu i wyuczone tylko na podstawie szkoleń. Nie dotykaj zestawu testowego przed rozszczepieniem.
Tutaj typ problemu, brak równowagi, kryterium i miara wycieku są jasne.
Typowe błędy
- Niedobór kryteriów sukcesu zgodnie z rzeczywistym celem. „Dokładność” niezrównoważonych danych jest myląca; Jeśli chcesz uchwycić klasę mniejszości, na pierwszy plan wysuwa się pamięć.
- Dotykanie zestawu testowego podczas treningu. Skalowanie/kodowanie przed podziałem jest nieszczelne i ukrywa rzeczywistą wydajność.
- Losowy podział w szeregach czasowych. Model widzi przyszłość, załamuje się w produkcji; Podział chronologiczny jest niezbędny.
- Przejście do złożonego modelu bez ustalania wartości bazowej. Bez testów porównawczych nie można stwierdzić, czy model jest naprawdę dobry, czy nie.
- Ignorowanie możliwości interpretacji. W przypadku decyzji biznesowych prosty, możliwy do wyjaśnienia model jest często cenniejszy niż czarna skrzynka.
Wskazówka: Zanim zaczniesz budować model, napisz jedno zdanie: „Ten model przewidzi _____, jego powodzenie będzie mierzone za pomocą metryki _____, ponieważ prawdziwy koszt pracy wynosi _____”. Jeśli nie możesz wypełnić tego zdania, nie jesteś jeszcze gotowy do pisania kodu.
Podsumowując
Najważniejszą częścią budowania modelu nie jest kod, ale decyzje, które go poprzedzają: zdefiniowanie właściwego problemu (klasyfikacja czy regresja, jaki jest cel, jakie jest kryterium sukcesu) i sprawiedliwy podział danych (bez dotykania zbioru testowego; chronologicznie w szeregach czasowych). Zawsze zaczynaj od prostego planu bazowego i dodawaj złożoność tylko wtedy, gdy na to zasługuje; W większości kontekstów biznesowych ważność interpretacji jest ważniejsza od władzy. Sztuczna inteligencja jest potężnym doradcą w wyborze algorytmów i kodzie, ale to człowiek decyduje, co i dlaczego przewidujesz.
Zadanie aplikacji
Zdefiniuj problem przewidywania i uzupełnij na piśmie następujące zdanie: „Ten model przewidzi ___ (klasyfikacja/regresja), celem jest ___, kryterium sukcesu to ___, ponieważ ___.” Następnie podziel dane, stosując odpowiednią strategię (chronologicznie, jeśli jest to szereg czasowy), ustal punkt bazowy i zmierz, czy prosty wzór przełamuje tę linię bazową.
lista kontrolna
- [ ] Czy jasno określiłem rodzaj problemu (klasyfikacja/regresja) i cel?
- [ ] Czy wybrałem kryteria sukcesu w oparciu o rzeczywisty koszt pracy?
- [ ] Czy podczas treningu pozostawiłem zestaw testowy nietknięty?
- [ ] Jeśli jest to szereg czasowy, czy podzieliłem go chronologicznie?
- [ ] Czy ustaliłem punkt odniesienia przed przejściem do złożonego modelu?