Vergleich und Verwaltung von Runs
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}")
Nach dem Protokollieren mehrerer Läufe mit unterschiedlichen Hyperparametern können die Ergebnisse mit der MLflow-Oberfläche oder der API verglichen werden. Um die MLflow-Oberfläche zu nutzen, starten Sie sie mit mlflow ui im Terminal. Die Oberfläche zeigt alle Läufe, deren Parameter und Metriken an und ermöglicht das Sortieren oder Filtern nach accuracy, Hyperparameterwerten oder Tags. Es können mehrere Läufe ausgewählt werden, um deren Leistung nebeneinander zu vergleichen und das beste Modell anhand der Bewertungsmetrik auszuwählen. Alternativ kann die MLflow Python API verwendet werden, um Läufe zu durchsuchen und das beste Modell programmatisch zu ermitteln, was für die Automatisierung der Modellauswahl in Produktionsabläufen nützlich ist.
Konsistente Benennung und Verschlagwortung von Läufen machen große Projekte überschaubar. Verwenden Sie aussagekräftige Laufnamen und Tags, um den Zweck des Experiments, die Datensatzversion oder die Hyperparameter-Suchgruppe zu kennzeichnen. Diese Vorgehensweise erleichtert das schnelle Identifizieren und Vergleichen relevanter Läufe, wenn das Projekt wächst.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Großartig!
Completion Rate verbessert auf 6.67
Vergleich und Verwaltung von Runs
Swipe um das Menü anzuzeigen
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}")
Nach dem Protokollieren mehrerer Läufe mit unterschiedlichen Hyperparametern können die Ergebnisse mit der MLflow-Oberfläche oder der API verglichen werden. Um die MLflow-Oberfläche zu nutzen, starten Sie sie mit mlflow ui im Terminal. Die Oberfläche zeigt alle Läufe, deren Parameter und Metriken an und ermöglicht das Sortieren oder Filtern nach accuracy, Hyperparameterwerten oder Tags. Es können mehrere Läufe ausgewählt werden, um deren Leistung nebeneinander zu vergleichen und das beste Modell anhand der Bewertungsmetrik auszuwählen. Alternativ kann die MLflow Python API verwendet werden, um Läufe zu durchsuchen und das beste Modell programmatisch zu ermitteln, was für die Automatisierung der Modellauswahl in Produktionsabläufen nützlich ist.
Konsistente Benennung und Verschlagwortung von Läufen machen große Projekte überschaubar. Verwenden Sie aussagekräftige Laufnamen und Tags, um den Zweck des Experiments, die Datensatzversion oder die Hyperparameter-Suchgruppe zu kennzeichnen. Diese Vorgehensweise erleichtert das schnelle Identifizieren und Vergleichen relevanter Läufe, wenn das Projekt wächst.
Danke für Ihr Feedback!