Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parallel processing HyperOptSearch和ray.tune_Parallel Processing_Xgboost_Ray_Hyperopt - Fatal编程技术网

Parallel processing HyperOptSearch和ray.tune

Parallel processing HyperOptSearch和ray.tune,parallel-processing,xgboost,ray,hyperopt,Parallel Processing,Xgboost,Ray,Hyperopt,我正在尝试使用HyperOptSearch和ray.tune进行参数优化。代码使用hyperopt(不使用tune),但我希望它更快,因此使用tune。不幸的是,我找不到很多例子,所以我不确定代码。我在XGboost中使用了一个管道,但我不仅想优化XGboost中的参数,还想优化管道中用于编码的另一个参数。这可能与tune有关吗?我的代码如下 from hyperopt import hp from ray import tune from ray.tune.suggest.hyperopt i

我正在尝试使用HyperOptSearch和ray.tune进行参数优化。代码使用hyperopt(不使用tune),但我希望它更快,因此使用tune。不幸的是,我找不到很多例子,所以我不确定代码。我在XGboost中使用了一个管道,但我不仅想优化XGboost中的参数,还想优化管道中用于编码的另一个参数。这可能与tune有关吗?我的代码如下

from hyperopt import hp
from ray import tune
from ray.tune.suggest.hyperopt import HyperOptSearch

def train_model(space, reporter):
    #target encoding
    columns_te=no_of_classes[no_of_classes.counts>space['enc_threshold']].feature.values.tolist()
    #one hot encoding
    columns_ohe=categorical.columns[~categorical.columns.isin(cols_te)].tolist()

    #model
    pipe1 = SKPipeline([('ohe',
                          OneHotEncoder(cols=columns_ohe, return_df=True,handle_unknown='ignore', use_cat_names=True)), 
                          ('te',
                          TargetEncoder(cols= columns_te, min_samples_leaf=space['min_samples_leaf']))])

    pipe2 = IMBPipeline([
         ('sampling',RandomUnderSampler()),
         ('clf', xgb.XGBClassifier(**space, n_jobs = -1))
        ])

    model = SKPipeline([('pipe1', pipe1), ('pipe2', pipe2)])

    optimizer = SGD()
    dataset = xx
    accuracy = model.fit(dataset.drop(['yy']), dataset.yy)
    reporter(mean_accuracy=roc_auc)

if __name__ == '__main__':
    ray.init()

    space = {'eta':hp.uniform('eta',0.001,0.1),
            'max_depth':scope.int(hp.quniform('max_depth', 1,5,1)),
            'min_child_weight': hp.uniform('min_child_weight', 0.1, 1.5),
            'n_estimators': scope.int(hp.quniform('n_estimators',20,200,10)),
            'subsample': hp.uniform('subsample',0.5,0.9),
            'colsample_bytree': hp.uniform('colsample_bytree',0.5,0.9),
            'gamma': hp.uniform('gamma',0,5),
            'min_samples_leaf':scope.int(hp.quniform('min_samples_leaf',10,200,20)),
            'nrounds':scope.int(hp.quniform('nrounds',100,1500,50))
             }



    algo = HyperOptSearch(space, max_concurrent=5,  metric='roc_auc', mode="max")
    tune.run(train_model, num_samples=10, search_alg=algo)

看起来不错。一旦你成功了,就可以把它作为一个例子!我有一个错误,我不知道如何解决。redis.exceptions.ConnectionError:写入套接字时出现错误104。连接被对等方重置。这似乎与数据集的大小有关。我试图遵循这个示例,但我不理解它们是如何在数据集上迭代的。数据是列表/数据帧吗?此外,如果我只使用数据集的一个样本,它也不起作用
def train_func(config,reporter):#添加一个reporter arg model=(…)optimizer=SGD(model.parameters(),momentum=config[“momentum”])dataset=(…)用于枚举(dataset)中的idx(数据,目标):精度=模型。拟合(数据,目标)报告器(平均精度=精度)#报告指标
我们最近在文档中添加了一个XGBoost示例:。此外,如果您使用Redis遇到ConnectionErrors,您可以使用此解决方法:看起来不错。一旦你成功了,就可以把它作为一个例子!我有一个错误,我不知道如何解决。redis.exceptions.ConnectionError:写入套接字时出现错误104。连接被对等方重置。这似乎与数据集的大小有关。我试图遵循这个示例,但我不理解它们是如何在数据集上迭代的。数据是列表/数据帧吗?此外,如果我只使用数据集的一个样本,它也不起作用
def train_func(config,reporter):#添加一个reporter arg model=(…)optimizer=SGD(model.parameters(),momentum=config[“momentum”])dataset=(…)用于枚举(dataset)中的idx(数据,目标):精度=模型。拟合(数据,目标)报告器(平均精度=精度)#报告指标
我们最近在文档中添加了一个XGBoost示例:。此外,如果您使用Redis遇到ConnectionErrors,您可以使用以下解决方法: