Has someone tried to perform cross validation
to this model?
The snippet below can replace the last line of mdo code…
param_fit_grid = { 'base_margin' : base_margin}
score = model_selection.cross_val_score(
model_adj_sharpe,
train[feature_columns],
train[target],
cv=3,
n_jobs=-1,
scoring=make_scorer(mean_squared_error),
fit_params=param_fit_grid,
error_score=123)
print(score)
However, it returns my error_score=123
, after some investigation I guess the problem occurs here:
# get correlations in each era
for ee in era_idx:
score = corr(ypred_th[ee], ytrue_th[ee])
More exactly ypred_th[ee]
, apparently after 1 successful cv-fold, it can´t find the the respective index on ypred_th
tensor.
Moreover, if you replace de the objective function to squared_log
example function as shown on xgb docs it works fine on cross_val_score.
One more thing
The order of the parameters in adj_sharpe_obj(ytrue, ypred)
is flipped according to xgb_docs standards, not sure if it can create any noise.