1- import logging
21import time
2+ import traceback
3+ import logging
34import warnings
45from typing import Any , Dict , List , Optional , Union
56
7+ import keras
68import numpy as np
79import pandas as pd
810import tensorflow as tf
911import torch
1012from IPython .display import clear_output
11- from pandas . testing import assert_index_equal
13+ from numpy import absolute , mean , std
1214from scikeras .wrappers import KerasClassifier
1315from sklearn import metrics
14-
15- # from sklearn.utils.testing import ignore_warnings
16- from sklearn .exceptions import ConvergenceWarning
17- from sklearn .metrics import *
18- from sklearn .model_selection import (
19- KFold ,
20- ParameterGrid ,
21- RepeatedKFold ,
22- cross_validate ,
23- )
24- from sklearn .preprocessing import MinMaxScaler
25- from skopt .space import Categorical
16+ from IPython .display import display
17+ from catboost import CatBoostError
18+ from pandas .testing import assert_index_equal
2619from xgboost .core import XGBoostError
27-
2820from ml_grid .model_classes .H2OAutoMLClassifier import H2OAutoMLClassifier
29- from ml_grid .model_classes .H2ODeepLearningClassifier import H2ODeepLearningClassifier
21+ from ml_grid .model_classes .H2OGBMClassifier import H2OGBMClassifier
3022from ml_grid .model_classes .H2ODRFClassifier import H2ODRFClassifier
3123from ml_grid .model_classes .H2OGAMClassifier import H2OGAMClassifier
32- from ml_grid .model_classes .H2OGBMClassifier import H2OGBMClassifier
24+ from ml_grid .model_classes .H2ODeepLearningClassifier import H2ODeepLearningClassifier
3325from ml_grid .model_classes .H2OGLMClassifier import H2OGLMClassifier
3426from ml_grid .model_classes .H2ONaiveBayesClassifier import H2ONaiveBayesClassifier
3527from ml_grid .model_classes .H2ORuleFitClassifier import H2ORuleFitClassifier
28+ from ml_grid .model_classes .H2OXGBoostClassifier import H2OXGBoostClassifier
3629from ml_grid .model_classes .H2OStackedEnsembleClassifier import (
3730 H2OStackedEnsembleClassifier ,
3831)
39- from ml_grid .model_classes .H2OXGBoostClassifier import H2OXGBoostClassifier
40- from ml_grid .model_classes .keras_classifier_class import KerasClassifierClass
4132from ml_grid .model_classes .NeuralNetworkKerasClassifier import NeuralNetworkClassifier
33+
34+ # from sklearn.utils.testing import ignore_warnings
35+ from sklearn .exceptions import ConvergenceWarning
36+ from sklearn .metrics import *
37+ from sklearn .metrics import (
38+ classification_report ,
39+ f1_score ,
40+ make_scorer ,
41+ matthews_corrcoef ,
42+ roc_auc_score ,
43+ )
44+ from sklearn .model_selection import (
45+ GridSearchCV ,
46+ ParameterGrid ,
47+ RandomizedSearchCV ,
48+ RepeatedKFold ,
49+ KFold ,
50+ cross_validate ,
51+ )
52+
53+ from ml_grid .model_classes .keras_classifier_class import KerasClassifierClass
4254from ml_grid .pipeline .hyperparameter_search import HyperparameterSearch
43- from ml_grid .util .bayes_utils import is_skopt_space
4455from ml_grid .util .debug_print_statements import debug_print_statements_class
4556from ml_grid .util .global_params import global_parameters
4657from ml_grid .util .project_score_save import project_score_save_class
4758from ml_grid .util .validate_parameters import validate_parameters_helper
59+ from sklearn .preprocessing import MinMaxScaler
60+ from ml_grid .util .bayes_utils import calculate_combinations , is_skopt_space
61+ from skopt .space import Categorical
4862
4963
5064class grid_search_crossvalidate :
@@ -412,10 +426,10 @@ def __init__(
412426
413427 # Catch only one class present AUC not defined:
414428
415- # dummy_auc_scorer = make_scorer(dummy_auc)
416429 if len (np .unique (self .y_train )) < 2 :
417430 raise ValueError (
418- "Only one class present in y_train. ROC AUC score is not defined in that case. grid_search_cross_validate>>>cross_validate"
431+ "Only one class present in y_train. ROC AUC score is not defined "
432+ "in that case. grid_search_cross_validate>>>cross_validate"
419433 )
420434
421435 if self .global_parameters .verbose >= 1 :
@@ -434,12 +448,10 @@ def __init__(
434448 # Default scores if cross-validation fails
435449 default_scores = {
436450 "test_accuracy" : [
437- 0.5
438- ], # Default to random classifier performance (0.5 for binary classification)
451+ 0.5 # Default to random classifier performance
452+ ],
439453 "test_f1" : [0.5 ], # Default F1 score (again, 0.5 for random classification)
440- "test_auc" : [
441- 0.5
442- ], # Default ROC AUC score (0.5 for random classifier) #is only auc not roc_auc?
454+ "test_auc" : [0.5 ], # Default ROC AUC score (0.5 for random classifier)
443455 "fit_time" : [0 ], # No fitting time if the model fails
444456 "score_time" : [0 ], # No scoring time if the model fails
445457 "train_score" : [0.5 ], # Default train score
@@ -625,7 +637,8 @@ def __init__(
625637 # Print a warning if the execution time exceeds the threshold
626638 if elapsed_time > time_threshold :
627639 self .logger .warning (
628- f"Cross-validation took too long ({ elapsed_time :.2f} seconds). Consider optimizing the parameters or reducing CV folds."
640+ f"Cross-validation took too long ({ elapsed_time :.2f} seconds). "
641+ "Consider optimizing the parameters or reducing CV folds."
629642 )
630643 else :
631644 self .logger .info (
0 commit comments