feat: enhance training and regression metrics logging

- Added debug logging for data preparation, transformation, and prediction steps in the Training class to improve traceability.
- Updated compute_regression_metrics method to include metadata for better debugging and validation of index alignment between true and predicted values.
This commit is contained in:
vitor-aignosi
2026-04-13 15:18:42 -03:00
parent 388d4c95e4
commit 3bee743cfd
2 changed files with 43 additions and 4 deletions

View File

@@ -13,6 +13,7 @@ with workflow.unsafe.imports_passed_through():
from typing import Any
import mlflow
import pandas as pd
from sientia_do.notifications.handlers import CoreNotificationHandler as NotificationHandler
from sientia_do.notifications.models import NotificationLevel
from sientia_do.observability.logger import Logger
@@ -231,6 +232,12 @@ class Training(SientiaMonitoring):
train_data = train_result.train_data
val_data = train_result.val_data
self.debug(
f'train_model prepared data (head 10):\ntrain:\n{train_data.head(10).to_string()}'
f'\nval:\n{val_data.head(10).to_string()}',
metadata,
)
wrapper.train(
train_data=train_data,
val_data=val_data,
@@ -245,9 +252,21 @@ class Training(SientiaMonitoring):
transformed_train, _ = wrapper.transform(train_data)
transformed_val, _ = wrapper.transform(val_data)
self.debug(
f'train_model transform (head 10):\ntrain:\n{transformed_train.head(10).to_string()}'
f'\nval:\n{transformed_val.head(10).to_string()}',
metadata,
)
y_train_pred_df, _ = wrapper.predict({}, transformed_train)
y_val_pred_df, _ = wrapper.predict({}, transformed_val)
self.debug(
f'train_model predict (head 10):\ntrain:\n{y_train_pred_df.head(10).to_string()}'
f'\nval:\n{y_val_pred_df.head(10).to_string()}',
metadata,
)
y_train_pred_df.sort_index(inplace=True, ascending=False)
y_val_pred_df.sort_index(inplace=True, ascending=False)
@@ -258,6 +277,7 @@ class Training(SientiaMonitoring):
train_result = self.data_manager_repository.compute_regression_metrics(
train_result,
wrapper,
metadata=metadata,
)
self.info(f'Starting MLflow run for {train_params.model_type}', metadata)