Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ajovertailu ja Hallinta | Osio
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Mlopsin Perusteet

bookAjovertailu ja Hallinta

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
import logging import mlflow import mlflow.sklearn from mlflow.models import infer_signature from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load data iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2, random_state=42 ) # Optionally set/announce experiment experiment_name = "IrisRandomForest" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Define different hyperparameter sets hyperparams_list = [ {"n_estimators": 50, "max_depth": 2}, {"n_estimators": 100, "max_depth": 3}, {"n_estimators": 150, "max_depth": 4} ] for params in hyperparams_list: run_name = f"rf_n{params['n_estimators']}_d{params['max_depth']}" logging.info(f"Starting run: {run_name} with params: {params}") with mlflow.start_run(run_name=run_name) as run: clf = RandomForestClassifier( n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=42 ) clf.fit(X_train, y_train) preds = clf.predict(X_test) acc = accuracy_score(y_test, preds) logging.info(f"Accuracy: {acc:.4f}") # Log hyperparameters and metrics mlflow.log_params(params) mlflow.log_metric("accuracy", acc) # Log the model with input example and signature to avoid warnings input_example = X_test[:5] signature = infer_signature(X_test, preds) mlflow.sklearn.log_model(clf, "model", input_example=input_example, signature=signature) run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Artifact URI: {artifact_uri}")
copy

Kun olet kirjannut useita ajoja eri hyperparametreilla, voit vertailla tuloksia MLflow'n käyttöliittymän tai API:n avulla. Käyttääksesi MLflow-käyttöliittymää, käynnistä se suorittamalla mlflow ui terminaalissa. Käyttöliittymä näyttää kaikki ajot, niiden parametrit ja metriikat, ja voit lajitella tai suodattaa esimerkiksi accuracy-arvon, hyperparametrien tai tunnisteiden perusteella. Voit valita useita ajoja vertaillaksesi niiden suorituskykyä rinnakkain ja valita parhaan mallin arviointimetriikan perusteella. Vaihtoehtoisesti voit käyttää MLflow Python APIa etsiäksesi ajoja ja hakeaksesi parhaan ohjelmallisesti, mikä on hyödyllistä mallin valinnan automatisoinnissa tuotantoprosesseissa.

Note
Huomio

Johdonmukainen ajojen nimeäminen ja tunnisteiden käyttö helpottaa suurten projektien hallintaa. Käytä kuvaavia ajonimiä ja tunnisteita seurataksesi kokeen tarkoitusta, datan versiota tai hyperparametrihakuryhmää. Tämä käytäntö auttaa tunnistamaan ja vertailemaan olennaisia ajoja nopeasti projektin kasvaessa.

question mark

Mitkä seuraavista väittämistä kuvaavat oikein, miten voit vertailla ja valita parhaan ajon MLflow'ssa käyttöliittymän ja Python-rajapinnan avulla?

Select all correct answers

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookAjovertailu ja Hallinta

Pyyhkäise näyttääksesi valikon

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
import logging import mlflow import mlflow.sklearn from mlflow.models import infer_signature from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load data iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2, random_state=42 ) # Optionally set/announce experiment experiment_name = "IrisRandomForest" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Define different hyperparameter sets hyperparams_list = [ {"n_estimators": 50, "max_depth": 2}, {"n_estimators": 100, "max_depth": 3}, {"n_estimators": 150, "max_depth": 4} ] for params in hyperparams_list: run_name = f"rf_n{params['n_estimators']}_d{params['max_depth']}" logging.info(f"Starting run: {run_name} with params: {params}") with mlflow.start_run(run_name=run_name) as run: clf = RandomForestClassifier( n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=42 ) clf.fit(X_train, y_train) preds = clf.predict(X_test) acc = accuracy_score(y_test, preds) logging.info(f"Accuracy: {acc:.4f}") # Log hyperparameters and metrics mlflow.log_params(params) mlflow.log_metric("accuracy", acc) # Log the model with input example and signature to avoid warnings input_example = X_test[:5] signature = infer_signature(X_test, preds) mlflow.sklearn.log_model(clf, "model", input_example=input_example, signature=signature) run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Artifact URI: {artifact_uri}")
copy

Kun olet kirjannut useita ajoja eri hyperparametreilla, voit vertailla tuloksia MLflow'n käyttöliittymän tai API:n avulla. Käyttääksesi MLflow-käyttöliittymää, käynnistä se suorittamalla mlflow ui terminaalissa. Käyttöliittymä näyttää kaikki ajot, niiden parametrit ja metriikat, ja voit lajitella tai suodattaa esimerkiksi accuracy-arvon, hyperparametrien tai tunnisteiden perusteella. Voit valita useita ajoja vertaillaksesi niiden suorituskykyä rinnakkain ja valita parhaan mallin arviointimetriikan perusteella. Vaihtoehtoisesti voit käyttää MLflow Python APIa etsiäksesi ajoja ja hakeaksesi parhaan ohjelmallisesti, mikä on hyödyllistä mallin valinnan automatisoinnissa tuotantoprosesseissa.

Note
Huomio

Johdonmukainen ajojen nimeäminen ja tunnisteiden käyttö helpottaa suurten projektien hallintaa. Käytä kuvaavia ajonimiä ja tunnisteita seurataksesi kokeen tarkoitusta, datan versiota tai hyperparametrihakuryhmää. Tämä käytäntö auttaa tunnistamaan ja vertailemaan olennaisia ajoja nopeasti projektin kasvaessa.

question mark

Mitkä seuraavista väittämistä kuvaavat oikein, miten voit vertailla ja valita parhaan ajon MLflow'ssa käyttöliittymän ja Python-rajapinnan avulla?

Select all correct answers

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 6
some-alt