Passed
Push — master ( 193da7...4bb259 )
by Simon
01:36 queued 11s
created

hyperactive.hyperactive_api.Hyperactive.search()   A

Complexity

Conditions 1

Size

Total Lines 25
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 19
nop 8
dl 0
loc 25
rs 9.45
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A hyperactive.hyperactive_api.Hyperactive.run() 0 6 1

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
from .general_optimizer import Optimizer
6
7
8
class Hyperactive:
9
    def __init__(
10
        self, X, y, random_state=None, verbosity=3, warnings=False, ext_warnings=False,
11
    ):
12
        self.X = X
13
        self.y = y
14
        self.opt = Optimizer(
15
            random_state=random_state,
16
            verbosity=verbosity,
17
            warnings=warnings,
18
            ext_warnings=ext_warnings,
19
            hyperactive=True,
20
        )
21
22
    def add_search(
23
        self,
24
        model,
25
        search_space,
26
        n_iter=10,
27
        function_parameter=None,
28
        optimizer="RandomSearch",
29
        n_jobs=1,
30
        init_para=[],
31
        memory="short",
32
    ):
33
        self.opt.add_search(
34
            objective_function=model,
35
            search_space=search_space,
36
            function_parameter={"features": self.X, "target": self.y},
37
            n_iter=n_iter,
38
            optimizer=optimizer,
39
            n_jobs=n_jobs,
40
            init_para=init_para,
41
            memory=memory,
42
        )
43
44
    def run(self, max_time=None):
45
        self.opt.run(max_time=max_time)
46
47
        self.position_results = self.opt.position_results
48
        self.eval_times = self.opt.eval_times
49
        self.iter_times = self.opt.iter_times
50
        # self.best_para = self.search.results
51
        # self.best_score = self.search.results
52