Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Automatiseret maskinlæring (AutoML) er en samling af metoder og værktøjer, der automatiserer træning og optimering af maskinlæringsmodeller med minimal menneskelig involvering. Formålet med AutoML er at forenkle og fremskynde processen med at vælge den bedste model til maskinel indlæring og hyperparametre for et givet datasæt, hvilket normalt kræver mange færdigheder og beregningskraft.
I Fabric kan dataforskere bruge flaml.AutoML til at automatisere deres opgaver i forbindelse med maskinel indlæring.
AutoML kan hjælpe ml-teknikere og udviklere fra forskellige sektorer med at:
- Byg ML-løsninger med minimal kodning
- Reducer tid og omkostninger
- Anvend bedste praksis for datavidenskab
- Løs problemer hurtigt og effektivt
AutoML-arbejdsproces
flaml.AutoML er en klasse for AutoML baseret på opgaven. Du kan bruge den som en Scikit-lær-stil estimator med de sædvanlige fit og predict metoder.
For at starte en AutoML-prøve, skal du levere træningsdata og opgavetypen. Ved at bruge de integrerede MLflow-oplevelser i Fabric kan du også undersøge de forskellige kørsler, der blev forsøgt i forsøget, for at se, hvordan den endelige model blev valgt.
Oplæringsdata
I Fabric skal følgende inputtyper sendes til AutoML-funktionenfit:
NumPy-array: Når inputdataene gemmes i et NumPy-array, sendes det til
fit()somX_trainogy_train.Pandas DataFrame: Når inputdataene gemmes i en Pandas DataFrame, skal de sendes til
fit()enten somX_trainogy_train, eller somdataframeoglabel.Pandas på Spark DataFrame: Når inputdataene gemmes som en Spark DataFrame, konverter dem til en
PandasonSparkDataFrame ved at brugeto_pandas_on_spark(). Derefter overfører vi det tilfit()som adataframeoglabel.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)
Problem med maskinel indlæring
Brugerne kan angive machine learning-opgaven ved hjælp af argumentet task . Der er forskellige understøttede opgaver i forbindelse med maskinel indlæring, herunder:
- Klassificering: Det primære mål for klassificeringsmodeller er at forudsige, hvilke kategorier nye data falder ind under, baseret på læring fra deres oplæringsdata. Almindelige klassificeringseksempler omfatter registrering af svindel, genkendelse af håndskrift og objektregistrering.
- Regression: Regressionsmodeller forudsiger numeriske outputværdier baseret på uafhængige forudsigelser. I regression er målet at hjælpe med at etablere relationen mellem disse uafhængige forudsigelsesvariabler ved at anslå, hvordan en variabel påvirker de andre. Bilpriser, der f.eks. er baseret på funktioner som f.eks. gas kilometertal, sikkerhedsklassificering osv.
- Tidsserieprognose: Dette bruges til at forudsige fremtidige værdier baseret på historiske datapunkter sorteret efter klokkeslæt. I en tidsserie indsamles og registreres data med jævne mellemrum over en bestemt periode, f.eks. dagligt, ugentligt, månedligt eller årligt. Formålet med tidsserieprognoser er at identificere mønstre, tendenser og sæsonudsving i dataene og derefter bruge disse oplysninger til at foretage forudsigelser om fremtidig værdi.
Du kan få mere at vide om de andre opgaver, der understøttes i FLAML, i dokumentationen om AutoML-opgaver i FLAML.
Valgfrie input
Angiv forskellige begrænsninger og input for at konfigurere din AutoML-prøveversion.
Begrænsninger
Når du opretter en AutoML-prøveversion, kan brugerne også konfigurere begrænsninger for AutoML-processen, konstruktørargumenter for potentielle estimattagere, typer af modeller, der er forsøgt i AutoML, og endda begrænsninger på målepunkterne for AutoML-prøveversionen.
Koden nedenfor giver f.eks. brugerne mulighed for at angive en begrænsning for metrikværdier i AutoML-prøveversionen.
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)
Du kan få mere at vide om disse konfigurationer i dokumentationen om konfigurationer i FLAML.
Optimeringsmålepunkt
Under oplæringen opretter funktionen AutoML mange forsøg, som prøver forskellige algoritmer og parametre. AutoML-værktøjet gentager sig via ML-algoritmer og hyperparametre. I denne proces opretter hver gentagelse en model med en træningsscore. Jo bedre scoren for den metrikværdi, du vil optimere til, jo bedre anses modellen for at "passe" til dine data. Optimeringsmetrikværdien angives via argumentet metric . Det kan enten være en streng, der refererer til en indbygget metrikværdi, eller en brugerdefineret funktion.
Parallel justering
I nogle tilfælde kan det være en god idé at fremskynde din AutoML-prøveversion ved hjælp af Apache Spark for at parallelisere din træning. For Spark-klynger starter FLAML som standard én prøveversion pr. eksekvering. Du kan også tilpasse antallet af samtidige forsøg ved hjælp af argumentet n_concurrent_trials .
automl.fit(X_train, y_train, n_concurrent_trials=4, use_spark=True)
For at lære mere om, hvordan du paralleliserer dine AutoML-forsøg, se FLAML-dokumentationen for parallelle Spark-jobs.
Spor med MLflow
Brug Fabric MLflow-integrationen til at indfange metrikker, parametre og modeller fra de undersøgte forsøg.
import mlflow
mlflow.autolog()
with mlflow.start_run(nested=True):
automl.fit(dataframe=pandas_df, label='Bankrupt?', mlflow_exp_name = "automl_spark_demo")
Du kan også give et run_name præfiks til børneruns. Følgende eksempel opretter en ny AutoML-instans og kører en Spark-baseret regressionsprøve med eksplicitte indstillinger:
import flaml
import mlflow
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="automl_spark_trials"):
automl_experiment.fit(X_train=train_x, y_train=train_y, **automl_settings)
Understøttede modeller
AutoML i Fabric understøtter følgende modeller:
| Klassificering | Regression | Tidsserieprognose |
|---|---|---|
| (PySpark) Gradueringsboostede træer (GBT)-klassificering | (PySpark) AfT (Accelerated Failure Time) Survival Regression | Arimax |
| (PySpark) Lineær SVM | (PySpark) Generaliseret lineær regression | AutoARIMA |
| (PySpark) Naive Bayes | (PySpark) Regression af gradueringsboostede træer | Gennemsnit |
| (Synapse) Lys GBM | (PySpark) Lineær regression | Katboost |
| Katboost | (Synapse) Lys GBM | Beslutningstræ |
| Beslutningstræ | Katboost | Eksponentielsmoothing |
| Ekstremt randomiserede træer | Beslutningstræ | Ekstremt randomiserede træer |
| Gradueringsforøgelse | Elastisk net | ForecastTCN |
| K nærmeste naboer | Ekstremt randomiserede træer | Gradueringsforøgelse |
| Lys GBM | Gradueringsforøgelse | Holt-Winters Eksponentiel udjævning |
| Lineær SVC | K nærmeste naboer | K nærmeste naboer |
| Logistisk regression | LARS Lasso | LARS Lasso |
| Logistisk regression med L1/L2-regularisering | Lys GBM | Lys GBM |
| Naive Bayes | Logistisk regression med L1/L2-regularisering | Naiv |
| Tilfældig skov | Tilfældig skov | Kredsløb |
| Tilfældig skov på Spark | Tilfældig skov på Spark | Profet |
| Stokastisk gradueringsstigning (SGD) | Stokastisk gradueringsstigning (SGD) | Tilfældig skov |
| Understøttelse af vektorklassificering (SVC) | XGBoost | SARIMAX |
| XGboost | XGBoost med begrænset dybde | Sæsonbestemt gennemsnit |
| XGBoost med begrænset dybde | Sæsonbestemtnaive | |
| Tidsmæssig fusionstransformer | ||
| XGBoost | ||
| XGBoost for tidsserie | ||
| XGBoost med begrænset dybde for tidsserier | ||
| ElasticNet |
Visualiser resultater
Modulet flaml.visualization indeholder funktionsfunktioner til afbildning af optimeringsprocessen ved hjælp af Plotly. Ved at udnytte Plotly kan brugerne interaktivt udforske resultaterne af deres AutoML-eksperiment. Hvis du vil bruge disse afbildningsfunktioner, skal du angive dit optimerede flaml.AutoML objekt eller flaml.tune.tune.ExperimentAnalysis objekt som input.
Du kan bruge følgende funktioner i din notesbog:
-
plot_optimization_history: Afbild optimeringshistorikken for alle forsøg i eksperimentet. -
plot_feature_importance: Afbild vigtighed for hver funktion i datasættet. -
plot_parallel_coordinate: Afbild de højdimensionelle parameterrelationer i eksperimentet. -
plot_contour: Afbild parameterrelationen som konturafbildning i eksperimentet. -
plot_edf: Afbildning af den objektive værdi EDF (empirisk fordelingsfunktion) for eksperimentet. -
plot_timeline: Plot tidslinjen for eksperimentet. -
plot_slice: Afbild parameterrelationen som et udsnitsdiagram i en undersøgelse. -
plot_param_importance: Afbildning af hyperparameterens vigtighed af eksperimentet.