當前位置: 首頁>>代碼示例>>Python>>正文


Python space.Categorical方法代碼示例

本文整理匯總了Python中skopt.space.Categorical方法的典型用法代碼示例。如果您正苦於以下問題:Python space.Categorical方法的具體用法?Python space.Categorical怎麽用?Python space.Categorical使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在skopt.space的用法示例。


在下文中一共展示了space.Categorical方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_dimensions_names

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_dimensions_names():
    from skopt.space import Real, Categorical, Integer
    # create search space and optimizer
    space = [Real(0, 1, name='real'),
             Categorical(['a', 'b', 'c'], name='cat'),
             Integer(0, 1, name='int')]
    opt = Optimizer(space, n_initial_points=1)
    # result of the optimizer missing dimension names
    result = opt.tell([(0.5, 'a', 0.5)], [3])
    names = []
    for d in result.space.dimensions:
        names.append(d.name)
    assert len(names) == 3
    assert "real" in names
    assert "cat" in names
    assert "int" in names
    assert None not in names 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:19,代碼來源:test_optimizer.py

示例2: test_categorical_only

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_categorical_only():
    from skopt.space import Categorical
    cat1 = Categorical([2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
    cat2 = Categorical([2, 3, 4, 5, 6, 7, 8, 9, 10, 11])

    opt = Optimizer([cat1, cat2])
    for n in range(15):
        x = opt.ask()
        res = opt.tell(x, 12 * n)
    assert len(res.x_iters) == 15
    next_x = opt.ask(n_points=4)
    assert len(next_x) == 4

    cat3 = Categorical(["2", "3", "4", "5", "6", "7", "8", "9", "10", "11"])
    cat4 = Categorical(["2", "3", "4", "5", "6", "7", "8", "9", "10", "11"])

    opt = Optimizer([cat3, cat4])
    for n in range(15):
        x = opt.ask()
        res = opt.tell(x, 12 * n)
    assert len(res.x_iters) == 15
    next_x = opt.ask(n_points=4)
    assert len(next_x) == 4 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:25,代碼來源:test_optimizer.py

示例3: test_categorical_only2

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_categorical_only2():
    from numpy import linalg
    from skopt.space import Categorical
    from skopt.learning import GaussianProcessRegressor
    space = [Categorical([1, 2, 3]), Categorical([4, 5, 6])]
    opt = Optimizer(space,
                    base_estimator=GaussianProcessRegressor(alpha=1e-7),
                    acq_optimizer='lbfgs',
                    n_initial_points=10,
                    n_jobs=2)

    next_x = opt.ask(n_points=4)
    assert len(next_x) == 4
    opt.tell(next_x, [linalg.norm(x) for x in next_x])
    next_x = opt.ask(n_points=4)
    assert len(next_x) == 4
    opt.tell(next_x, [linalg.norm(x) for x in next_x])
    next_x = opt.ask(n_points=4)
    assert len(next_x) == 4 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:21,代碼來源:test_optimizer.py

示例4: test_set_get_transformer

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_set_get_transformer():
    # can you pass a Space instance to the Space constructor?
    space = Space([(0.0, 1.0), (-5, 5),
                   ("a", "b", "c"), (1.0, 5.0, "log-uniform"), ("e", "f")])

    transformer = space.get_transformer()
    assert_array_equal(["identity", "identity", "onehot",
                        "identity", "onehot"], transformer)
    space.set_transformer("normalize")
    transformer = space.get_transformer()
    assert_array_equal(["normalize"] * 5, transformer)
    space.set_transformer(transformer)
    assert_array_equal(transformer, space.get_transformer())

    space.set_transformer_by_type("label", Categorical)
    assert space.dimensions[2].transform(["a"]) == [0] 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:18,代碼來源:test_space.py

示例5: test_dimension_name

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_dimension_name():
    notnames = [1, 1., True]
    for n in notnames:
        with pytest.raises(ValueError) as exc:
            real = Real(1, 2, name=n)
            assert("Dimension's name must be either string or"
                   "None." == exc.value.args[0])
    s = Space([Real(1, 2, name="a"),
               Integer(1, 100, name="b"),
               Categorical(["red, blue"], name="c")])
    assert s["a"] == (0, s.dimensions[0])
    assert s["a", "c"] == [(0, s.dimensions[0]), (2, s.dimensions[2])]
    assert s[["a", "c"]] == [(0, s.dimensions[0]), (2, s.dimensions[2])]
    assert s[("a", "c")] == [(0, s.dimensions[0]), (2, s.dimensions[2])]
    assert s[0] == (0, s.dimensions[0])
    assert s[0, "c"] == [(0, s.dimensions[0]), (2, s.dimensions[2])]
    assert s[0, 2] == [(0, s.dimensions[0]), (2, s.dimensions[2])] 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:19,代碼來源:test_space.py

示例6: _knob_to_dimension

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def _knob_to_dimension(knob):
    if isinstance(knob, CategoricalKnob):
        return Categorical([x.value for x in knob.values])
    elif isinstance(knob, IntegerKnob):
        return Integer(knob.value_min, knob.value_max)
    elif isinstance(knob, FloatKnob):
        if knob.is_exp:
            # Avoid error in skopt when low/high are 0
            value_min = knob.value_min if knob.value_min != 0 else 1e-12
            value_max = knob.value_max if knob.value_max != 0 else 1e-12
            return Real(value_min, value_max, 'log-uniform')
        else:
            return Real(knob.value_min, knob.value_max, 'uniform')
    else:
        raise UnsupportedKnobError(knob.__class__) 
開發者ID:nginyc,項目名稱:rafiki,代碼行數:17,代碼來源:skopt.py

示例7: test_searchcv_rank

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_searchcv_rank():
    """
    Test whether results of BayesSearchCV can be reproduced with a fixed
    random state.
    """

    X, y = load_iris(True)
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, train_size=0.75, random_state=0
    )

    random_state = 42

    opt = BayesSearchCV(
        SVC(random_state=random_state),
        {
            'C': Real(1e-6, 1e+6, prior='log-uniform'),
            'gamma': Real(1e-6, 1e+1, prior='log-uniform'),
            'degree': Integer(1, 8),
            'kernel': Categorical(['linear', 'poly', 'rbf']),
        },
        n_iter=11, random_state=random_state, return_train_score=True
    )

    opt.fit(X_train, y_train)
    results = opt.cv_results_

    test_rank = np.asarray(rankdata(-np.array(results["mean_test_score"]),
                                    method='min'), dtype=np.int32)
    train_rank = np.asarray(rankdata(-np.array(results["mean_train_score"]),
                                     method='min'), dtype=np.int32)

    assert_array_equal(np.array(results['rank_test_score']), test_rank)
    assert_array_equal(np.array(results['rank_train_score']), train_rank) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:36,代碼來源:test_searchcv.py

示例8: check_categorical

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def check_categorical(vals, random_val):
    x = Categorical(vals)
    assert_equal(x, Categorical(vals))
    assert x != Categorical(vals[:-1] + ("zzz",))
    assert_equal(x.rvs(random_state=1), random_val) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:7,代碼來源:test_space.py

示例9: test_categorical_transform

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_categorical_transform():
    categories = ["apple", "orange", "banana", None, True, False, 3]
    cat = Categorical(categories)

    apple = [1., 0., 0., 0., 0., 0., 0.]
    orange = [0., 1.0, 0.0, 0.0, 0., 0., 0.]
    banana = [0., 0., 1., 0., 0., 0., 0.]
    none = [0., 0., 0., 1., 0., 0., 0.]
    true = [0., 0., 0., 0., 1., 0., 0.]
    false = [0., 0., 0., 0., 0., 1., 0.]
    three = [0., 0., 0., 0., 0., 0., 1.]

    assert_equal(cat.transformed_size, 7)
    assert_equal(cat.transformed_size, cat.transform(["apple"]).size)
    assert_array_equal(
        cat.transform(categories),
        [apple, orange, banana, none, true, false, three]
        )
    assert_array_equal(cat.transform(["apple", "orange"]), [apple, orange])
    assert_array_equal(cat.transform(["apple", "banana"]), [apple, banana])
    assert_array_equal(cat.inverse_transform([apple, orange]),
                       ["apple", "orange"])
    assert_array_equal(cat.inverse_transform([apple, banana]),
                       ["apple", "banana"])
    ent_inverse = cat.inverse_transform(
        [apple, orange, banana, none, true, false, three])
    assert_array_equal(ent_inverse, categories) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:29,代碼來源:test_space.py

示例10: test_categorical_transform_binary

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_categorical_transform_binary():
    categories = ["apple", "orange"]
    cat = Categorical(categories)

    apple = [0.]
    orange = [1.]

    assert_equal(cat.transformed_size, 1)
    assert_equal(cat.transformed_size, cat.transform(["apple"]).size)
    assert_array_equal(cat.transform(categories), [apple, orange])
    assert_array_equal(cat.transform(["apple", "orange"]), [apple, orange])
    assert_array_equal(cat.inverse_transform([apple, orange]),
                       ["apple", "orange"])
    ent_inverse = cat.inverse_transform([apple, orange])
    assert_array_equal(ent_inverse, categories) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:17,代碼來源:test_space.py

示例11: test_normalize_categorical

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_normalize_categorical():
    categories = ["cat", "dog", "rat"]
    a = Categorical(categories, transform="normalize")
    for i in range(len(categories)):
        assert a.rvs(random_state=i)[0] in categories
    assert a.inverse_transform([0.]) == [categories[0]]
    assert a.inverse_transform([0.5]) == [categories[1]]
    assert a.inverse_transform([1.0]) == [categories[2]]
    assert_array_equal(categories, a.inverse_transform([0., 0.5, 1]))

    categories = [1, 2, 3]
    a = Categorical(categories, transform="normalize")
    assert_array_equal(categories, np.sort(np.unique(a.rvs(100,
                                                           random_state=1))))
    assert_array_equal(categories, a.inverse_transform([0., 0.5, 1.]))

    categories = [1., 2., 3.]
    a = Categorical(categories, transform="normalize")
    assert_array_equal(categories, np.sort(np.unique(a.rvs(100,
                                                           random_state=1))))
    assert_array_equal(categories, a.inverse_transform([0., 0.5, 1.]))

    categories = [1, 2, 3]
    a = Categorical(categories, transform="string")
    a.set_transformer("normalize")
    assert_array_equal(categories, np.sort(np.unique(a.rvs(100,
                                                           random_state=1))))
    assert_array_equal(categories, a.inverse_transform([0., 0.5, 1.])) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:30,代碼來源:test_space.py

示例12: test_categorical_identity

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_categorical_identity():
    categories = ["cat", "dog", "rat"]
    cat = Categorical(categories, transform="identity")
    samples = cat.rvs(100)
    assert all([t in categories for t in cat.rvs(100)])
    transformed = cat.transform(samples)
    assert_array_equal(transformed, samples)
    assert_array_equal(samples, cat.inverse_transform(transformed)) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:10,代碼來源:test_space.py

示例13: test_categorical_string

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_categorical_string():
    categories = [1, 2, 3]
    categories_transformed = ["1", "2", "3"]
    cat = Categorical(categories, transform="string")
    samples = cat.rvs(100)
    assert all([t in categories for t in cat.rvs(100)])
    transformed = cat.transform(samples)
    assert all([t in categories_transformed for t in transformed])
    assert_array_equal(samples, cat.inverse_transform(transformed)) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:11,代碼來源:test_space.py

示例14: test_space_from_yaml

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_space_from_yaml():
    with NamedTemporaryFile(delete=False) as tmp:
        tmp.write(b"""
        Space:
            - Real:
                low: 0.0
                high: 1.0
            - Integer:
                low: -5
                high: 5
            - Categorical:
                categories:
                - a
                - b
                - c
            - Real:
                low: 1.0
                high: 5.0
                prior: log-uniform
            - Categorical:
                categories:
                - e
                - f
        """)
        tmp.flush()

        space = Space([(0.0, 1.0),
                       (-5, 5),
                       ("a", "b", "c"),
                       (1.0, 5.0, "log-uniform"),
                       ("e", "f")])

        space2 = Space.from_yaml(tmp.name)
        assert_equal(space, space2)
        tmp.close()
        os.unlink(tmp.name) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:38,代碼來源:test_space.py

示例15: test_purely_categorical_space

# 需要導入模塊: from skopt import space [as 別名]
# 或者: from skopt.space import Categorical [as 別名]
def test_purely_categorical_space():
    # Test reproduces the bug in #908, make sure it doesn't come back
    dims = [Categorical(['a', 'b', 'c']), Categorical(['A', 'B', 'C'])]
    optimizer = Optimizer(dims, n_initial_points=1, random_state=3)

    x = optimizer.ask()
    # before the fix this call raised an exception
    optimizer.tell(x, 1.) 
開發者ID:scikit-optimize,項目名稱:scikit-optimize,代碼行數:10,代碼來源:test_space.py


注:本文中的skopt.space.Categorical方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。