10 · Praktyka · 4 min czytania · aktualizacja
Jak dobrze sformułować problem uczenia maszynowego?
W skrócie
Formułowanie problemu to decyzja, co dokładnie przewidujemy, na jakich danych dostępnych w chwili predykcji i jaką metryką mierzymy sukces modelu.
Co to jest
Formułowanie problemu (problem framing) to przełożenie potrzeby biznesowej lub naukowej na precyzyjne zadanie uczenia maszynowego: co jest zmienną docelową, jaka jest jednostka obserwacji, które cechy są znane w chwili predykcji, jaki typ wyniku jest potrzebny (klasa, prawdopodobieństwo, ranking, liczba) i jaką metryką ocenimy sukces.
To najtańszy etap projektu i zarazem ten, którego błędy kosztują najwięcej. Model może być technicznie bezbłędny i całkowicie bezużyteczny, jeśli odpowiada na złe pytanie. „Przewidzieć rezygnację klienta” brzmi jasno, dopóki ktoś nie zapyta: rezygnację w jakim horyzoncie, wśród których klientów i co zrobimy z tą informacją?
Mechanizm — dlaczego tak działa
Algorytm optymalizuje dokładnie to, co mu podasz — funkcję straty na wybranej zmiennej docelowej — i nic więcej. Jeśli zmienna docelowa jest tylko przybliżeniem prawdziwego celu (kliknięcia zamiast zadowolenia, aresztowania zamiast przestępczości), model nauczy się przybliżenia ze wszystkimi jego skrzywieniami. To jest uczenie maszynowe w wersji prawa Goodharta: miara, którą optymalizujesz, przestaje dobrze mierzyć to, na czym ci zależało.
Drugie źródło błędów to czas. Każda cecha musi być dostępna w momencie, w którym model będzie podejmował decyzję. Kolumna wypełniana po fakcie (status zwrotu, kod diagnozy wpisany po wypisie) robi z modelu wróżkę w walidacji i bezużyteczne narzędzie w produkcji. To najczęstsza postać wycieku danych i wykrywa się ją pytaniem „kiedy ta wartość powstaje?”, a nie analizą statystyczną.
Trzecia decyzja to typ wyniku. Klasyfikacja „tak/nie” wystarcza, gdy decyzja jest binarna, a koszty błędów stałe. Gdy wynik zasila dalsze obliczenia — wycenę ryzyka, kolejkę priorytetów, próg zmieniany przez biznes — potrzebne jest dobrze skalibrowane prawdopodobieństwo. Te dwa zadania nagradzają różne modele, więc wybór metryki to część definicji problemu, nie szczegół techniczny.
Wreszcie jednostka i populacja: czy przewidujemy dla klienta, transakcji czy sesji, i czy dane uczące pochodzą z tej samej populacji, na której model będzie działał. Jeśli w danych są tylko klienci, którym kiedyś przyznano kredyt, model nie wie nic o tych, którym odmówiono.
Na przykładzie
Titanic, 891 pasażerów, 5-krotna walidacja krzyżowa. Gdy zadanie sformułujemy jako klasyfikację z metryką dokładności, las losowy bez ograniczeń głębokości (81,3%) i gradient boosting (81,5%) wyglądają na równorzędne. Gdy to samo zadanie sformułujemy jako przewidywanie prawdopodobieństwa przeżycia z log-loss, ranking się odwraca: boosting ma log-loss 0,42, a nieograniczony las 0,81 — gorzej niż stała predykcja 38,4% dla wszystkich (0,67). Las zbyt często daje prawdopodobieństwa bliskie 0 lub 1 i kiedy się myli, myli się bardzo pewnie.
Drugi test to pytanie o czas. Zbiór zawiera kolumnę alive („yes”/„no”). Dodanie jej do cech daje regresji logistycznej dokładność 100%. To nie jest sukces, tylko sygnał, że kolumna jest zmienną docelową zapisaną innymi słowami — w chwili „predykcji” nikt by jej nie znał.
Dane: Titanic
W praktyce
- Zapisz w jednym zdaniu: „Dla [jednostki] w chwili [moment decyzji] przewidujemy [cel] w horyzoncie [okres], żeby [decyzja]”.
- Dla każdej cechy ustal, kiedy powstaje jej wartość. Wszystko, co powstaje po momencie decyzji, wypada.
- Dobierz metrykę do decyzji: dokładność lub
balanced_accuracy_scoredla twardych decyzji,log_losslubbrier_score_lossgdy liczą się prawdopodobieństwa,roc_auc_scoregdy liczy się ranking. - Zdefiniuj model bazowy jeszcze przed modelowaniem — to on mówi, czy problem w ogóle wymaga ML.
- Sprawdź, czy dane uczące pochodzą z populacji, na której model będzie działał.
- Typowy błąd: wybór zmiennej docelowej, bo „akurat jest w bazie”, zamiast tej, która odpowiada decyzji.
Najczęstsze pytania
- Klasyfikacja czy regresja — jak wybrać?
- Patrz na decyzję, nie na dane. Jeśli liczba (np. dni do odejścia klienta) jest potem progowana do „tak/nie”, często prościej i stabilniej jest od razu klasyfikować. Jeśli wartość liczbowa sama zasila decyzję (wycena, zapas magazynowy), potrzebna jest regresja.
- Skąd wiadomo, że cecha powoduje wyciek?
- Zapytaj, w którym momencie i przez kogo jest zapisywana. Sygnałem ostrzegawczym jest też podejrzanie wysoka ważność jednej cechy albo wynik walidacji, który bije wszystko, co znane w dziedzinie. Statystyka może wyciek zasugerować, ale rozstrzyga wiedza o procesie powstawania danych.
- Czy każdy problem wymaga uczenia maszynowego?
- Nie. Jeśli prosta reguła osiąga wynik bliski najlepszemu modelowi (na Titanicu reguła płci daje 78,7% wobec około 81–82% najlepszych modeli), warto rozważyć, czy dodatkowe punkty są warte kosztu utrzymania modelu.
Źródła
- Provost F., Fawcett T. „Data Science for Business”, O'Reilly 2013, rozdz. 2.
- Kaufman S., Rosset S., Perlich C., Stitelman O. „Leakage in Data Mining: Formulation, Detection, and Avoidance”, ACM Transactions on Knowledge Discovery from Data 6(4), 2012.
- Gneiting T., Raftery A. E. „Strictly Proper Scoring Rules, Prediction, and Estimation”, Journal of the American Statistical Association 102(477), 2007.
- Géron A. „Hands-On Machine Learning”, 3rd ed., O'Reilly 2022, rozdz. 2 (Frame the Problem).