使用GridSearchCV控制预测> 0

问题描述 投票:0回答:1

我正在使用GridSearchCV来估计我的回归量的参数。我使用评分函数mean_squared_log_error(我想继续使用它)

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折网格搜索中的一些预测恰好是负面的(即使它不应该发生,因为我的目标变量总是正的)因此我得到了错误消息

ValueError: Mean Squared Logarithmic Error cannot be used when targets contain negative values.

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

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

python scikit-learn xgboost gridsearchcv msle
1个回答
0
投票

如果您知道您的依赖(y值)始终为正,则可以使用损失函数来限制您的预测也在正域中。

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

© www.soinside.com 2019 - 2024. All rights reserved.