Как вы определяете модель xgboost, в которой прогнозируемое значение основано на предыдущих итерациях?

#r #xgboost

Вопрос:

Я построил следующую модель, но не могу понять, как ее реализовать в xgboost.

Я пытаюсь приблизить вероятности в рамках данного портфеля, используя в качестве основы существующую электронную таблицу (начальные значения y_test).

Предполагая, что я разделил свой набор данных на таблицы данных train_db и test_db:

 oos_error <- Inf

repeat {
    rf <- 
        train(
            train_dt[, .(<x values>)],
            train_dt[, y / y_test],
            weights = train_dt$WEIGHTS,
            preProcess = c("center", "scale"),
            method = "rpart2",
            tuneGrid = expand.grid(maxdepth = 2)
        )
    
    train_dt[, y_test := 0.99 * y_test   0.01 * y_test * predict(rf, newdata = train_dt)]
    test_dt[, y_test := 0.99 * y_test   0.01 * y_test * predict(rf, newdata = test_dt)]
    
    oos_error_prev <- oos_error
    oos_error <- test_dt[, LOSS_FUNCTION(.)] ## Residual squared error
    
    if (oos_error > oos_error_prev) {
        break()
    }
}
 

При попытке построить мой ввод train_dt xgb.DMatrix, я не уверен, что вводить в качестве входных данных, так как то, что пытается быть предсказано, основано на предыдущем вводе.