File size: 814 Bytes
a309487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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
        }