Passed
Pull Request — master (#101)
by Simon
01:37
created

example   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 28
dl 0
loc 40
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A SklearnExperiment._score() 0 4 1
A SklearnExperiment.setup() 0 5 1
1
import numpy as np
2
from sklearn.datasets import load_diabetes
3
from sklearn.tree import DecisionTreeRegressor
4
from sklearn.model_selection import cross_val_score
5
6
from hyperactive.search_config import SearchConfig
7
from hyperactive.optimizers import HillClimbingOptimizer
8
9
from hyperactive.base import BaseExperiment
10
11
12
class SklearnExperiment(BaseExperiment):
13
    def setup(self, estimator, X, y, cv=5):
14
        self.estimator = estimator
15
        self.X = X
16
        self.y = y
17
        self.cv = cv
18
19
    def _score(self, params):
20
        model = self.estimator(**params)
21
        scores = cross_val_score(model, self.X, self.y, cv=self.cv)
22
        return scores.mean()
23
24
25
data = load_diabetes()
26
X, y = data.data, data.target
27
28
29
search_config = SearchConfig(
30
    max_depth=list(np.arange(2, 15, 1)),
31
    min_samples_split=list(np.arange(2, 25, 2)),
32
)
33
34
experiment = SklearnExperiment()
35
experiment.setup(DecisionTreeRegressor, X, y, cv=4)
36
37
optimizer1 = HillClimbingOptimizer()
38
optimizer1.add_search(experiment, search_config, n_iter=100, n_jobs=2)
39
optimizer1.run()
40