A Complete End-to-End Coding Guide to MLflow Experiment Tracking, Hyperparameter Optimization, Model Evaluation, and Live Model Deployment

by CryptoExpert
Customgpt


best_C = best[“params”][“C”]
best_solver = best[“params”][“solver”]

final_pipe = Pipeline([
(“scaler”, StandardScaler()),
(“clf”, LogisticRegression(
C=best_C,
solver=best_solver,
penalty=”l2″,
max_iter=2000,
random_state=42
))
])

with mlflow.start_run(run_name=”final_model_run”) as final_run:
final_pipe.fit(X_train, y_train)

proba = final_pipe.predict_proba(X_test)[:, 1]
pred = (proba >= 0.5).astype(int)

heygen

metrics = {
“test_auc”: float(roc_auc_score(y_test, proba)),
“test_accuracy”: float(accuracy_score(y_test, pred)),
“test_precision”: float(precision_score(y_test, pred, zero_division=0)),
“test_recall”: float(recall_score(y_test, pred, zero_division=0)),
“test_f1”: float(f1_score(y_test, pred, zero_division=0)),
}
mlflow.log_metrics(metrics)
mlflow.log_params({“C”: best_C, “solver”: best_solver, “model”: “LogisticRegression+StandardScaler”})

input_example = X_test.iloc[:5].copy()
signature = infer_signature(input_example, final_pipe.predict_proba(input_example)[:, 1])

model_info = mlflow.sklearn.log_model(
sk_model=final_pipe,
artifact_path=”model”,
signature=signature,
input_example=input_example,
registered_model_name=None,
)

print(“Final run_id:”, final_run.info.run_id)
print(“Logged model URI:”, model_info.model_uri)

eval_df = X_test.copy()
eval_df[“label”] = y_test.values

eval_result = mlflow.models.evaluate(
model=model_info.model_uri,
data=eval_df,
targets=”label”,
model_type=”classifier”,
evaluators=”default”,
)

eval_summary = {
“metrics”: {k: float(v) if isinstance(v, (int, float, np.floating)) else str(v)
for k, v in eval_result.metrics.items()},
“artifacts”: {k: str(v) for k, v in eval_result.artifacts.items()},
}
mlflow.log_dict(eval_summary, “evaluation/eval_summary.json”)



Source link

livechat

You may also like

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

You have Successfully Subscribed!

Verified by MonsterInsights