标签: hyperopt

Hyperopt:重新运行时的最佳参数更改

我正在尝试使用贝叶斯优化(Hyperopt)来获得 SVM 算法的最佳参数。但是,我发现每次运行时最佳参数都在变化。

下面提供的是一个简单的可重现案例。你能对此有所了解吗?

import numpy as np 
from hyperopt import fmin, tpe, hp, STATUS_OK, Trials

from sklearn.svm import SVC
from sklearn import svm, datasets
from sklearn.metrics import accuracy_score
from sklearn.model_selection import GridSearchCV, cross_val_score
from sklearn.model_selection import StratifiedShuffleSplit

iris = datasets.load_iris()
X = iris.data[:, :2] 
y = iris.target

def hyperopt_train_test(params):
    clf = svm.SVC(**params)
    return cross_val_score(clf, X, y).mean()

space4svm = {
    'C': hp.loguniform('C', -3, 3),
    'gamma': hp.loguniform('gamma', -3, 3),
}

def f(params):
    acc = hyperopt_train_test(params)
    return {'loss': -acc, 'status': STATUS_OK}

trials …
Run Code Online (Sandbox Code Playgroud)

parameters svm python-3.x scikit-learn hyperopt

4
推荐指数
1
解决办法
1777
查看次数

ap_uniform_sampler() 缺少 1 个必需的位置参数:python 的 Ray Tune 包中的“高”

我正在尝试使用 Ray Tune包对使用纯 Tensorflow 实现的 LSTM 进行超参数调整。我用的超频调度和HyperOptSearch算法这一点,我也使用可训练类的方法。当我尝试运行它时,出现以下错误:

类型错误:ap_uniform_sampler() 缺少 1 个必需的位置参数:“高”

下面显示的是堆栈跟踪:

FutureWarning:不推荐将 issubdtype 的第二个参数从floatto转换np.floating。将来,它将被视为np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters Process STDOUT 和 STDERR 被重定向到 /tmp/ray/session_2018-12-19_09-43-46_5469/logs。等待 127.0.0.1:14332 处的 redis 服务器响应... 等待 127.0.0.1:25158 处的 redis 服务器响应... 使用 /dev/shm 启动具有 3.220188364 GB 内存的 Plasma 对象存储。无法启动 UI,您可能需要运行“pip install jupyter”。== 状态 == 使用 HyperBand:num_stopped=0 total_brackets=0 第 0 轮:请求的资源:0/4 个 CPU,0/0 个 GPU 此节点上的内存使用量:3.7/8.1 GB

Traceback (most recent call last):   
File …
Run Code Online (Sandbox Code Playgroud)

python-3.x ray hyperparameters tensorflow hyperopt

3
推荐指数
1
解决办法
1854
查看次数

hyperopt 结果超出了我的 hp.choice 限制,为什么?(XGBoost)

我遇到了一个奇怪的问题:我通过 hyperopt
定义了我的 XGB 超参数'max_depth'

hp.choice('max_depth',range(2,20))
Run Code Online (Sandbox Code Playgroud)

但我得到'max_depth' = 01结果,这不在[2,20)限制之内。为什么?我错过了什么吗?谢谢。

错误结果:

{'colsample_bytree': 0.18, 'learning_rate': 0.05, 'max_depth': 1, 'reg_alpha': 3.44, 'reg_lambda': 0.92}

{'colsample_bytree': 0.41, 'learning_rate': 0.09, 'max_depth': 0, 'reg_alpha': 0.14, 'reg_lambda': 3.53}

{'colsample_bytree': 0.71, 'learning_rate': 0.17, 'max_depth': 0, 'reg_alpha': 2.21, 'reg_lambda': 2.82}
Run Code Online (Sandbox Code Playgroud)
hp.choice('max_depth',range(2,20))
Run Code Online (Sandbox Code Playgroud)

xgboost hyperopt

3
推荐指数
2
解决办法
1438
查看次数

AttributeError:模块“hyperopt”没有属性“uniform”

我正在尝试在 hyperopt 中定义参数空间。但是,当我运行时:

import hyperopt as hp
SPACE = {'d1': hp.uniform('d1',-1000000,-0.5),
'd2': hp.uniform('d2',0,1),
'd3': hp.uniform('d3',0,1)} 
Run Code Online (Sandbox Code Playgroud)

我收到标题中的错误。我在网上发现的唯一一件事是我应该尝试降级到networkx 1.11,所以在命令提示符下我运行:

pip install networkx==1.11
Run Code Online (Sandbox Code Playgroud)

它显然有效,但属性制服仍然没有运气。

python optimization hyperopt

3
推荐指数
1
解决办法
2358
查看次数

Hyperopt:定义依赖于其他参数的参数

我正在使用pythonpackage hyperopt并且我有一个参数a,该参数必须大于parameter b

例如,我希望我的参数空间像

space = {"b": hp.uniform(0, 0.5), "a": hp.uniform(b, 0.5)}
Run Code Online (Sandbox Code Playgroud)

要求a至少大于b,我该怎么做?

提前致谢

parameters hyperopt

1
推荐指数
1
解决办法
212
查看次数