Iterowanie bez przeuczenia

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Schemat pokazujący, że potok uczenia maszynowego można dalej dostrajać po wdrożeniu na produkcję.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Na tym samym schemacie zaznaczono, że z produkcji można pozyskać dodatkowe dane do dalszego dostrajania modelu.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Na tym samym schemacie pokazano, że eksperci dziedzinowi mogą dostarczyć nowych wskazówek zmieniających model, np. nowych funkcji straty.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Na tym samym schemacie model wdrożony na produkcję oznaczono jako champion, a model w fazie rozwoju jako challenger.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Wyniki walidacji krzyżowej

grid_search = GridSearchCV(pipe, params, cv=3, return_train_score=True)
gs = grid_search.fit(X_train, y_train)
results = pd.DataFrame(gs.cv_results_)
results[['mean_train_score', 'std_train_score', 
   'mean_test_score', 'std_test_score']]
   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
...
Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Wyniki walidacji krzyżowej

   mean_train_score  std_train_score  mean_test_score  std_test_score
0             0.829            0.006            0.735           0.009
1             0.829            0.006            0.725           0.009
2             0.961            0.008            0.716           0.019
3             0.981            0.005            0.749           0.024
4             0.986            0.003            0.728           0.009
5             0.995            0.002            0.751           0.008

Obserwacje:

  • Wynik treningowy znacznie wyższy niż testowy.
  • Odchylenie standardowe wyniku testowego jest duże.
Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zbiór danych podzielony na dane treningowe i testowe, z danymi treningowymi podzielonymi na fragmenty przez walidację krzyżową.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zbiór danych podzielony na dane treningowe i walidacyjne, z danymi treningowymi podzielonymi na fragmenty przez walidację krzyżową.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Wykrywanie przeuczenia

  • Wynik CV treningowy >> Wynik CV testowy
    • przeuczenie na etapie dopasowania modelu
    • zmniejszyć złożoność klasyfikatora
    • pozyskać więcej danych treningowych
    • zwiększyć liczbę fold CV
  • Wynik CV testowy >> Wynik walidacyjny
    • przeuczenie na etapie strojenia modelu
    • zmniejszyć liczbę fold CV
    • zmniejszyć rozmiar siatki parametrów

Zbiór danych podzielony na dane treningowe i walidacyjne, z danymi treningowymi podzielonymi na fragmenty przez walidację krzyżową.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zbiór danych podzielony na dane treningowe i walidacyjne, z danymi treningowymi podzielonymi na fragmenty przez walidację krzyżową.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zbiór danych podzielony na dane treningowe, walidacyjne i produkcyjne, z danymi treningowymi podzielonymi na fragmenty przez walidację krzyżową.

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

"Ekspert z CV" w Twoim CV!

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Preparing Video For Download...