Example #1
0
 /**
  * base function for Predict
  *
  * @param data data
  * @param outPutMargin output margin
  * @param treeLimit limit number of trees
  * @param predLeaf prediction minimum to keep leafs
  * @return predict results
  */
 private synchronized float[][] pred(
     DMatrix data, boolean outPutMargin, int treeLimit, boolean predLeaf) throws XGBoostError {
   int optionMask = 0;
   if (outPutMargin) {
     optionMask = 1;
   }
   if (predLeaf) {
     optionMask = 2;
   }
   float[][] rawPredicts = new float[1][];
   JNIErrorHandle.checkCall(
       XgboostJNI.XGBoosterPredict(handle, data.getHandle(), optionMask, treeLimit, rawPredicts));
   int row = (int) data.rowNum();
   int col = rawPredicts[0].length / row;
   float[][] predicts = new float[row][col];
   int r, c;
   for (int i = 0; i < rawPredicts[0].length; i++) {
     r = i / col;
     c = i % col;
     predicts[r][c] = rawPredicts[0][i];
   }
   return predicts;
 }