00cce06892217b891c8a85ead8c51b28d556bd64,skopt/tree_opt.py,,_tree_minimize,#,25

Before Change


            print("Function value obtained: %0.4f" % curr_y)
            print("Current minimum: %0.4f" % np.min(yi))

    res = OptimizeResult()
    best = np.argmin(yi)
    res.x = Xi[best]
    res.fun = yi[best]
    res.func_vals = np.array(yi)
    res.x_iters = Xi
    res.models = models
    res.space = space
    res.random_state = rng

    return res


def gbrt_minimize(func, dimensions, base_estimator=None, n_calls=100,
                  n_points=1000, n_random_starts=10, x0=None, y0=None,

After Change


                   n_points, n_random_starts, x0=None, y0=None,
                   random_state=None, acq="EI", xi=0.01, kappa=1.96,
                   verbose=False, specs=None, callback=None):
    rng = check_random_state(random_state)
    space = Space(dimensions)

    // Initialize with provided points (x0 and y0) and/or random points
    if n_calls <= 0:
        raise ValueError(
            "Expected `n_calls` > 0, got %d" % n_random_starts)

    if x0 is None:
        x0 = []
    elif not isinstance(x0[0], list):
        x0 = [x0]

    if not isinstance(x0, list):
        raise ValueError("`x0` should be a list, but got %s" % type(x0))

    n_init_func_calls = len(x0) if y0 is None else 0
    n_total_init_calls = n_random_starts + n_init_func_calls

    if n_total_init_calls <= 0:
        // if x0 is not provided and n_random_starts is 0 then
        // it will ask for n_random_starts to be > 0.
        raise ValueError(
            "Expected `n_random_starts` > 0, got %d" % n_random_starts)

    if n_calls < n_total_init_calls:
        raise ValueError(
            "Expected `n_calls` >= %d, got %d" % (n_total_init_calls, n_calls))

    func_call_no = 0
    if y0 is None and x0:
        y0 = []
        for i, x in enumerate(x0):

            if verbose:
                func_call_no += 1
                print("Function evaluation No: %d at provided "
                      "point started." % func_call_no)
                t = time()

            curr_y = func(x)
            y0.append(curr_y)

            if verbose:
                print("Function evaluation No: %d at provided "
                      "point ended." % func_call_no)
                print("Time taken: %0.4f" % (time() - t))
                print("Function value obtained: %0.4f" % curr_y)
                print("Current minimum: %0.4f" % np.min(y0))
            if callback is not None:
                callback(pack_optimize_result(x0, y0, space, rng, specs))
    elif x0:
        if isinstance(y0, Iterable):
            y0 = list(y0)
        elif isinstance(y0, numbers.Number):
            y0 = [y0]
        else:
            raise ValueError(
                "`y0` should be an iterable or a scalar, got %s" % type(y0))
        if len(x0) != len(y0):
            raise ValueError("`x0` and `y0` should have the same length")
        if not all(map(np.isscalar, y0)):
            raise ValueError("`y0` elements should be scalars")
    else:
        y0 = []

    // Random function evaluations.
    X_rand = space.rvs(n_samples=n_random_starts, random_state=rng)
    Xi = x0 + X_rand
    yi = y0

    for i, x in enumerate(X_rand):
        if verbose:
            func_call_no += 1
            print("Function evaluation no: %d at a "
                  "random point started" % func_call_no)
            t = time()

        curr_y = func(x)
        yi.append(curr_y)

        if verbose:
            print("Function evaluation no: %d at a "
                  "random point ended" % func_call_no)
            print("Time taken: %0.4f" % (time() - t))
            print("Function value obtained: %0.4f" % curr_y)
            print("Current minimum: %0.4f" % np.min(yi))
        if callback is not None:
            callback(pack_optimize_result(
                x0 + X_rand[:i + 1], yi, space, rng, specs))

    if np.ndim(yi) != 1:
        raise ValueError("`func` should return a scalar")

    // Tree-based optimization loop
    models = []
    n_model_iter = n_calls - n_total_init_calls
    for i in range(n_model_iter):

        if verbose:
            print("Fitting model no: %d" % (i + 1))

        rgr = clone(base_estimator)
        rgr.fit(space.transform(Xi), yi)
        models.append(rgr)

        // `rgr` predicts constants for each leaf which means that the EI
        // has zero gradient over large distances. As a result we can not
        // use gradient based optimizers like BFGS, so using random sampling
        // for the moment.
        X = space.transform(space.rvs(n_samples=n_points,
                                      random_state=rng))
        values = _gaussian_acquisition(
            X=X, model=rgr, y_opt=np.min(yi), method=acq,
            xi=xi, kappa=kappa)
        next_x = X[np.argmin(values)]
        next_x = space.inverse_transform(next_x.reshape((1, -1)))[0]

        if verbose:
            func_call_no += 1
            print("Function evaluation no: %d started" % func_call_no)
            t = time()

        curr_y = func(next_x)
        Xi.append(next_x)
        yi.append(curr_y)

        if verbose:
            print("Function evaluation no: %d ended" % func_call_no)
            print("Time taken: %0.4f" % (time() - t))
            print("Function value obtained: %0.4f" % curr_y)
            print("Current minimum: %0.4f" % np.min(yi))

        if callback is not None:
            callback(pack_optimize_result(Xi, yi, space, rng, specs))

    return pack_optimize_result(Xi, yi, space, rng, specs, models)


def gbrt_minimize(func, dimensions, base_estimator=None, n_calls=100,
Italian Trulli
In pattern: SUPERPATTERN

Frequency: 3

Non-data size: 27

Instances


Project Name: scikit-optimize/scikit-optimize
Commit Name: 00cce06892217b891c8a85ead8c51b28d556bd64
Time: 2016-08-08
Author: manojkumarsivaraj334@gmail.com
File Name: skopt/tree_opt.py
Class Name:
Method Name: _tree_minimize


Project Name: scikit-optimize/scikit-optimize
Commit Name: 00cce06892217b891c8a85ead8c51b28d556bd64
Time: 2016-08-08
Author: manojkumarsivaraj334@gmail.com
File Name: skopt/gp_opt.py
Class Name:
Method Name: gp_minimize


Project Name: scikit-optimize/scikit-optimize
Commit Name: 00cce06892217b891c8a85ead8c51b28d556bd64
Time: 2016-08-08
Author: manojkumarsivaraj334@gmail.com
File Name: skopt/dummy_opt.py
Class Name:
Method Name: dummy_minimize


Project Name: scikit-optimize/scikit-optimize
Commit Name: 00cce06892217b891c8a85ead8c51b28d556bd64
Time: 2016-08-08
Author: manojkumarsivaraj334@gmail.com
File Name: skopt/tree_opt.py
Class Name:
Method Name: _tree_minimize