Jaa


Harjoitusvisualisoinnit (esiversio)

Hyperparameterin kokeiluversio tai autoML-kokeilu etsii optimaalisia parametreja koneoppimismallille. Jokainen kokeiluversio koostuu useista suorituksista, joissa kukin suoritus arvioi tietyn parametriyhdistelmän. Käyttäjät voivat seurata näitä suoritukset koneoppimiskokeilukohteiden avulla Fabricissa.

- flaml.visualization moduuli tarjoaa funktioita, joiden avulla voit piirtää ja vertailla suoritusten suorittamista FLAML:ssä. Käyttäjät voivat käyttää Plotlyn avulla automaattianalyysipalvelukokeilujen kaavioita. Jotta näitä funktioita voidaan käyttää, käyttäjien on syötettävä optimoitu objekti tai flaml.tune.tune.ExperimentAnalysis optimoitu flaml.AutoML objekti.

Tässä artikkelissa opetetaan, miten voit käyttää - flaml.visualization moduulia autoML-kokeilutulosten analysoimiseen ja tutkimiseen. Voit noudattaa samoja vaiheita myös hyperparameter-kokeilussasi.

Tärkeä

Tämä ominaisuus on esikatselutilassa.

Automaattianalyysipalveluiden kokeiluversion luominen

Automaattianalyysipalvelut tarjoaa joukon automatisoituja prosesseja, joiden avulla voit tunnistaa tietojoukollesi parhaan koneoppimisputken ja tehdä koko mallinnusprosessista suoraviivaisemman ja usein tarkemman. Pohjimmiltaan se säästää ongelmia eri mallien ja hyperparametrien säätämisestä käsin.

Alla olevassa koodisolussa tehdään seuraavat:

  1. Lataa Iris-tietojoukko.
  2. Jaa tiedot harjoittamiseen ja testijoukkoihin.
  3. Aloita automaattianalyysipalveluiden kokeilu, jotta voit sovittaa harjoitustietomme.
  4. Tutustu AutoML-kokeiluversion tuloksiin visualisointien avulla palvelusta 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)

Visualisoi kokeilutulokset

Kun suoritat automaattianalyysipalveluiden kokeiluversion, sinun on visualisoitava tulokset ja analysoitava, miten hyvin mallit toimivat ja miten ne toimivat. Tässä ohjeidemme osassa näytämme, miten voit käyttää FLAML-kirjaston sisäisiä apuohjelmia tähän tarkoitukseen.

Visualisointimoduulin tuominen

Jos haluat käyttää näitä visualisointiapuohjelmia, suoritamme seuraavan tuontikomennon:

import flaml.visualization as fviz

Optimointihistoria

Optimointihistorian kaaviossa on yleensä x-akselilla olevien kokeilujen/iterointien määrä ja y-akselin suorituskykymittari (kuten tarkkuus, RMSE jne.). Kun kokeilujen määrä kasvaa, näkyviin tulee rivi- tai pistekaavio, joka osoittaa kunkin kokeilujakson suorituskyvyn.

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

Tuloksena oleva kaavio on seuraava:

Optimointihistorian kaavio.

Ominaisuuden tärkeys

Ominaisuuden tärkeyden piirto on tehokas visualisointityökalu, jonka avulla voit ymmärtää eri syöteominaisuuksien merkityksen mallin ennusteiden määrittämisessä.

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

Tuloksena oleva kaavio on seuraava:

Ominaisuuden tärkeyden kaavio.

Rinnakkainen koordinaattikaavio

Rinnakkainen koordinaattikaavio on visualisointityökalu, joka edustaa monidimensioisia tietoja piirtämällä useita muuttujia tai hyperparametria vastaavia pystysuuntaisia viivoja (akselit), joiden arvopisteet on piirretty yhdistettyinä viivoina näiden akselien yli. Automaattianalyysipalvelu- tai virityskokeilun yhteydessä se on ratkaisevassa asemassa eri hyperparametriyhdistelmien suorituskyvyn visualisoinnissa ja analysoinnissa. Kun seuraat suorituskykyisten määritysten polkuja, voit havaita hyperparametrivalintojen malleja tai trendejä sekä niiden vuorovaikutuksia. Tämä kaavio auttaa ymmärtämään, mitkä yhdistelmät johtavat optimaaliseen suorituskykyyn, määrittämään mahdolliset alueet tarkempaa tarkastelua varten ja tunnistamaan eri hyperparametrien väliset kompromissit.

Tämä apuohjelma ottaa seuraavat muut argumentit:

  • learner: Määritä oppija, jota aiot tutkia kokeilussa. Tämä parametri soveltuu vain automaattianalyysipalveluiden kokeilutuloksiin. Jättäen tämän tyhjän, järjestelmä valitsee koko kokeilun parhaan oppijan.

  • params: Luettelo, joka määrittää näytettävän hyperparametrin. Kun tämä jätetään tyhjäksi, järjestelmä näyttää kaikki käytettävissä olevat hyperparametrit.

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

Tuloksena oleva kaavio on seuraava:

Rinnakkaisen koordinaattikaavion kaavio.

Kiertotiekaavio

Kiertotiekaavio visualisoi kolmiulotteiset tiedot kahdessa ulottuvuudessa, joissa x- ja y-akselit edustavat kahta hyperparametria, ja ääriviivat tai täytetyt kiertoviivat kuvaavat suorituskykymittarin tasoja (esimerkiksi tarkkuutta tai menetystä). Automaattianalyysipalvelu- tai virityskokeilun yhteydessä kiertokaavio on hyödyllinen kahden hyperparametrin välisen suhteen ja niiden yhdistetyn vaikutuksen ymmärtämiseksi mallin suorituskykyyn.

