尝试将GridSearhCV与XGBClassifier

时间:2017-08-20 12:39:14

标签: python classification xgboost grid-search

我正在尝试将GridSearchCV与XGBoost一起使用,以便使用最好的婴儿车训练和拟合相当大的数据集(> 500MB)。但我收到一个我无法解决的错误。我有一台32GB内存的笔记本电脑,一旦我让它运行,Python的内存消耗不超过10GB,所以我不认为这是一个与内存相关的问题,虽然我不确定。

我甚至不知道是否可以通过使用不同的模型或其他东西来解决这些错误。也许这是网格搜索的一个问题,但不知道如何在不使用它的情况下克服它。

以下是代码:

parameters = {'learning_rate': [0.03,0.04,0.05,0.06,0.07],
              'max_depth': [3,5,7,9,11],
              'min_child_weight': [2,4,6,8,10],
              'subsample': [0.9,0.8,0.7,0.6,0.5],
              'colsample_bytree': [0.9,0.8,0.7,0.6,0.5]}

xgb_model = XGBClassifier(objective = 'multi:softprob', nthread = 4, n_estimators= 1000, seed = 1337, silent = 0)

clf = GridSearchCV(estimator=xgb_model,param_grid=parameters,n_jobs=-1,verbose = 5)
clf.fit(orders_prior1[['user_id','order_number','order_dow','order_hour_of_day','days_since_prior_order']]\
                       ,orders_prior1['product_id'], orders_prior1['user_order'])

这是错误:

Traceback (most recent call last):
  File "C:\Anaconda3\lib\site-packages\sklearn\externals\joblib\_parallel_backends.py", line 344, in __call__
    return self.func(*args, **kwargs)
  File "C:\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 131, in __call__
    return [func(*args, **kwargs) for func, args, kwargs in self.items]
  File "C:\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 131, in <listcomp>
    return [func(*args, **kwargs) for func, args, kwargs in self.items]
  File "C:\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 238, in _fit_and_score
    estimator.fit(X_train, y_train, **fit_params)
  File "C:\Anaconda3\lib\site-packages\xgboost\sklearn.py", line 445, in fit
    verbose_eval=verbose)
  File "C:\Anaconda3\lib\site-packages\xgboost\training.py", line 205, in train
    xgb_model=xgb_model, callbacks=callbacks)
  File "C:\Anaconda3\lib\site-packages\xgboost\training.py", line 76, in _train_internal
    bst.update(dtrain, i, obj)
  File "C:\Anaconda3\lib\site-packages\xgboost\core.py", line 806, in update
    _check_call(_LIB.XGBoosterUpdateOneIter(self.handle, iteration, dtrain.handle))
OSError: [WinError -529697949] Windows Error 0xe06d7363

我几天前发布了一个类似的问题(除了使用神经网络分类器),但仍然没有得到任何肯定的答案。关于为什么会发生这种错误以及如何解决这种错误的任何想法?也许尝试不同的语言?尽管Python成为处理数据科学问题的关键语言,但我还是要使用不同的语言来解决这个问题。提前谢谢。

0 个答案:

没有答案