Rthur2003 commited on
Commit
bfbdc0b
·
1 Parent(s): a12879f

fix: add missing roc_curve metric import for evaluation

Browse files
app/training/train_deep_classifiers.py CHANGED
@@ -28,7 +28,7 @@ import torch.nn as nn
28
  from torch.utils.data import DataLoader, TensorDataset
29
  from sklearn.model_selection import StratifiedKFold
30
  from sklearn.preprocessing import StandardScaler
31
- from sklearn.metrics import accuracy_score, roc_auc_score, f1_score, precision_score, recall_score
32
 
33
  DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
34
  SEED = 42
@@ -39,6 +39,13 @@ BATCH_SIZE = 64
39
  LR = 1e-3
40
 
41
 
 
 
 
 
 
 
 
42
  def set_seed(seed: int = SEED) -> None:
43
  np.random.seed(seed)
44
  torch.manual_seed(seed)
 
28
  from torch.utils.data import DataLoader, TensorDataset
29
  from sklearn.model_selection import StratifiedKFold
30
  from sklearn.preprocessing import StandardScaler
31
+ from sklearn.metrics import accuracy_score, roc_auc_score, f1_score, precision_score, recall_score, roc_curve
32
 
33
  DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
34
  SEED = 42
 
39
  LR = 1e-3
40
 
41
 
42
+ def _optimal_threshold(y_true: np.ndarray, y_prob: np.ndarray) -> float:
43
+ """Youden's J: threshold maximising sensitivity + specificity - 1."""
44
+ fpr, tpr, thresholds = roc_curve(y_true, y_prob)
45
+ j = tpr - fpr
46
+ return float(thresholds[np.argmax(j)])
47
+
48
+
49
  def set_seed(seed: int = SEED) -> None:
50
  np.random.seed(seed)
51
  torch.manual_seed(seed)