Jaa


Automaattianalyysipalvelut Fabricissa (esikatselu)

Automaattianalyysipalvelut (automaattianalyysipalvelut) on kokoelma menetelmiä ja työkaluja, joilla automatisoidaan koneoppimismallin harjoittamista ja optimointia ihmisen vähäisellä osallisuudella. Automaattianalyysipalveluiden tavoitteena on yksinkertaistaa ja nopeuttaa tietyn tietojoukon parhaan koneoppimismallin ja hyperparametrien valintaprosessia, mikä vaatii yleensä paljon osaamista ja laskentatehoa.

Tärkeä

Tämä ominaisuus on esikatselutilassa.

Fabricissa datatieteilijät voivat flaml.AutoML automatisoida koneoppimistehtäviään.

Automaattianalyysipalvelut voi auttaa koneoppimisen ammattilaisia ja kehittäjiä eri sektoreilta:

  • Koneoppimisratkaisujen luominen mahdollisimman pienellä koodaamisella
  • Ajan ja kustannusten pienentäminen
  • Sovella datatieteen parhaita käytäntöjä
  • Ratkaise ongelmat nopeasti ja tehokkaasti

Automaattianalyysipalveluiden työnkulku

flaml.AutoML on automaattianalyysipalveluiden luokka tehtävän perusteella. Sitä voidaan käyttää Scikit-learn-tyylinä arvioijana tavanomaisten istuvuus- ja ennustemenetelmien kanssa.

Jos haluat aloittaa automaattianalyysipalveluiden kokeilun, käyttäjien tarvitsee vain antaa harjoitustiedot ja tehtävätyyppi. Fabricin integroiduissa MLflow-käyttökokemuksissa käyttäjät voivat myös tarkastella kokeilujakson eri suorittamisjaksoja nähdäkseen, miten lopullinen malli valittiin.

Harjoitustiedot

Fabricissa käyttäjät voivat välittää AutoML-funktioon fit seuraavat syötetyypit:

  • Numpy Array: Kun syötetiedot tallennetaan Numpy-matriisiin, ne välitetään fit() X_train ja y_train.

  • Pandas dataframe: Kun syötetiedot tallennetaan Pandas-tietokehyksessä, ne välitetään fit() joko X_train ja y_train tai tietokehyksenä ja selitteenä.

  • Pandas on Spark dataframe: Kun syötetiedot tallennetaan Spark-tietokehyksenä, ne voidaan muuntaa Pandas Spark tietokehykseen käyttämällä to_pandas_on_spark() ja sitten välitetään fit() tietokehyksenä ja selitteenä.

    from flaml.automl.spark.utils import to_pandas_on_spark
    psdf = to_pandas_on_spark(sdf)
    automl.fit(dataframe=psdf, label='Bankrupt?', isUnbalance=True, **settings)
    

Koneoppimisongelma

Käyttäjät voivat määrittää koneoppimistehtävän -argumentin task avulla. On useita tuettuja koneoppimistehtäviä, kuten:

  • Luokitus: Luokitusmallien päätavoitteena on ennustaa, mihin luokkiin uudet tiedot kuuluvat sen koulutustietojen oppimisen perusteella. Yleisiä luokitusesimerkkejä ovat petosten havaitseminen, käsinkirjoituksen tunnistaminen ja objektintunnistus.
  • Regressio: Regressiomallit ennustavat numeerisia tulostearvoja riippumattomien ennusteiden perusteella. Regressiossa tavoitteena on auttaa luomaan suhde näiden riippumattomien ennustemuuttujien välillä arvioimalla, miten yksi muuttuja vaikuttaa muihin. Esimerkiksi autojen hinnat perustuvat esimerkiksi ominaisuuksiin, esimerkiksi kaasun ajokilometröihin, turvallisuusluokitukseen jne.
  • Aikasarjan ennusteet: Tätä käytetään tulevien arvojen ennustamiseen ajan mukaan järjestettyjen historiallisten arvopisteiden perusteella. Aikasarjassa tietoja kerätään ja tallennetaan säännöllisin väliajoin tietyltä ajanjaksolta, kuten päivittäin, viikoittain, kuukausittain tai vuosittain. Aikasarjaennusteiden tavoitteena on tunnistaa tiedoissa olevat mallit, trendit ja kausivaihtelu ja tehdä sitten ennusteita tulevasta arvosta näiden tietojen avulla.

Jos haluat lisätietoja muista FLAML:n tukemista tehtävistä, voit tutustua AUTOMAATTIANALYYSIPALVELUT-tehtävien dokumentaatioon FLAML:ssä.

Valinnaiset syötteet

Määritä automaattianalyysipalveluiden kokeiluversio erilaisten rajoitusten ja syötteiden avulla.

Rajoitteet

Kun luot Automaattianalyysipalveluiden kokeiluversiota, käyttäjät voivat myös määrittää rajoituksia automaattianalyysipalveluprosessille, mahdollisten estimaattorien konstruktoriargumentteja, automaattianalyysipalvelussa kokeiltuja mallityyppejä ja jopa automaattianalyysipalveluiden kokeilun mittareiden rajoituksia.

Alla olevan koodin avulla käyttäjät voivat esimerkiksi määrittää automaattianalyysipalveluiden kokeiluversion mittausrajoitusta.

metric_constraints = [("train_loss", "<=", 0.1), ("val_loss", "<=", 0.1)]
automl.fit(X_train, y_train, max_iter=100, train_time_limit=1, metric_constraints=metric_constraints)

Lisätietoja näistä määrityksistä on FLAML:n määritysten ohjeissa.

Optimoinnin mittari

