Udostępnij za pośrednictwem


Wizualizacje szkoleniowe (wersja zapoznawcza)

Wersja próbna hiperparametru lub wersja próbna rozwiązania AutoML wyszukuje optymalne parametry modelu uczenia maszynowego. Każda wersja próbna składa się z wielu przebiegów, w których każde uruchomienie ocenia określoną kombinację parametrów. Użytkownicy mogą monitorować te przebiegi przy użyciu elementów eksperymentów uczenia maszynowego w sieci szkieletowej.

Moduł flaml.visualization oferuje funkcje do kreślenia i porównywania przebiegów w języku FLAML. Użytkownicy mogą używać narzędzia Plotly do interakcji z wykresami eksperymentów rozwiązania AutoML. Aby używać tych funkcji, użytkownicy muszą wprowadzić ich zoptymalizowane flaml.AutoML lub flaml.tune.tune.ExperimentAnalysis obiekt.

W tym artykule pokazano, jak używać modułu flaml.visualization do analizowania i eksplorowania wyników wersji próbnej rozwiązania AutoML. Możesz również wykonać te same kroki dla wersji próbnej hiperparametru.

Ważne

Ta funkcja jest dostępna w wersji zapoznawczej.

Tworzenie wersji próbnej rozwiązania AutoML

Rozwiązanie AutoML oferuje zestaw zautomatyzowanych procesów, które mogą identyfikować najlepszy potok uczenia maszynowego dla zestawu danych, dzięki czemu cały proces modelowania jest prostszy i często bardziej dokładny. W istocie pozwala to zaoszczędzić kłopoty ręcznego dostrajania różnych modeli i hiperparametrów.

W poniższej komórce kodu:

  1. Załaduj zestaw danych Iris.
  2. Podziel dane na zestawy treningowe i testowe.
  3. Zainicjuj wersję próbną rozwiązania AutoML, aby dopasować dane szkoleniowe.
  4. Zapoznaj się z wynikami naszej wersji próbnej rozwiązania AutoML za pomocą wizualizacji z witryny flaml.visualization.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML

# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)

# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
    "time_budget": 10, # Time limit in seconds
    "task": "classification", # Type of machine learning task
    "log_file_name": "aml_iris.log", # Name of the log file
    "metric": "accuracy", # Evaluation metric
    "log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)

Wizualizowanie wyników eksperymentu

Po uruchomieniu wersji próbnej rozwiązania AutoML należy zwizualizować wyniki, aby przeanalizować, jak dobrze działają modele i jak działają. W tej części naszej dokumentacji pokazano, jak w tym celu używać wbudowanych narzędzi w bibliotece FLAML.

Importowanie modułu wizualizacji

Aby uzyskać dostęp do tych narzędzi wizualizacji, uruchomimy następujące polecenie importu:

import flaml.visualization as fviz

Historia optymalizacji

Wykres historii optymalizacji zwykle zawiera liczbę prób/iteracji na osi x oraz metrykę wydajności (np. dokładność, RMSE itp.) na osi y. W miarę wzrostu liczby prób zobaczysz wykres liniowy lub punktowy wskazujący wydajność poszczególnych prób.

fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()

Oto wynikowy wykres:

Wykres wykresu historii optymalizacji.

Ważność funkcji

Wykres znaczenia funkcji to zaawansowane narzędzie do wizualizacji, które pozwala zrozumieć znaczenie różnych cech wejściowych podczas określania przewidywań modelu.

fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()

Oto wynikowy wykres:

Wykres wykresu ważności funkcji.

Wykres współrzędnych równoległych

Wykres współrzędnych równoległych to narzędzie do wizualizacji, które reprezentuje dane wielowymiarowe, rysując wiele linii pionowych (osi) odpowiadających zmiennym lub hiperparametrom, z punktami danych wykreślonymi jako połączone linie na tych osiach. W kontekście eksperymentu automatycznego uczenia maszynowego lub dostrajania kluczowe znaczenie ma wizualizowanie i analizowanie wydajności różnych kombinacji hiperparametrów. Śledząc ścieżki konfiguracji o wysokiej wydajności, można rozpoznać wzorce lub trendy w wyborach hiperparametrycznych i ich interakcjach. Ten wykres pomaga zrozumieć, które kombinacje prowadzą do optymalnej wydajności, wskazując potencjalne obszary do dalszej eksploracji i identyfikując wszelkie kompromisy między różnymi hiperparametrami.

To narzędzie przyjmuje następujące inne argumenty:

  • learner: Określ ucznia, który zamierzasz studiować w eksperymencie. Ten parametr ma zastosowanie tylko do wyników eksperymentu rozwiązania AutoML. Pozostawiając to pole puste, system wybiera najlepsze osoby uczące się w całym eksperymencie.

  • params: lista określająca hiperparametr do wyświetlenia. Pozostawiając to pole puste, system wyświetla wszystkie dostępne hiperparametry.

fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Oto wynikowy wykres:

Wykres wykresu współrzędnych równoległych.

Wykres konturowy

