Fix #3485, #3540: Don't use dropout for predicting test sets (#3556)

* Fix #3485, #3540: Don't use dropout for predicting test sets

Dropout (for DART) should only be used at training time.

* Add regression test
This commit is contained in:
Philip Hyunsu Cho
2018-08-05 10:17:21 -07:00
committed by GitHub
parent 109473dae2
commit 44811f2330
5 changed files with 21 additions and 4 deletions

View File

@@ -76,11 +76,14 @@ class GradientBooster {
* \brief generate predictions for given feature matrix
* \param dmat feature matrix
* \param out_preds output vector to hold the predictions
* \param dropout whether dropout should be applied to prediction
* This option is only meaningful if booster='dart'; otherwise ignored.
* \param ntree_limit limit the number of trees used in prediction, when it equals 0, this means
* we do not limit number of trees, this parameter is only valid for gbtree, but not for gblinear
*/
virtual void PredictBatch(DMatrix* dmat,
HostDeviceVector<bst_float>* out_preds,
bool dropout = true,
unsigned ntree_limit = 0) = 0;
/*!
* \brief online prediction function, predict score for one instance at a time