我正在创建市场对冲模型。因此,如果我们对市场回落(负周收益)充满信心,就可以进行套期保值。我使用XGBClassifier预测下周市场将下跌(Y_true = 1)还是上涨(Y_true = 0)。在训练过程中,我偏向于模型,通过在sklearn版本的XGBoost中将每周收益的幅度指定为 sample_weights 来学习更大的动作而不是较小的动作。
想法是,我们不太担心对较小的每周收益(波动小于1-2%的订单)进行错误分类,但我们希望对较大的波动更加确定。
到目前为止,我一直尝试使用贝叶斯网格搜索(使用hyperopt)在广泛的XGBClassifier参数('reg_lambda', 'reg_alpha', 'min_child_weight', 'max_depth', 'colsample_bytree', 'n_estimators', 'gamma', 'subsample')
上进行优化以最小化brier_score_loss
。
但是我相信,我不会将此加权信息传递给提升过程(即,为下一棵树中错误分类的值提供的权重)。是否有一些损失函数代替一般的(objective: 'binary:logistic', booster: 'gbtree')
,更适合我的目标?