<commit_before>package hex.quantile;

import hex.ModelBuilder;
import hex.ModelCategory;
import water.MRTask;
import water.H2O;
import water.Scope;
import water.fvec.*;
import water.util.ArrayUtils;
import water.util.Log;

import java.util.Arrays;

/**
 *  Quantile model builder... building a simple QuantileModel
 */
public class Quantile extends ModelBuilder<QuantileModel,QuantileModel.QuantileParameters,QuantileModel.QuantileOutput> {
  private int _ncols;

  @Override protected boolean logMe() { return false; }

  // Called from Nano thread; start the Quantile Job on a F/J thread
  public Quantile( QuantileModel.QuantileParameters parms ) { super(parms); init(false); }
  @Override public Driver trainModelImpl() { return new QuantileDriver(); }
  @Override public long progressUnits() { return train().numCols()*_parms._probs.length; }
  @Override public ModelCategory[] can_build() { return new ModelCategory[]{ModelCategory.Unknown}; }
  // any number of chunks is fine - don't rebalance - it's not worth it for a few passes over the data (at most)
  @Override protected int desiredChunks(final Frame original_fr, boolean local) { return 1;  }

  /** Initialize the ModelBuilder, validating all arguments and preparing the<commit_msg>PUBDEV-2542: Hide Quantile Models by making their keys user-hidden.<commit_after>package hex.quantile;

import hex.ModelBuilder;
import hex.ModelCategory;
import water.Key;
import water.MRTask;
import water.H2O;
import water.Scope;
import water.fvec.*;
import water.util.ArrayUtils;
import water.util.Log;

import java.util.Arrays;

/**
 *  Quantile model builder... building a simple QuantileModel
 */
public class Quantile extends ModelBuilder<QuantileModel,QuantileModel.QuantileParameters,QuantileModel.QuantileOutput> {
  private int _ncols;

  @Override protected boolean logMe() { return false; }

  // Called from Nano thread; start the Quantile Job on a F/J thread
  public Quantile( QuantileModel.QuantileParameters parms ) { super(parms, (Key<QuantileModel>)(Key.makeUserHidden(defaultKey(parms.algoName())))); init(false); }
  @Override public Driver trainModelImpl() { return new QuantileDriver(); }
  @Override public long progressUnits() { return train().numCols()*_parms._probs.length; }
  @Override public ModelCategory[] can_build() { return new ModelCategory[]{ModelCategory.Unknown}; }
  // any number of chunks is fine - don't rebalance - it's not worth it for a few passes over the data (at most)
  @Override protected int desiredChunks(final Frame original_fr, boolean local) { return 1;  }

  /** Initialize the ModelBuilder, validating all arguments and preparing the
{'fraction_non_alphanumeric': 0.09886363636363636, 'fraction_numerical': 0.0030303030303030303, 'mean_word_length': 5.199530516431925, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5994024', 'n_tokens_mistral': 751, 'n_tokens_neox': 738, 'n_words': 248}