我正在使用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 中的预测?你会如何解决这个问题?