Skip to content

Commit

Permalink
Merge branch 'master' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonBlanke committed Jan 1, 2025
2 parents fcc8e8c + 7bbcbef commit abb4efc
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import numpy as np

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_breast_cancer

from hyperactive import Hyperactive
from hyperactive.optimizers import (
HillClimbingOptimizer,
RandomRestartHillClimbingOptimizer,
)

data = load_breast_cancer()
X, y = data.data, data.target


def model_rfc(opt):
rfc = RandomForestClassifier(
n_estimators=opt["n_estimators"],
criterion=opt["criterion"],
max_features=opt["max_features"],
min_samples_split=opt["min_samples_split"],
min_samples_leaf=opt["min_samples_leaf"],
bootstrap=opt["bootstrap"],
)
scores = cross_val_score(rfc, X, y, cv=3)

return scores.mean()


def model_gbc(opt):
gbc = GradientBoostingClassifier(
n_estimators=opt["n_estimators"],
learning_rate=opt["learning_rate"],
max_depth=opt["max_depth"],
min_samples_split=opt["min_samples_split"],
min_samples_leaf=opt["min_samples_leaf"],
subsample=opt["subsample"],
max_features=opt["max_features"],
)
scores = cross_val_score(gbc, X, y, cv=3)

return scores.mean()


search_space_rfc = {
"n_estimators": list(range(10, 200, 10)),
"criterion": ["gini", "entropy"],
"max_features": list(np.arange(0.05, 1.01, 0.05)),
"min_samples_split": list(range(2, 21)),
"min_samples_leaf": list(range(1, 21)),
"bootstrap": [True, False],
}


search_space_gbc = {
"n_estimators": list(range(10, 200, 10)),
"learning_rate": [1e-3, 1e-2, 1e-1, 0.5, 1.0],
"max_depth": list(range(1, 11)),
"min_samples_split": list(range(2, 21)),
"min_samples_leaf": list(range(1, 21)),
"subsample": list(np.arange(0.05, 1.01, 0.05)),
"max_features": list(np.arange(0.05, 1.01, 0.05)),
}

optimizer1 = HillClimbingOptimizer()
optimizer2 = RandomRestartHillClimbingOptimizer()


hyper = Hyperactive()
hyper.add_search(
model_rfc,
search_space_rfc,
n_iter=50,
optimizer=optimizer1,
)
hyper.add_search(
model_gbc,
search_space_gbc,
n_iter=50,
optimizer=optimizer2,
n_jobs=2,
)
hyper.run(max_time=5)
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@ dependencies = [

[project.optional-dependencies]
sklearn-integration = [
"scikit-learn == 1.5.2",
"scikit-learn == 1.6.0",
]
build = [
"setuptools",
"build",
"wheel",
]
test = [
"pytest == 8.3.3",
"pytest == 8.3.4",
"flake8",
"pytest-cov",
"pathos",
Expand Down
2 changes: 1 addition & 1 deletion requirements/requirements-test.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pytest == 8.3.3
pytest == 8.3.4
flake8
pytest-cov
pathos

0 comments on commit abb4efc

Please sign in to comment.