hi, our team is trying to replicate the XGB model built by DR model through python/R xgb function for validation purpose. For some reasons, even though we are using the same data, same parameters to start with, we ended up with different performance. Is there anybody with similar experience and have some insights on this?
Thank you very much!
Hey @Jen!
You may consider using a new feature in the datarobotx Python module to convert blueprints to sklearn pipelines. There are some limitations to be aware of.
And just to cover the bases, most xgboost blueprints in DataRobot can be exported to Java Scoring Code (assuming your license includes this). These downloadable java executables have replicated the exact DataRobot model and can be run anywhere compatible with Java. If your goal is to productionalize DataRobot models outside DataRobot, this is an option. It sounds like you're trying just to validate the model's predictions, so I have some more ideas below.
It is possible to correctly match all the pre-processing steps and hyperparameters for an xgboost algorithm between R/Python and DataRobot, and still not get the same predictions. There is randomness built into these types of algorithms, for example random choices that select which rows and which features to include in each tree. In that case, the differences between the two model outputs would come down to random deviations within a margin of error. In some rows, that still may lead to noticeable prediction differences. That said, here are some steps I've taken to make sure the only differences are random: