在数据子集上运行时出现 h2o 错误,但在原始数据上运行完美

YNW*_*NWA 3 python classification gbm h2o xgboost

我得到的错误是这样的。我的数据的子集 [~100k 示例] 与原始数据集 [400k 示例] 具有完全相同的列数。但它在原始数据集上运行完美,但在子集上运行不佳。

Traceback (most recent call last)
<ipython-input-14-35cf02055a2e> in <module>()
     15 from h2o.estimators.gbm import H2OGradientBoostingEstimator
     16 gbm_cv3 = H2OGradientBoostingEstimator(nfolds=2)
---> 17 gbm_cv3.train(x=x, y=y, training_frame=train)
     18 ## Getting all cross validated models
     19 all_models = gbm_cv3.cross_validation_models()



error_count = 2
    http_status = 412
    msg = u'Illegal argument(s) for GBM model: 
GBM_model_python_1533214798867_179.  Details: ERRR on field: 
_response: Response cannot be constant.'
    dev_msg = u'Illegal argument(s) for GBM model: 
GBM_model_python_1533214798867_179.  Details: ERRR on field: 
_response: Response cannot be constant.'
Run Code Online (Sandbox Code Playgroud)

Tom*_*vic 5

这是一个用户错误。

\n\n

“响应”是 y 列。对于您给出的数据子集,每行都有相同的 y 值。当每个 y 值都相同 \xe2\x80\x94 时,您无法训练监督机器学习模型,模型无法学习任何内容。

\n\n

如果您有一种罕见的结果,则可能会发生这种情况 - 当您随机分割数据时,您可能会得到一个仅代表一个值的分区。要检查 Python 中的响应列中有多少个唯一值,请执行以下操作: train[y].unique()

\n