Spaces:
Sleeping
Sleeping
| # model_evaluation_step.py | |
| import logging | |
| from zenml import step | |
| from src.model_evaluation import ModelEvaluator | |
| from sklearn.base import BaseEstimator | |
| import pandas as pd | |
| from zenml.client import Client | |
| # Get the active experiment tracker from ZenML | |
| experiment_name = Client().active_stack.experiment_tracker | |
| # Configure logger | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| def model_evaluation_step(model: BaseEstimator, X_test: pd.DataFrame, y_test: pd.Series) -> dict: | |
| """ | |
| A ZenML step to evaluate a trained model and log evaluation metrics using ModelEvaluator. | |
| Parameters: | |
| model : BaseEstimator | |
| The trained model to evaluate. | |
| X_test : pd.DataFrame | |
| The test features. | |
| y_test : pd.Series | |
| The true labels for the test set. | |
| Returns: | |
| dict | |
| A dictionary containing accuracy, precision, recall, and f1-score. | |
| """ | |
| logger.info("Starting model evaluation step...") | |
| #evaluator = ModelEvaluator(model=model, X_test=X_test, y_test=y_test, experiment_name=experiment_name.name) | |
| evaluator= ModelEvaluator(model=model, X_test=X_test, y_test=y_test) | |
| # Perform evaluation and log metrics | |
| results = evaluator.evaluate_model() | |
| logger.info("Model evaluation completed successfully.") | |
| return results | |