Jämföra och Hantera Körningar
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}")
Efter att ha loggat flera körningar med olika hyperparametrar kan du jämföra resultaten med MLflow:s UI eller API. För att använda MLflow UI, starta den genom att köra mlflow ui i din terminal. UI:t visar alla körningar, deras parametrar och metrik, vilket gör det möjligt att sortera eller filtrera efter accuracy, hyperparametervärden eller taggar. Du kan välja flera körningar för att jämföra deras prestanda sida vid sida och välja den bästa modellen baserat på din utvärderingsmetrik. Alternativt kan du använda MLflow Python API för att söka efter körningar och hämta den bästa programmatiskt, vilket är användbart för att automatisera modellval i produktionsarbetsflöden.
Konsekvent namngivning och taggning av körningar gör stora projekt hanterbara. Använd beskrivande körningsnamn och taggar för att spåra experimentets syfte, datasetversion eller grupp för hyperparametersökning. Denna praxis hjälper dig att snabbt identifiera och jämföra relevanta körningar när ditt projekt växer.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 6.67
Jämföra och Hantera Körningar
Svep för att visa menyn
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}")
Efter att ha loggat flera körningar med olika hyperparametrar kan du jämföra resultaten med MLflow:s UI eller API. För att använda MLflow UI, starta den genom att köra mlflow ui i din terminal. UI:t visar alla körningar, deras parametrar och metrik, vilket gör det möjligt att sortera eller filtrera efter accuracy, hyperparametervärden eller taggar. Du kan välja flera körningar för att jämföra deras prestanda sida vid sida och välja den bästa modellen baserat på din utvärderingsmetrik. Alternativt kan du använda MLflow Python API för att söka efter körningar och hämta den bästa programmatiskt, vilket är användbart för att automatisera modellval i produktionsarbetsflöden.
Konsekvent namngivning och taggning av körningar gör stora projekt hanterbara. Använd beskrivande körningsnamn och taggar för att spåra experimentets syfte, datasetversion eller grupp för hyperparametersökning. Denna praxis hjälper dig att snabbt identifiera och jämföra relevanta körningar när ditt projekt växer.
Tack för dina kommentarer!