code: protected float[] score0( Chunk chks[], int row_in_chunk, double[] tmp, float[] preds ) {
      assert chks.length>=_names.length; // Last chunk is for the response
      for( int i=0; i<nfeatures(); i++ ) // Do not include last value since it can contains a response
        tmp[i] = chks[i].at0(row_in_chunk);
      float[] scored = score0(tmp,preds);
      // Correct probabilities obtained from training on oversampled data back to original distribution
      // C.f. http://gking.harvard.edu/files/0s.pdf Eq.(27)
      if (isClassifier() && _priorClassDist != null && _modelClassDist != null) {
        assert(scored.length == nclasses()+1); //1 label + nclasses probs
        ModelUtils.correctProbabilities(scored, _priorClassDist, _modelClassDist);
        //set label based on corrected probabilities (max value wins, with deterministic tie-breaking)
        scored[0] = ModelUtils.getPrediction(scored, tmp);
      }
      return scored;
    }
docs: Bulk scoring API for one row.  Chunks are all compatible with the model,
  and expect the last Chunks are for the final distribution and prediction.
  Default method is to just load the data into the tmp array, then call
  subclass scoring logic.