Tarkastelemalla ääriviivojen tiheyttä ja sijaintia voidaan tunnistaa hyperparametritilan alueet, joissa suorituskyky on optimoitu, havaita mahdolliset kompromissit hyperparametrien välillä ja saada merkityksellisiä tietoja niiden vuorovaikutuksista. Tämä visualisointi auttaa tarkentamaan hakutilaa ja säätämisprosessia.

Tämä apuohjelma käyttää myös seuraavia argumentteja:

  • learner: Määritä oppija, jota aiot tutkia kokeilussa. Tämä parametri soveltuu vain automaattianalyysipalveluiden kokeilutuloksiin. Jättäen tämän tyhjän, järjestelmä valitsee koko kokeilun parhaan oppijan.

  • params: Luettelo, joka määrittää näytettävän hyperparametrin. Kun tämä jätetään tyhjäksi, järjestelmä näyttää kaikki käytettävissä olevat hyperparametrit.

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

Tuloksena oleva kaavio on seuraava:

Kiertokaavion kaavio.

Empiirinen jakaumafunktio

Empiirisen jakauman funktion (EDF) piirto, joka usein visualisoidaan vaihefunktioksi, edustaa kumulatiivista todennäköisyyttä sille, että arvopisteet ovat pienempiä tai yhtä suuria kuin tietty arvo. Automaattianalyysipalveluissa tai virityskokeissa voidaan käyttää EDF-piirtoa mallisuoritusten jakauman visualisointiin eri hyperparametrikokoonpanoissa.

Kun tarkkailet käyrän jyrkkyyttä tai tasaisuutta eri kohdissa, voit ymmärtää mallin hyvän tai huonon suorituskyvyn pitoisuuden. Tämä visualisointi tarjoaa merkityksellistä tietoa säätöprosessin kokonaistehosta ja korostaa, tuottavatko useimmat määritykset tyydyttävät tulokset vai erottuvatko vain muutamat määritykset.

Muistiinpano

Automaattianalyysipalveluiden kokeissa koulutuksen aikana käytetään useita malleja. Kunkin oppijan kokeiluversiot esitetään optimointisarjana. Hyperparametrisäätökokeissa arvioidaan vain yhtä oppijaa. Voit kuitenkin tarjota lisää säätökokeiluja, joiden avulla näet kunkin oppijan trendit.

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

Tuloksena oleva kaavio on seuraava:

Empiirisen jakauman funktion piirtokaavion kaavio.

Aikajanan piirto

Aikajanan piirto, joka esitetään usein Gantt-kaaviona tai palkkien sarjana, visualisoi tehtävien alun, keston ja valmistumisen ajan kuluessa. Automaattianalyysipalveluita tai virityskokeiluja varten aikajanakaavio voi näyttää eri malliarviointien etenemisen ja niiden kestot, jotka on piirretty aikaa vasten. Tarkkailemalla tätä kaaviota käyttäjät voivat ymmärtää hakuprosessin tehokkuuden, tunnistaa mahdolliset pullonkaulat tai käyttämättömyysjaksot ja ymmärtää erilaisten hyperparametrien arviointien temporaalisen dynamiikan.

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

Tuloksena oleva kaavio on seuraava:

Aikajanakaavion kaavio.

Osittajakaavio

Piirtää parametrisuhteen osittajien piirtokaavioksi tutkimuksessa.

Tämä apuohjelma käyttää myös seuraavia argumentteja:

  • learner: Määritä oppija, jota aiot tutkia kokeilussa. Tämä parametri soveltuu vain automaattianalyysipalveluiden kokeilutuloksiin. Jättäen tämän tyhjän, järjestelmä valitsee koko kokeilun parhaan oppijan.

  • params: Luettelo, joka määrittää näytettävän hyperparametrin. Kun tämä jätetään tyhjäksi, järjestelmä näyttää kaikki käytettävissä olevat hyperparametrit.

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

Tuloksena oleva kaavio on seuraava:

Kaavio osittajakaaviosta.

Hyperparametrin tärkeys

Hyperparametrin tärkeyden kaavio asettaa hyperparametrit visuaalisesti paremmiteettiin sen perusteella, miten ne vaikuttavat automaattianalyysipalveluiden tai virityskokeilun mallin suorituskykyyn. Yleensä palkkikaaviona näytettynä se kvantifioi kunkin hyperparametrin vaikutuksen kohdearvoon. Tarkastelemalla tätä kaaviota harjoittajat voivat nähdä, mitkä hyperparametrit ovat keskeisiä mallin tulosten määrittämisessä ja millä toiminnoilla on minimaalinen vaikutus.

Tämä apuohjelma käyttää myös seuraavia argumentteja:

  • learner: Määritä oppija, jota aiot tutkia kokeilussa. Tämä parametri soveltuu vain automaattianalyysipalveluiden kokeilutuloksiin. Jättäen tämän tyhjän, järjestelmä valitsee koko kokeilun parhaan oppijan.

  • params: Luettelo, joka määrittää näytettävän hyperparametrin. Kun tämä jätetään tyhjäksi, järjestelmä näyttää kaikki käytettävissä olevat hyperparametrit.

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

Tuloksena oleva kaavio on seuraava:

Kaavio hyperparametrin tärkeyden kaaviosta.