python - 在数据子集上运行但在原始数据上完美运行时出现 h2o 错误
问题描述
我得到的错误是这个。我的数据的子集 [~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.'
解决方案
这是一个用户错误。
“响应”是 y 列。对于您给出的数据子集,每一行都具有相同的 y 值。当每个 y 值都相同时,您无法训练有监督的机器学习模型——模型没有什么可学习的。
如果您有一个罕见的结果,则可能会发生这种情况——当您随机拆分数据时,您可能会得到一个仅表示一个值的分区。要检查 Python 的响应列中有多少个唯一值,请执行以下操作: train[y].unique()
推荐阅读
- python - df 多列的加权平均聚合
- javascript - html2canvas 给出空白图像
- ios - 卸载后清除我的 OS X 应用程序的用户默认设置
- node.js - bash 中的 Node.js 主要版本
- windows - 在 docker 桌面 (docker-compose) 上,是否可以在 bash 模式下直接在 PHP 容器上打开 CLI?
- java - 动态 Web 项目通过 Servlet 获取完整路径
- axapta - 覆盖 displayOption 以根据 displayMethod 中的值为某些行着色
- xml - 通过更改 xml 文件改进 opencv 人脸检测
- c++ - QFileInfo::setCaching(bool enable) 如何工作?
- excel - 将 1 行保存为 PDF,文件名从每行的单元格中保存(~1800 行)