H2OTypeError: Argument should be an ?integer, got int64 [3.30.1.1]

H2OTypeError: Argument should be an ?integer, got int64 [3.30.1.1]

我正在尝试将 hyperopt 与 H2O XGBoost 一起简单使用,为此我从 numpy 数组中取出元素作为参数,但我得到了这个 H2OTypeError,我不明白为什么?integer 不符合 int64

为简化示例,H2O XGBoost 在调用时确实有效:

xgb = H2OXGBoostEstimator(nfolds=5, max_depth=list(range(10,11))[0])

但是下面returns这个H2OTypeError:

xgb = H2OXGBoostEstimator(nfolds=5, max_depth=np.arange(10,11,1)[0])

...

H2OTypeError: Argument `max_depth` should be an ?integer, got int64

我现在可以解决这个错误,但我不明白。

H2O 期待原生 Python int,但您传递的是 numpy int64。关于差异的更多解释

尝试将 numpy 数组转换为列表 max_depth=np.arange(10,11,1).tolist()[0]