Koulutuksen aikana automaattianalyysipalvelufunktio luo useita kokeiluja, joissa kokeillaan erilaisia algoritmeja ja parametreja. AutoML-työkalu iteroi koneoppimisalgoritmien ja hyperparametrien kautta. Tässä prosessissa jokainen iterointi luo mallin, jossa on harjoituspisteet. Mitä paremmat pisteet mittarille haluat optimoida, sitä paremmin mallin katsotaan sopivan tietoihisi. Optimointiarvo määritetään -argumentin metric kautta. Se voi olla joko merkkijono, joka viittaa sisäiseen arvoon, tai käyttäjän määrittämä funktio.

Automaattianalyysipalveluiden optimoinnin mittarit

Rinnakkainen viritys

Joissakin tapauksissa saatat haluta nopeuttaa automaattianalyysipalveluiden kokeilujaksoa käyttämällä Apache Sparkiä harjoittamisen rinnakkaistamiseksi. Spark-klustereissa FLAML käynnistää oletusarvoisesti yhden kokeiluversion suoritettavaa tiedostoa kohden. Voit myös mukauttaa samanaikaisten kokeilujen määrää käyttämällä -argumenttia n_concurrent_trials .

automl.fit(X_train, y_train, n_concurrent_trials=4, use_spark=True)

Saat lisätietoja automaattianalyysipalveluiden jälkien rinnakkaistamisesta käymällä FLAML-dokumentaatiossa rinnakkaisten Spark-töiden osalta.

Seuraa MLflow'n avulla

Voit käyttää myös Fabric MLflow -integrointia tutkitun polun mittareiden, parametrien ja mittareiden tallentamiseen.

import mlflow
mlflow.autolog()

with mlflow.start_run(nested=True):
    automl.fit(dataframe=pandas_df, label='Bankrupt?', mlflow_exp_name = "automl_spark_demo")

# You can also provide a run_name pre-fix for the child runs

automl_experiment = flaml.AutoML()
automl_settings = {
    "metric": "r2",
    "task": "regression",
    "use_spark": True,
    "mlflow_exp_name": "test_doc",
    "estimator_list": [
        "lgbm",
        "rf",
        "xgboost",
        "extra_tree",
        "xgb_limitdepth",
    ],  # catboost does not yet support mlflow autologging
}
with mlflow.start_run(run_name=f"automl_spark_trials"):
    automl_experiment.fit(X_train=train_x, y_train=train_y, **automl_settings)

Tuetut mallit

Fabricin automaattianalyysipalvelut tukee seuraavia malleja:

Luokittelu Regressio Aikasarjan ennusteet
(PySpark) Liukuväritehostetut puut (GBT) -luokitus (PySpark) Nopeutetun epäonnistumisen aika (AFT) eloonjäämis regressio Arimax
(PySpark) Lineaarinen SVM (PySpark) Yleinen lineaarinen regressio AutoARIMA
(PySpark) Naive Bayes (PySpark) Liukuväritehostetut puut (GBT) regressio Average
(Synapse) Vaalea Gtm (PySpark) Lineaarinen regressio CatBoost
CatBoost (Synapse) Vaalea Gtm Päätöspuu
Päätöspuu CatBoost ExponentialSmoothing
Erittäin satunnaiset puut Päätöspuu Erittäin satunnaiset puut
Liukuvärin tehostaminen Elastic Net ForecastTCN
K Lähimmät naapurit Erittäin satunnaiset puut Liukuvärin tehostaminen
Vaalea Gtm Liukuvärin tehostaminen Holt-Winters eksponentiaalinen tasoitus
Lineaarinen SVC K Lähimmät naapurit K Lähimmät naapurit
Logistinen regressio LARS Lasso LARS Lasso
Logistinen regressio L1/L2-säännönmukaistuksilla Vaalea Gtm Vaalea Gtm
Naive Bayes Logistinen regressio L1/L2-säännönmukaistuksilla Naiivi
Random Forest Random Forest Kiertorata
Random Forest on Spark Random Forest on Spark Profeetta
Stochastic Gradient Descent (SGD) Stochastic Gradient Descent (SGD) Random Forest
Tukivektoriluokitus (SVC) XGBoost SARIMAX
XGboost XGBoost rajoitetulla syvyydellä Kausivaihtelu
XGBoost rajoitetulla syvyydellä Kausiluonteinen
Temporal Fusion Transformer
XGBoost
XGBoost Aikasarjalle
XGBoost rajoitetulla syvyydellä aikasarjaa varten
ElasticNet

Tulosten visualisointi

- flaml.visualization moduuli tarjoaa apuohjelmafunktioita optimointiprosessin piirtämiseen Plotlyn avulla. Plotlya hyödyntämällä käyttäjät voivat tarkastella automaattianalyysipalvelukokeilujen tuloksiaan vuorovaikutteisesti. Jos haluat käyttää näitä piirtofunktioita, anna syötteenä optimoitu flaml.AutoML objekti tai flaml.tune.tune.ExperimentAnalysis objekti.

Voit käyttää muistikirjassa seuraavia funktioita:

  • plot_optimization_history: Plot optimization history of all trials in the experiment.
  • plot_feature_importance: Korosta kunkin tietojoukon ominaisuuden tärkeys.
  • plot_parallel_coordinate: Piirtää suuriulotteiset parametrisuhteet kokeilussa.
  • plot_contour: Piirtää parametrisuhteen kiertotiekaavioksi kokeilussa.
  • plot_edf: Piirtää kokeilun tavoitearvon EDF (empiirinen jakaumafunktio).
  • plot_timeline: Piirtää kokeilun aikajanan.
  • plot_slice: Piirtää parametrisuhteen tutkimuksen osittajakaavioksi.
  • plot_param_importance: Piirtää kokeen hyperparametrin tärkeyden.