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.
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äänfit()
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.