Sdílet prostřednictvím


Trénovací vizualizace (Preview)

Zkušební verze hyperparametru nebo zkušební verze AutoML hledá optimální parametry pro model strojového učení. Každá zkušební verze se skládá z několika spuštění, kde každé spuštění vyhodnocuje konkrétní kombinaci parametrů. Uživatelé můžou tato spuštění monitorovat pomocí položek experimentu ML v prostředcích infrastruktury.

Modul flaml.visualization nabízí funkce pro vykreslení a porovnání spuštění ve FLAML. Uživatelé můžou pomocí Plotly pracovat se svými diagramy experimentů AutoML. Aby mohli tyto funkce používat, musí uživatelé zadat optimalizovaný flaml.AutoML objekt nebo flaml.tune.tune.ExperimentAnalysis objekt.

V tomto článku se naučíte, jak pomocí flaml.visualization modulu analyzovat a prozkoumat výsledky zkušební verze AutoML. Můžete také postupovat stejným postupem pro zkušební verzi hyperparametru.

Důležité

Tato funkce je ve verzi Preview.

Vytvoření zkušební verze AutoML

AutoML nabízí sadu automatizovaných procesů, které můžou identifikovat nejlepší kanál strojového učení pro vaši datovou sadu, což celý proces modelování usnadňuje a často přesněji. V podstatě vám ušetří potíže s ručním laděním různých modelů a hyperparametrů.

V následující buňce kódu:

  1. Načtěte datovou sadu Iris.
  2. Rozdělte data na trénovací a testovací sady.
  3. Zahajte zkušební verzi AutoML tak, aby vyhovovala našim trénovacím datům.
  4. Prozkoumejte výsledky naší zkušební verze AutoML s vizualizacemi z 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)

Vizualizace výsledků experimentu

Po spuštění zkušební verze AutoML je potřeba vizualizovat výsledky a analyzovat, jak dobře modely fungovaly a jak se chovaly. V této části naší dokumentace vám ukážeme, jak pro tento účel používat integrované nástroje v knihovně FLAML.

Import modulu vizualizace

Pro přístup k těmto nástrojům pro vizualizaci spustíme následující příkaz importu:

import flaml.visualization as fviz

Historie optimalizace

Graf historie optimalizace obvykle obsahuje počet pokusů/iterací na ose x a metriku výkonu (například přesnost, RMSE atd.) na ose y. S rostoucím počtem pokusů byste viděli spojnicový nebo bodový graf označující výkon každé zkušební verze.

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

Tady je výsledný graf:

Graf historie optimalizace

Důležitost funkcí

Diagram důležitosti funkcí je výkonný vizualizační nástroj, který umožňuje pochopit význam různých vstupních funkcí při určování předpovědí modelu.

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

Tady je výsledný graf:

Graf důležitosti funkcí

Paralelní souřadnicový graf

Paralelní souřadnicový graf je vizualizační nástroj, který představuje vícerozměrná data nakreslením více svislých čar (os) odpovídajících proměnným nebo hyperparametrům s datovými body vynesenými jako propojené čáry napříč těmito osami. V kontextu autoML nebo ladění experimentu je nástroj pro vizualizaci a analýzu výkonu různých kombinací hyperparametrů. Trasováním cest vysoce výkonných konfigurací lze rozpoznat vzory nebo trendy v možnostech hyperparametrů a jejich interakcích. Tento graf pomáhá pochopit, které kombinace vedou k optimálnímu výkonu, určit potenciální oblasti pro další průzkum a identifikovat případné kompromisy mezi různými hyperparametry.

Tento nástroj přebírá následující další argumenty:

  • learner: Zadejte žáka, který chcete v experimentu studovat. Tento parametr platí jenom pro výsledky experimentu AutoML. Když necháte toto prázdné, systém zvolí nejlepšího žáka v celém experimentu.

  • params: Seznam určující, který hyperparametr se má zobrazit. Když necháte toto prázdné, systém zobrazí všechny dostupné hyperparametry.

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()

Tady je výsledný graf:

Graf paralelního souřadnicového grafu

Obrysový graf

Obrysový graf vizualizuje trojrozměrná data ve dvou dimenzích, kde osy x a y představují dva hyperparametry a obrysové čáry nebo vyplněné obrysy znázorňují úrovně metriky výkonu (například přesnost nebo ztráta). V kontextu autoML nebo ladění experimentu je obrysový graf přínosem pro pochopení vztahu mezi dvěma hyperparametry a jejich kombinovaným účinkem na výkon modelu.

Prozkoumáním hustoty a umístění obrysových čar můžete identifikovat oblasti prostoru hyperparametrů, kde je výkon optimalizovaný, zjistit potenciální kompromisy mezi hyperparametry a získat přehled o jejich interakcích. Tato vizualizace pomáhá upřesnit prostor hledání a proces ladění.

Tento nástroj přijímá také následující argumenty:

  • learner: Zadejte žáka, který chcete v experimentu studovat. Tento parametr platí jenom pro výsledky experimentu AutoML. Když necháte toto prázdné, systém zvolí nejlepšího žáka v celém experimentu.

  • params: Seznam určující, který hyperparametr se má zobrazit. Když necháte toto prázdné, systém zobrazí všechny dostupné hyperparametry.

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()

Tady je výsledný graf:

Graf obrysového grafu

Empirická distribuční funkce

Empirický distribuční graf (EDF), často vizualizovaný jako kroková funkce, představuje kumulativní pravděpodobnost datových bodů, která je menší nebo rovna určité hodnotě. V rámci experimentu AutoML nebo ladění je možné pomocí diagramu EDF vizualizovat distribuci výkonu modelu v různých konfiguracích hyperparametrů.

Pozorováním strmosti nebo plochosti křivky v různých bodech lze pochopit koncentraci dobrého nebo špatného výkonu modelu. Tato vizualizace nabízí přehled o celkové účinnosti procesu ladění a zdůrazňuje, jestli většina pokusných konfigurací přináší uspokojivé výsledky nebo jestli vynikne jenom několik konfigurací.

Poznámka:

U experimentů AutoML se během trénování použije více modelů. Zkoušky každého žáka jsou reprezentovány jako série optimalizace. V případě experimentů s laděním hyperparametrů bude k dispozici pouze jeden žák, který se vyhodnotí. Můžete ale poskytnout další ladění experimentů, abyste viděli trendy v jednotlivých učeních.

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

Tady je výsledný graf:

Graf empirické distribuční funkce

Graf časové osy

Graf časové osy, často reprezentovaný jako Ganttův diagram nebo posloupnost pruhů, vizualizuje začátek, dobu trvání a dokončení úkolů v průběhu času. V kontextu autoML nebo ladění experimentu může graf časové osy ukázat průběh různých vyhodnocení modelu a jejich odpovídající doby trvání vykreslené v čase. Při sledování tohoto grafu můžou uživatelé pochopit efektivitu procesu vyhledávání, identifikovat potenciální kritické body nebo nečinná období a pochopit časovou dynamiku různých vyhodnocení hyperparametrů.

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

Tady je výsledný graf:

Graf grafu časové osy

Výsečový graf

Vykreslení relace parametru jako průřezového grafu ve studii

Tento nástroj přijímá také následující argumenty:

  • learner: Zadejte žáka, který chcete v experimentu studovat. Tento parametr platí jenom pro výsledky experimentu AutoML. Když necháte toto prázdné, systém zvolí nejlepšího žáka v celém experimentu.

  • params: Seznam určující, který hyperparametr se má zobrazit. Když necháte toto prázdné, systém zobrazí všechny dostupné hyperparametry.

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

Tady je výsledný graf:

Graf výsečového grafu

Důležitost hyperparametrů

Graf důležitosti hyperparametrů vizuálně řadí hyperparametry na základě jejich vlivu na výkon modelu v experimentu AutoML nebo ladění. Obvykle se zobrazuje jako pruhový graf, kvantifikuje dopad jednotlivých hyperparametrů na cílovou metriku. Zkoumáním tohoto grafu můžou odborníci rozpoznat, které hyperparametry jsou při určování výsledků modelu pivotální a které mají minimální účinek.

Tento nástroj přijímá také následující argumenty:

  • learner: Zadejte žáka, který chcete v experimentu studovat. Tento parametr platí jenom pro výsledky experimentu AutoML. Když necháte toto prázdné, systém zvolí nejlepšího žáka v celém experimentu.

  • params: Seznam určující, který hyperparametr se má zobrazit. Když necháte toto prázdné, systém zobrazí všechny dostupné hyperparametry.

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

Tady je výsledný graf:

Graf důležitosti hyperparametrů