Wykres konturowy wizualizuje dane trójwymiarowe w dwóch wymiarach, gdzie osie x i y reprezentują dwa hiperparametry, a linie konturowe lub wypełnione kontury przedstawiają poziomy metryki wydajności (na przykład dokładność lub utrata). W kontekście eksperymentu automatycznego uczenia maszynowego lub dostrajania wykres konturowy jest korzystny dla zrozumienia relacji między dwoma hiperparametrami i ich połączonym wpływem na wydajność modelu.

Sprawdzając gęstość i pozycjonowanie linii konturowych, można zidentyfikować regiony przestrzeni hiperparametrów, w których wydajność jest zoptymalizowana, ustalić potencjalne kompromisy między hiperparametrami i uzyskać wgląd w ich interakcje. Ta wizualizacja pomaga uściślić obszar wyszukiwania i proces dostrajania.

To narzędzie przyjmuje również następujące argumenty:

  • learner: Określ ucznia, który zamierzasz studiować w eksperymencie. Ten parametr ma zastosowanie tylko do wyników eksperymentu rozwiązania AutoML. Pozostawiając to pole puste, system wybiera najlepsze osoby uczące się w całym eksperymencie.

  • params: lista określająca hiperparametr do wyświetlenia. Pozostawiając to pole puste, system wyświetla wszystkie dostępne hiperparametry.

fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

Oto wynikowy wykres:

Wykres wykresu konturowego.

Funkcja rozkładu empirycznego

Wykres funkcji rozkładu empirycznego (EDF), często wizualizowany jako funkcja kroku, reprezentuje skumulowane prawdopodobieństwo, że punkty danych są mniejsze lub równe określonej wartości. W ramach eksperymentu automatycznego uczenia maszynowego lub dostrajania wykres EDF można stosować w celu wizualizacji rozkładu wydajności modelu w różnych konfiguracjach hiperparametrów.

Obserwując stromość lub płaskość krzywej w różnych punktach, można zrozumieć koncentrację odpowiednio dobrych lub słabych wydajności modelu. Ta wizualizacja oferuje wgląd w ogólną skuteczność procesu dostrajania, podkreślając, czy większość prób konfiguracji daje zadowalające wyniki, czy tylko kilka konfiguracji wyróżnia się.

Uwaga

W przypadku eksperymentów zautomatyzowanego uczenia maszynowego podczas trenowania zostanie zastosowanych wiele modeli. Próby każdego ucznia są reprezentowane jako seria optymalizacji. W przypadku eksperymentów dostrajania hiperparametrów zostanie oceniony tylko jeden element uczący się. Można jednak udostępnić dodatkowe eksperymenty dostrajania, aby zobaczyć trendy w poszczególnych uczniach.

fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()

Oto wynikowy wykres:

Wykres wykresu funkcji rozkładu empirycznego.

Wykres osi czasu

Wykres osi czasu, często reprezentowany jako wykres Gantta lub sekwencja słupków, wizualizuje rozpoczęcie, czas trwania i wykonywanie zadań w czasie. W kontekście eksperymentu automatycznego uczenia maszynowego lub dostrajania wykres osi czasu może przedstawiać postęp różnych ocen modelu i ich odpowiednie czasy trwania, wykreślane w czasie. Obserwując ten wykres, użytkownicy mogą zrozumieć wydajność procesu wyszukiwania, zidentyfikować potencjalne wąskie gardła lub okresy bezczynności i zrozumieć czasową dynamikę różnych ocen hiperparametrów.

fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()

Oto wynikowy wykres:

Wykres wykresu osi czasu.

Wykres fragmentatora

Wykreślij relację parametrów jako wykres wycinka w badaniu.

To narzędzie przyjmuje również następujące argumenty:

  • learner: Określ ucznia, który zamierzasz studiować w eksperymencie. Ten parametr ma zastosowanie tylko do wyników eksperymentu rozwiązania AutoML. Pozostawiając to pole puste, system wybiera najlepsze osoby uczące się w całym eksperymencie.

  • params: lista określająca hiperparametr do wyświetlenia. Pozostawiając to pole puste, system wyświetla wszystkie dostępne hiperparametry.

fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()

Oto wynikowy wykres:

Wykres wykresu wycinka.

Ważność hiperparametrów

Wykres ważności hiperparametrów wizualnie plasuje hiperparametry na podstawie ich wpływu na wydajność modelu w eksperymencie AutoML lub dostrajaniu. Wyświetlany zazwyczaj jako wykres słupkowy określa wpływ poszczególnych hiperparametrów na metrykę docelową. Sprawdzając ten wykres, praktycy mogą rozpoznać, które hiperparametry są kluczowe w określaniu wyników modelu i które mają minimalny wpływ.

To narzędzie przyjmuje również następujące argumenty:

  • learner: Określ ucznia, który zamierzasz studiować w eksperymencie. Ten parametr ma zastosowanie tylko do wyników eksperymentu rozwiązania AutoML. Pozostawiając to pole puste, system wybiera najlepsze osoby uczące się w całym eksperymencie.

  • params: lista określająca hiperparametr do wyświetlenia. Pozostawiając to pole puste, system wyświetla wszystkie dostępne hiperparametry.

fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()

Oto wynikowy wykres:

Wykres ważności hiperparametrów.