from sklearn.metrics import accuracy_score, f1_score, mean_squared_error import numpy as np def evaluate_model(model, X_test, y_test, problem_type): preds = model.predict(X_test) if problem_type == "classification": acc = accuracy_score(y_test, preds) f1 = f1_score(y_test, preds, average="weighted") if np.isnan(acc) or acc == 0 or np.isnan(f1) or f1 == 0: raise ValueError("Invalid metrics computed for classification") return { "accuracy": acc, "f1": f1 } else: rmse = np.sqrt(mean_squared_error(y_test, preds)) if np.isnan(rmse) or np.isinf(rmse): raise ValueError("Invalid metrics computed for regression") return { "rmse": rmse }