plt.savefig(os.path.join(artifacts_dir, "example2.png")) artifacts = { "example_dict_2_from_obj_saved_as_csv": example_dict, "example_image_2_from_png_file": os.path.join(artifacts_dir, "example2.png"), } return metrics, artifacts with mlflow.start_run() as run: mlflow.sklearn.log_model(lin_reg, "model") model_uri = mlflow.get_artifact_uri("model") result = mlflow.evaluate( model=model_uri, data=eval_data, targets="target", model_type="regressor", dataset_name="cali_housing", evaluators=["default"], custom_metrics=[ metrics_only_fn, file_artifacts_fn, object_artifacts_fn, mixed_example_fn, ], ) print(f"metrics:\n{result.metrics}") print(f"artifacts:\n{result.artifacts}")
# train XGBoost model X, y = shap.datasets.adult() num_examples = len(X) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) model = xgboost.XGBClassifier().fit(X_train, y_train) eval_data = X_test eval_data["label"] = y_test with mlflow.start_run() as run: mlflow.sklearn.log_model(model, "model") model_uri = mlflow.get_artifact_uri("model") result = mlflow.evaluate( model_uri, eval_data, targets="label", model_type="classifier", dataset_name="adult", evaluators=["default"], ) print(f"metrics:\n{result.metrics}") print(f"artifacts:\n{result.artifacts}")
"squared_diff_plus_one": np.sum(np.abs(eval_df["prediction"] - eval_df["target"] + 1)**2), "sum_on_label_divided_by_two": builtin_metrics["sum_on_label"] / 2, } plt.scatter(eval_df["prediction"], eval_df["target"]) plt.xlabel("Targets") plt.ylabel("Predictions") plt.title("Targets vs. Predictions") plot_path = os.path.join(artifacts_dir, "example_scatter_plot.png") plt.savefig(plot_path) artifacts = {"example_scatter_plot_artifact": plot_path} return metrics, artifacts with mlflow.start_run() as run: mlflow.sklearn.log_model(lin_reg, "model") model_uri = mlflow.get_artifact_uri("model") result = mlflow.evaluate( model=model_uri, data=eval_data, targets="target", model_type="regressor", dataset_name="cali_housing", evaluators=["default"], custom_metrics=[example_custom_metric_fn], ) print(f"metrics:\n{result.metrics}") print(f"artifacts:\n{result.artifacts}")
import mlflow from sklearn.datasets import fetch_california_housing from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split mlflow.sklearn.autolog() california_housing_data = fetch_california_housing() X_train, X_test, y_train, y_test = train_test_split( california_housing_data.data, california_housing_data.target, test_size=0.33, random_state=42 ) with mlflow.start_run() as run: model = LinearRegression().fit(X_train, y_train) model_uri = mlflow.get_artifact_uri("model") result = mlflow.evaluate( model_uri, X_test, targets=y_test, model_type="regressor", dataset_name="california_housing", evaluators="default", feature_names=california_housing_data.feature_names, evaluator_config={"explainability_nsamples": 1000}, ) print(f"metrics:\n{result.metrics}") print(f"artifacts:\n{result.artifacts}")
X, y = make_classification(n_samples=10000, n_classes=10, n_informative=5, random_state=1) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) with mlflow.start_run() as run: model = LogisticRegression(solver="liblinear").fit(X_train, y_train) model_uri = mlflow.get_artifact_uri("model") result = mlflow.evaluate( model_uri, X_test, targets=y_test, model_type="classifier", dataset_name="multiclass-classification-dataset", evaluators="default", evaluator_config={ "log_model_explainability": True, "explainability_nsamples": 1000 }, ) print(f"run_id={run.info.run_id}") print(f"metrics:\n{result.metrics}") print(f"artifacts:\n{result.artifacts}")