Ajovertailu ja Hallinta
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import 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}")
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.
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.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 6.67
Ajovertailu ja Hallinta
Pyyhkäise näyttääksesi valikon
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import 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}")
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.
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.
Kiitos palautteestasi!