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:
- Załaduj zestaw danych Iris.
- Podziel dane na zestawy treningowe i testowe.
- Zainicjuj wersję próbną rozwiązania AutoML, aby dopasować dane szkoleniowe.
- 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:
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 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 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:
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 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 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:
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: