Trainingsvisualisaties (preview)
Met een proefversie van hyperparameters of AutoML-proefversie wordt gezocht naar de optimale parameters voor een machine learning-model. Elke proefversie bestaat uit meerdere uitvoeringen, waarbij elke uitvoering een specifieke parametercombinatie evalueert. Gebruikers kunnen deze uitvoeringen bewaken met ML-experimentitems in Fabric.
De flaml.visualization
module biedt functies voor het tekenen en vergelijken van de uitvoeringen in FLAML. Gebruikers kunnen Plotly gebruiken om te communiceren met hun AutoML-experimentplots. Om deze functies te kunnen gebruiken, moeten gebruikers hun geoptimaliseerde flaml.AutoML
of flaml.tune.tune.ExperimentAnalysis
object invoeren.
In dit artikel leert u hoe u de flaml.visualization
module gebruikt om uw AutoML-proefresultaten te analyseren en te verkennen. U kunt ook dezelfde stappen volgen voor uw hyperparameter-proefversie.
Belangrijk
Deze functie is beschikbaar als preview-versie.
Een AutoML-proefversie maken
AutoML biedt een reeks geautomatiseerde processen die de beste machine learning-pijplijn voor uw gegevensset kunnen identificeren, waardoor het hele modelleringsproces eenvoudiger en vaak nauwkeuriger wordt. In wezen bespaart het u de moeite om verschillende modellen en hyperparameters met de hand af te stemmen.
In de onderstaande codecel gaan we het volgende doen:
- Laad de Iris-gegevensset.
- Splits de gegevens in trainings- en testsets.
- Initieer een AutoML-proefversie om aan onze trainingsgegevens te voldoen.
- Bekijk de resultaten van onze AutoML-proefversie met de visualisaties van
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)
De resultaten van het experiment visualiseren
Zodra u een AutoML-proefversie hebt uitgevoerd, moet u de resultaten visualiseren om te analyseren hoe goed de modellen presteerden en hoe ze zich gedragen. In dit deel van onze documentatie laten we u zien hoe u hiervoor de ingebouwde hulpprogramma's in de FLAML-bibliotheek kunt gebruiken.
Visualisatiemodule importeren
Voor toegang tot deze hulpprogramma's voor visualisaties voeren we de volgende importopdracht uit:
import flaml.visualization as fviz
Optimalisatiegeschiedenis
Een optimalisatiegeschiedenisplot heeft doorgaans het aantal experimenten/iteraties op de x-as en een prestatiemetriek (zoals nauwkeurigheid, RMSE, enzovoort) op de y-as. Naarmate het aantal experimenten toeneemt, ziet u een lijn- of spreidingsplot dat de prestaties van elke proefversie aangeeft.
fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()
Dit is de resulterende plot:
Urgentie van functies
Een functiebelangplot is een krachtig visualisatiehulpmiddel waarmee u inzicht krijgt in de betekenis van verschillende invoerfuncties bij het bepalen van de voorspellingen van een model.
fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()
Dit is de resulterende plot:
Parallelcoördinaatdiagram
Een parallelle coördinaatplot is een visualisatiehulpmiddel dat multidimensionale gegevens vertegenwoordigt door meerdere verticale lijnen (assen) te tekenen die overeenkomen met variabelen of hyperparameters, waarbij gegevenspunten zijn uitgezet als verbonden lijnen op deze assen. In de context van een AutoML- of afstemmingsexperiment is het een instrument om de prestaties van verschillende combinaties van hyperparameters te visualiseren en analyseren. Door de paden van configuraties met hoge prestaties te traceren, kunt u patronen of trends herkennen in opties voor hyperparameters en hun interacties. Deze plot helpt bij het begrijpen welke combinaties leiden tot optimale prestaties, het aanwijzen van potentiële gebieden voor verdere verkenning en het identificeren van eventuele afwegingen tussen verschillende hyperparameters.
Dit hulpprogramma gebruikt de volgende andere argumenten:
learner
: Geef de cursist op die u in het experiment wilt bestuderen. Deze parameter is alleen van toepassing op resultaten van het AutoML-experiment. Door dit leeg te laten, kiest het systeem de beste cursist in het hele experiment.params
: Een lijst om op te geven welke hyperparameter moet worden weergegeven. Als u dit leeg laat, geeft het systeem alle beschikbare hyperparameters weer.
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()
Dit is de resulterende plot:
Contourdiagram
Een contourdiagram visualiseert driedimensionale gegevens in twee dimensies, waarbij de x- en y-assen twee hyperparameters vertegenwoordigen en de contourlijnen of gevulde contouren niveaus van een prestatiemetriek weergeven (bijvoorbeeld nauwkeurigheid of verlies). In de context van een AutoML- of afstemmingsexperiment is een contourplot nuttig voor het begrijpen van de relatie tussen twee hyperparameters en hun gecombineerde effect op modelprestaties.
Door de dichtheid en plaatsing van de contourlijnen te onderzoeken, kan men regio's van hyperparameterruimte identificeren waar de prestaties zijn geoptimaliseerd, mogelijke afwegingen tussen hyperparameters vaststellen en inzicht krijgen in hun interacties. Deze visualisatie helpt bij het verfijnen van de zoekruimte en het afstemmingsproces.
Dit hulpprogramma gebruikt ook de volgende argumenten:
learner
: Geef de cursist op die u in het experiment wilt bestuderen. Deze parameter is alleen van toepassing op resultaten van het AutoML-experiment. Door dit leeg te laten, kiest het systeem de beste cursist in het hele experiment.params
: Een lijst om op te geven welke hyperparameter moet worden weergegeven. Als u dit leeg laat, geeft het systeem alle beschikbare hyperparameters weer.
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()
Dit is de resulterende plot:
Empirische verdelingsfunctie
Een empirische verdelingsfunctie (EOF) die vaak wordt gevisualiseerd als een stapfunctie, vertegenwoordigt de cumulatieve kans dat gegevenspunten kleiner zijn dan of gelijk zijn aan een bepaalde waarde. Binnen een AutoML- of afstemmingsexperiment kan een EOF-plot worden gebruikt om de verdeling van modelprestaties in verschillende hyperparameterconfiguraties te visualiseren.
Door de steilheid of platheid van de curve op verschillende punten te observeren, kan men respectievelijk de concentratie van goede of slechte modelprestaties begrijpen. Deze visualisatie biedt inzicht in de algehele effectiviteit van het afstemmingsproces, waarbij wordt aangegeven of de meeste geprobeerde configuraties bevredigende resultaten opleveren of als slechts enkele configuraties opvallen.
Notitie
Voor AutoML-experimenten worden meerdere modellen toegepast tijdens de training. De proefversies van elke cursist worden weergegeven als een optimalisatiereeks. Voor hyperparameter-afstemmingsexperimenten is er slechts één cursist die wordt geëvalueerd. U kunt echter aanvullende afstemmingsexperimenten bieden om de trends voor elke cursist te bekijken.
fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()
Dit is de resulterende plot:
Tijdlijntekening
Een tijdlijntekening, vaak weergegeven als een Gantt-diagram of een reeks balken, visualiseert het begin, de duur en de voltooiing van taken in de loop van de tijd. In de context van een AutoML- of afstemmingsexperiment kan een tijdlijnplot de voortgang van verschillende modelevaluaties en hun respectieve duur, weergegeven op tijd. Door deze plot te observeren, kunnen gebruikers de efficiëntie van het zoekproces begrijpen, potentiële knelpunten of niet-actieve perioden identificeren en inzicht krijgen in de tijdelijke dynamiek van verschillende hyperparameterevaluaties.
fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()
Dit is de resulterende plot:
Segmenttekening
Teken de parameterrelatie als segmentplot in een studie.
Dit hulpprogramma gebruikt ook de volgende argumenten:
learner
: Geef de cursist op die u in het experiment wilt bestuderen. Deze parameter is alleen van toepassing op resultaten van het AutoML-experiment. Door dit leeg te laten, kiest het systeem de beste cursist in het hele experiment.params
: Een lijst om op te geven welke hyperparameter moet worden weergegeven. Als u dit leeg laat, geeft het systeem alle beschikbare hyperparameters weer.
fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()
Dit is de resulterende plot:
Hyperparameter-urgentie
Een hyperparameter-urgentieplot rangschikt hyperparameters visueel op basis van hun invloed op modelprestaties in een AutoML- of afstemmingsexperiment. Meestal weergegeven als staafdiagram, wordt de impact van elke hyperparameter op de doelmetriek gekwantificeerd. Door deze plot te onderzoeken, kunnen beoefenaars bepalen welke hyperparameters draaitabel zijn bij het bepalen van modelresultaten en welke een minimaal effect hebben.
Dit hulpprogramma gebruikt ook de volgende argumenten:
learner
: Geef de cursist op die u in het experiment wilt bestuderen. Deze parameter is alleen van toepassing op resultaten van het AutoML-experiment. Door dit leeg te laten, kiest het systeem de beste cursist in het hele experiment.params
: Een lijst om op te geven welke hyperparameter moet worden weergegeven. Als u dit leeg laat, geeft het systeem alle beschikbare hyperparameters weer.
fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()
Dit is de resulterende plot: