TypeError
我是新手。我无法适应dask-xgboost模型。
import dask_xgboost as xgb
from dask.distributed import Client, LocalCluster
client = Client()
client
param = dict(learning_rate =0.1,
n_estimators=500,
max_depth=6,
min_child_weight=7,
gamma=0.5,
subsample=0.7,
colsample_bytree=0.6,
reg_alpha=0.005,
objective= 'binary:logistic',
nthread=4,
scale_pos_weight=1)
xgb.train(client, param, dask_train_array, dask_y_train_array)
当我执行上述代码时,遇到此错误。知道该怎么办吗?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-159-28dbf7c730b8> in <module>()
----> 1 xgb.train(client, param, dask_train_array, dask_y_train_array)
C:\Anaconda\lib\site-packages\dask_xgboost\core.py in train(client, params, data, labels, dmatrix_kwargs, **kwargs)
189 """
190 return client.sync(_train, client, params, data,
--> 191 labels, dmatrix_kwargs, **kwargs)
192
193
C:\Anaconda\lib\site-packages\distributed\client.py in sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
751 else:
752 return sync(
--> 753 self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
754 )
755
C:\Anaconda\lib\site-packages\distributed\utils.py in sync(loop, func, callback_timeout, *args, **kwargs)
335 e.wait(10)
336 if error[0]:
--> 337 six.reraise(*error[0])
338 else:
339 return result[0]
C:\Anaconda\lib\site-packages\six.py in reraise(tp, value, tb)
691 if value.__traceback__ is not tb:
692 raise value.with_traceback(tb)
--> 693 raise value
694 finally:
695 value = None
C:\Anaconda\lib\site-packages\distributed\utils.py in f()
320 if callback_timeout is not None:
321 future = gen.with_timeout(timedelta(seconds=callback_timeout), future)
--> 322 result[0] = yield future
323 except Exception as exc:
324 error[0] = sys.exc_info()
C:\Anaconda\lib\site-packages\tornado\gen.py in run(self)
1131
1132 try:
-> 1133 value = future.result()
1134 except Exception:
1135 self.had_exception = True
C:\Anaconda\lib\site-packages\tornado\gen.py in run(self)
1139 if exc_info is not None:
1140 try:
-> 1141 yielded = self.gen.throw(*exc_info)
1142 finally:
1143 # Break up a reference to itself
C:\Anaconda\lib\site-packages\dask_xgboost\core.py in _train(client, params, data, labels, dmatrix_kwargs, **kwargs)
125 for part in parts:
126 if part.status == 'error':
--> 127 yield part # trigger error locally
128
129 # Because XGBoost-python doesn't yet allow iterative training, we need to
C:\Anaconda\lib\site-packages\tornado\gen.py in run(self)
1131
1132 try:
-> 1133 value = future.result()
1134 except Exception:
1135 self.had_exception = True
C:\Anaconda\lib\asyncio\tasks.py in _wrap_awaitable(awaitable)
597 that will later be wrapped in a Task by ensure_future().
598 """
--> 599 return (yield from awaitable.__await__())
600
601
C:\Anaconda\lib\site-packages\distributed\client.py in __await__(self)
413
414 def __await__(self):
--> 415 return self.result().__await__()
416
417
C:\Anaconda\lib\site-packages\distributed\client.py in result(self, timeout)
220 result = self.client.sync(self._result, callback_timeout=timeout, raiseit=False)
221 if self.status == "error":
--> 222 six.reraise(*result)
223 elif self.status == "cancelled":
224 raise result
TypeError: reraise() argument after * must be an iterable, not coroutine
以前,我曾尝试使用相同的dask数组进行logistic回归,并且效果很好。我不确定是什么导致此错误。我将不胜感激