Experimenten Loggen met MLflow
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")
Om te begrijpen hoe het loggen van experimenten in de praktijk werkt, volgt hier een stapsgewijze uitleg van de gegeven code. Eerst laadt de code een voorbeeld-dataset met load_diabetes uit scikit-learn en splitst deze in trainings- en testsets. Het experiment krijgt een naam via mlflow.set_experiment, waarmee een bestaand experiment wordt geselecteerd of een nieuw experiment wordt aangemaakt indien nodig.
Het hoofdproces start met mlflow.start_run(), waarmee een nieuwe run wordt geïnitieerd en alle daaropvolgende logs worden gegroepeerd. Binnen deze run wordt een Ridge-regressiemodel gedefinieerd met een specifieke alpha-parameter en getraind op de trainingsdata. Na de training worden voorspellingen gedaan op de testset en wordt de mean squared error (MSE) berekend als prestatie-indicator.
De logfuncties van MLflow worden vervolgens gebruikt om belangrijke aspecten van het experiment vast te leggen. De alpha-parameter wordt gelogd met mlflow.log_param en de berekende mse wordt als metriek opgeslagen via mlflow.log_metric. Het getrainde model zelf wordt als artefact opgeslagen met mlflow.sklearn.log_model, zodat het later eenvoudig kan worden opgehaald of ingezet. Voor reproduceerbaarheid logt de code ook een data_version-parameter, waarmee de herkomst of versie van de gebruikte dataset wordt vastgelegd.
Waarschuwing: log altijd relevante metadata zoals dataversie, random seed en omgevingsinformatie. Zonder deze gegevens wordt het veel moeilijker om resultaten te reproduceren of problemen op te lossen.
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
Experimenten Loggen met MLflow
Veeg om het menu te tonen
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")
Om te begrijpen hoe het loggen van experimenten in de praktijk werkt, volgt hier een stapsgewijze uitleg van de gegeven code. Eerst laadt de code een voorbeeld-dataset met load_diabetes uit scikit-learn en splitst deze in trainings- en testsets. Het experiment krijgt een naam via mlflow.set_experiment, waarmee een bestaand experiment wordt geselecteerd of een nieuw experiment wordt aangemaakt indien nodig.
Het hoofdproces start met mlflow.start_run(), waarmee een nieuwe run wordt geïnitieerd en alle daaropvolgende logs worden gegroepeerd. Binnen deze run wordt een Ridge-regressiemodel gedefinieerd met een specifieke alpha-parameter en getraind op de trainingsdata. Na de training worden voorspellingen gedaan op de testset en wordt de mean squared error (MSE) berekend als prestatie-indicator.
De logfuncties van MLflow worden vervolgens gebruikt om belangrijke aspecten van het experiment vast te leggen. De alpha-parameter wordt gelogd met mlflow.log_param en de berekende mse wordt als metriek opgeslagen via mlflow.log_metric. Het getrainde model zelf wordt als artefact opgeslagen met mlflow.sklearn.log_model, zodat het later eenvoudig kan worden opgehaald of ingezet. Voor reproduceerbaarheid logt de code ook een data_version-parameter, waarmee de herkomst of versie van de gebruikte dataset wordt vastgelegd.
Waarschuwing: log altijd relevante metadata zoals dataversie, random seed en omgevingsinformatie. Zonder deze gegevens wordt het veel moeilijker om resultaten te reproduceren of problemen op te lossen.
Bedankt voor je feedback!