Spaces:
Sleeping
Sleeping
File size: 1,344 Bytes
1e5b98a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# src/evaluate.py
from pathlib import Path
import joblib
import pandas as pd
from sklearn.metrics import roc_auc_score, f1_score
from .config import PROCESSED_DATA_DIR, LATEST_MODEL_PATH, TARGET_COLUMN
from .model_utils import split_features_target
def main() -> None:
valid_path = PROCESSED_DATA_DIR / "valid.csv"
if not valid_path.exists():
raise FileNotFoundError(
f"No se encontr贸 {valid_path}. Ejecuta primero el preprocesamiento (data_prep)."
)
if not LATEST_MODEL_PATH.exists():
raise FileNotFoundError(
f"No se encontr贸 el modelo en {LATEST_MODEL_PATH}. Ejecuta primero src.train."
)
print(f"Cargando validaci贸n desde: {valid_path}")
valid_df = pd.read_csv(valid_path, parse_dates=["application_date"])
X_valid, y_valid = split_features_target(valid_df, TARGET_COLUMN)
print(f"Cargando modelo desde: {LATEST_MODEL_PATH}")
model = joblib.load(LATEST_MODEL_PATH)
y_proba = model.predict_proba(X_valid)[:, 1]
y_pred = (y_proba >= 0.5).astype(int)
auc = roc_auc_score(y_valid, y_proba)
f1 = f1_score(y_valid, y_pred)
print("===== M脡TRICAS DE EVALUACI脫N =====")
print(f"AUC valid: {auc:.4f}")
print(f"F1 valid: {f1:.4f}")
if __name__ == "__main__":
main()
|