Runs Vergelijken en Beheren
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}")
Na het loggen van meerdere runs met verschillende hyperparameters kun je de resultaten vergelijken met behulp van MLflow's UI of API. Start de MLflow UI door mlflow ui in je terminal uit te voeren. De UI toont alle runs, hun parameters en metriekwaarden, zodat je kunt sorteren of filteren op accuracy, hyperparametergroepen of tags. Je kunt meerdere runs selecteren om hun prestaties naast elkaar te vergelijken en het beste model te kiezen op basis van je evaluatiemetriek. Je kunt ook de MLflow Python API gebruiken om naar runs te zoeken en het beste resultaat programmatisch op te halen, wat nuttig is voor het automatiseren van modelselectie in productieomgevingen.
Consistente naamgeving en tagging van runs maken grote projecten beheersbaar. Gebruik beschrijvende runnamen en tags om het doel van het experiment, de datasetversie of de hyperparameterzoekgroep bij te houden. Deze werkwijze helpt je om snel relevante runs te identificeren en te vergelijken naarmate je project groeit.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 6.67
Runs Vergelijken en Beheren
Veeg om het menu te tonen
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}")
Na het loggen van meerdere runs met verschillende hyperparameters kun je de resultaten vergelijken met behulp van MLflow's UI of API. Start de MLflow UI door mlflow ui in je terminal uit te voeren. De UI toont alle runs, hun parameters en metriekwaarden, zodat je kunt sorteren of filteren op accuracy, hyperparametergroepen of tags. Je kunt meerdere runs selecteren om hun prestaties naast elkaar te vergelijken en het beste model te kiezen op basis van je evaluatiemetriek. Je kunt ook de MLflow Python API gebruiken om naar runs te zoeken en het beste resultaat programmatisch op te halen, wat nuttig is voor het automatiseren van modelselectie in productieomgevingen.
Consistente naamgeving en tagging van runs maken grote projecten beheersbaar. Gebruik beschrijvende runnamen en tags om het doel van het experiment, de datasetversie of de hyperparameterzoekgroep bij te houden. Deze werkwijze helpt je om snel relevante runs te identificeren en te vergelijken naarmate je project groeit.
Bedankt voor je feedback!