Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Automatizované strojové učenie (Automated strojové učenie) je kolekcia metód a nástrojov, ktoré automatizujú trénovanie a optimalizáciu modelu strojového učenia s malou účasťou ľudí. Cieľom automatizovaného strojového učenia je zjednodušiť a urýchliť proces výberu najlepšieho modelu strojového učenia a hyperparametrov pre danú množinu údajov, ktorá si zvyčajne vyžaduje veľa zručností a výpočtový výkon.
Dôležité
Táto funkcia je vo verzii Preview.
V službe Fabric môžu dátoví vedci použiť flaml.AutoML
na automatizáciu úloh strojového učenia.
Automatizované strojové učenie môže pomôcť profesionálom v oblasti strojového učenia a vývojárom z rôznych odvetví:
- Zostavovanie riešení strojového učenia s minimálnym kódovaním
- Skracovať čas a náklady
- Použitie osvedčených postupov pre dátovú vedu
- Rýchle a efektívne riešenie problémov
Pracovný postup automatizovaného strojového učenia
flaml.AutoML
je trieda automatizovaného strojového učenia založená na úlohe. Môže sa použiť ako odhad štýlu Scikit-learn s bežnými metódami prispôsobenia a predpovedanie.
Na spustenie skúšobnej verzie automatizovaného strojového učenia musia používatelia zadať iba tréningové údaje a typ úlohy. Vďaka integrovaným prostrediam toku MLflow v službe Fabric môžu používatelia tiež preskúmať rôzne spustenia, ktoré sa pokúsili v skúšobnej verzii, aby zistili, ako bol vybraný konečný model.
Tréningové údaje
V službe Fabric môžu používatelia funkcii automatizovaného strojového fit
učenia odovzdať nasledujúce typy vstupov:
Numpy Array: Keď sú vstupné údaje uložené v poli Numpy, prenesú sa do
fit()
X_train a y_train.Údajový rámec Pandas: Keď sú vstupné údaje uložené v údajovom rámci Pandas, prenesú sa buď ako
fit()
X_train a y_train, alebo ako údajový rámec a označenie.Údajový rámec Pandas on Spark: Keď sú vstupné údaje uložené ako údajový rámec Spark, možno ho skonvertovať na
Pandas
údajovýSpark
rámec pomocouto_pandas_on_spark()
údajového rámca a potom ho odovzdaťfit()
ako údajový rámec a označenie.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)
Problém so strojového učením
Používatelia môžu zadať úlohu strojového učenia pomocou argumentu task
. Existujú rôzne podporované úlohy strojového učenia vrátane:
- Klasifikácia: Hlavným cieľom modelov klasifikácie je predpovedať, do ktorých kategórií spadajú nové údaje na základe poznatkov z tréningových údajov. Bežné príklady klasifikácie zahŕňajú zisťovanie podvodov, rozpoznávanie rukopisu a zisťovanie objektov.
- Regresia: Regresné modely predpovedajú číselné výstupné hodnoty založené na nezávislých prediktoroch. Pri regresii je cieľom pomôcť vytvoriť vzťah medzi týmito nezávislými premennými prediktora odhadom toho, aký vplyv má jedna premenná na ostatné. Napríklad ceny automobilov založené na funkciách, ako sú výjazd kilometrov, hodnotenie bezpečnosti atď.
- Time Series Forecasting (Predpovedanie časového radu): Používa sa na predpovedanie budúcich hodnôt na základe historických údajových bodov zoradených podľa času. V časovom rade sa údaje zhromažďujú a zaznamenávajú v pravidelných intervaloch počas určitého obdobia, ako napríklad denne, týždenne, mesačne alebo ročne. Cieľom prognózovania časových radov je identifikovať vzory, trendy a sezónnosť v údajoch a potom použiť tieto informácie na vytvorenie predpovedí o budúcej hodnote.
Ďalšie informácie o ďalších úlohách podporovaných vo formáte FLAML nájdete v dokumentácii o úlohách automatizovaného strojového učenia vo formáte FLAML.
Voliteľné vstupy
Zadajte rôzne obmedzenia a vstupy na konfiguráciu skúšobnej verzie automatizovaného strojového učenia.
Obmedzenia
Pri vytváraní skúšobnej verzie automatizovaného strojového učenia môžu používatelia nakonfigurovať obmedzenia procesu automatizovaného strojového učenia, argumenty konštruktorov potenciálnych odhadcov, typy modelov vyskúšané v automatizovaného strojového učenia a dokonca obmedzenia týkajúce sa metrík skúšobnej verzie automatizovaného strojového učenia.
Nižšie uvedený kód napríklad umožňuje používateľom určiť obmedzenie metrík v skúšobnej verzii automatizovaného strojového učenia.
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)
Ďalšie informácie o týchto konfiguráciách nájdete v dokumentácii o konfiguráciách vo formáte FLAML.
Metrika optimalizácie
Počas trénovania vytvorí funkcia automatizovaného strojového učenia množstvo skúšok, ktoré skúsia rôzne algoritmy a parametre. Nástroj automatizovaného strojového učenia iteruje prostredníctvom algoritmov strojového učenia a hyperparametrov. V tomto procese vytvorí každá iterácia model s skóre tréningu. Čím lepšie skóre pre metriku, pre ktorú chcete optimalizovať, tým lepšie sa model považuje za "prispôsobiť" vašim údajom. Metrika optimalizácie sa zadáva prostredníctvom argumentu metric
. Môže ísť buď o reťazec, ktorý odkazuje na vstavanú metriku, alebo o funkciu definovanú používateľom.
Metrika optimalizácie automatizovaného strojového učenia
Paralelné ladenie
V niektorých prípadoch môžete chcieť urýchliť skúšobnú verziu automatizovaného strojového učenia pomocou služby Apache Spark, aby ste mohli paralelne trénovať. V prípade klastrov Spark spustí funkcia FLAML predvolene jednu skúšobnú verziu na jeden spustiteľný súbor. Počet súbežných skúšobných verzií môžete tiež prispôsobiť pomocou argumentu n_concurrent_trials
.
automl.fit(X_train, y_train, n_concurrent_trials=4, use_spark=True)
Ďalšie informácie o tom, ako paralelne pracovať s cestami automatizovaného strojového učenia, nájdete v dokumentácii flaml pre paralelné úlohy v službe Spark.
Sledovanie pomocou toku MLflow
Môžete tiež použiť integráciu toku MLflow služby Fabric na zachytenie metrík, parametrov a metrík preskúmaných trás.
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)
Podporované modely
Automatizované strojové učenia v službe Fabric podporuje nasledujúce modely:
Klasifikácia | Regresia | Time Series Forecasting |
---|---|---|
(PySpark) Klasifikantný klasifikant so zvýrazneným stromom (GBT) | (PySpark) Zrýchlený čas zlyhania (AFT) prežitie regresie | Arimax |
(PySpark) Lineárny SVM | (PySpark) Zovšeobecnená lineárna regresia | AutoARIMA |
(PySpark) Naive Bayes | (PySpark) Regresia zosilnených stromov s prechodom (GBT) | Priemer |
(Synapse) LightGBM | (PySpark) Lineárna regresia | CatBoost |
CatBoost | (Synapse) LightGBM | Rozhodovací strom |
Rozhodovací strom | CatBoost | ExponenciálneMoothing |
Extrémne randomizované stromy | Rozhodovací strom | Extrémne randomizované stromy |
Zvýšenie prechodu | Elastic Net | ForecastTCN |
K Najbližší susedia | Extrémne randomizované stromy | Zvýšenie prechodu |
Light GBM | Zvýšenie prechodu | Holt-Winters Exponential Smoothing |
Lineárny SVC | K Najbližší susedia | K Najbližší susedia |
Logistická regresia | LARS Lasso | LARS Lasso |
Logistická regresia s lodnými lokalizáciami L1/L2 | Light GBM | Light GBM |
Naive Bayes | Logistická regresia s lodnými lokalizáciami L1/L2 | Naivný |
Náhodná lesná lesa | Náhodná lesná lesa | Orbita |
Random Forest na Spark | Random Forest na Spark | Prorok |
Stochastic Gradient zostup (SGD) | Stochastic Gradient zostup (SGD) | Náhodná lesná lesa |
Podpora vektorovej klasifikácie (SVC) | XGBoost | SARIMAX |
XGboost | XGBoost s obmedzenou hĺbkou | SeasonalAverage (SeasonalAverage) |
XGBoost s obmedzenou hĺbkou | SeasonalNaive (Sezónne) | |
Temporal Fusion Transformer | ||
XGBoost | ||
XGBoost pre časový rad | ||
XGBoost s obmedzenou hĺbkou pre časový rad | ||
ElasticNet |
Vizualizácia výsledkov
Modul flaml.visualization
poskytuje pomocné funkcie na vykreslenie procesu optimalizácie pomocou nástroja Plotly. Využitím služby Plotly môžu používatelia interaktívne preskúmať svoje výsledky experimentovania automatizovaného strojového učenia. Ak chcete použiť tieto funkcie vykreslenia, zadajte svoj optimalizovaný flaml.AutoML
objekt alebo flaml.tune.tune.ExperimentAnalysis
objekt ako vstup.
V poznámkovom bloku môžete použiť nasledujúce funkcie:
-
plot_optimization_history
: Vykreslte históriu optimalizácie všetkých skúšok v experimente. -
plot_feature_importance
: Vykreslí sa dôležitosť pre každú funkciu v množine údajov. -
plot_parallel_coordinate
: Vykreslí v experimente vzťahy vysokorozmerných parametrov. -
plot_contour
: Vykreslte v experimente vzťah parametra ako znázornenie kontúry. -
plot_edf
: Vykresliť cieľovú hodnotu EDF (funkcia empirickej distribúcie) experimentu. -
plot_timeline
: Vykreslí časovú os experimentu. -
plot_slice
: Vykreslí v štúdii vzťah parametra ako výsek. -
plot_param_importance
: Vykreslí sa dôležitosť hyperparametrov experimentu.