首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GridSearchCV控制预测>0

使用GridSearchCV控制预测>0
EN

Stack Overflow用户
提问于 2018-11-15 22:14:52
回答 1查看 585关注 0票数 1

我使用GridSearchCV来估计我的回归器的参数。我使用评分函数mean_squared_log_error (并且我想继续使用它)

代码语言:javascript
复制
from sklearn.model_selection import GridSearchCV
import xgboost as xgb

gs = GridSearchCV(xgb.XGBRegressor(),
                  param_grid={'max_depth': range(5, 10)},
                  scoring='neg_mean_squared_log_error', cv=5, return_train_score=True)

gs.fit(X, y)

Y总是正的,但是发生的情况是,5折网格搜索中的一些预测碰巧是负的(即使它不应该发生,因为我的目标变量总是正的),因此我得到了错误消息

代码语言:javascript
复制
ValueError: Mean Squared Logarithmic Error cannot be used when targets contain negative values.

因为得分者试图计算负数的对数(不幸的预测)。

有没有办法控制GridSearchCV内部的预测?你将如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2018-11-19 22:17:28

如果你知道你的依赖(y值)总是正的,你可以使用一个损失函数来约束你的预测也在正域中。

在XGBoost中支持的一个例子是Gamma regression (参见reg:gamma),或者你可以像均方对数误差一样design your own loss function,在这种情况下你必须推导出一阶和二阶导数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53321395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档