Skip to content

Commit

Permalink
Add easy ensemble classifier.
Browse files Browse the repository at this point in the history
  • Loading branch information
AxiomAlive committed Feb 25, 2025
1 parent 7140702 commit d63e1ac
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
15 changes: 12 additions & 3 deletions config_spaces/ensemble/boost.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from hyperopt.pyll import scope
from imbens.ensemble import AdaCostClassifier, AsymBoostClassifier
from imbens.ensemble.reweighting import AdaUBoostClassifier
from imblearn.ensemble import BalancedRandomForestClassifier, RUSBoostClassifier
from imblearn.ensemble import BalancedRandomForestClassifier, RUSBoostClassifier, EasyEnsembleClassifier
from matplotlib import pyplot as plt
from openml import flows as openml_flows
from openml import runs as openml_runs
Expand Down Expand Up @@ -51,11 +51,20 @@ def generate_algorithm_configuration_space(cls, model_class=None):


class RUSBoostGenerator(AdaGenerator):
replacement = False

@classmethod
def generate_algorithm_configuration_space(cls, model_class=None):
param_map = super().generate_algorithm_configuration_space()
param_map.update({'model_class': RUSBoostClassifier})

return param_map


class EasyEnsembleGenerator(MLModelGenerator):
n_estimators = scope.int(hp.loguniform('easy_ensemble.n_estimators', np.log(10.5), np.log(500.5)))

@classmethod
def generate_algorithm_configuration_space(cls, model_class=None):
param_map = super().generate_algorithm_configuration_space()
param_map.update({'model_class': EasyEnsembleClassifier})

return param_map
5 changes: 3 additions & 2 deletions experiment/imba.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from imbens.ensemble import AdaUBoostClassifier, AdaCostClassifier, AsymBoostClassifier
from sklearn.metrics import *

from config_spaces.ensemble.boost import AdaReweightedGenerator, RUSBoostGenerator
from config_spaces.ensemble.boost import AdaReweightedGenerator, RUSBoostGenerator, EasyEnsembleGenerator
from config_spaces.ensemble.bag import BalancedBaggingClassifierGenerator
from config_spaces.ensemble.bag import BalancedRandomForestGenerator
from utils.decorators import ExceptionWrapper
Expand Down Expand Up @@ -88,7 +88,8 @@ def fit(
AdaReweightedGenerator.generate_algorithm_configuration_space(AsymBoostClassifier),
BalancedRandomForestGenerator.generate_algorithm_configuration_space(),
BalancedBaggingClassifierGenerator.generate_algorithm_configuration_space(),
RUSBoostGenerator.generate_algorithm_configuration_space()
RUSBoostGenerator.generate_algorithm_configuration_space(),
EasyEnsembleGenerator.generate_algorithm_configuration_space()
]

algorithms_configuration = hp.choice("algorithm_configuration", model_classes)
Expand Down

0 comments on commit d63e1ac

Please sign in to comment.