Skip to content

Releases: tensorflow/decision-forests

1.0.0rc0

26 Aug 13:55

Choose a tag to compare

1.0.0rc0 Pre-release
Pre-release

Fix

  • Improve documentation

0.2.7

17 Jul 11:23

Choose a tag to compare

Features

  • Multithreading of the oblique splitter for gradient boosted tree models.
  • Support for pure serving model i.e. model containing only serving data.
  • Add "edit_model" cli tool.

Fix

  • Remove bias toward low outcome in uplift modeling.

tensorflow_model_server_linux.zip 0.2.6

01 Jun 09:43

Choose a tag to compare

TF-DF with TF-Serving binary for Tensorflow 2.9.1

0.2.5

19 May 19:38

Choose a tag to compare

Features

  • Adds the contrib module for contributed, non-core functionality.
  • Adds contrib.scikit_learn_model_converter, which facilitates converting
    Scikit-Learn tree-based models into TF-DF models.
  • Discard hessian splits with score lower than the parents. This change has
    little effect on the model quality, but it can reduce its size.
  • Add internal flag hessian_split_score_subtract_parent to subtract the
    parent score in the computation of an hessian split score.
  • Add support for hyper-parameter optimizers (also called tuner).
  • Add text pretty print of trees with tree.pretty() or str(tree).
  • Add support for loading YDF models with file prefixes. Newly created models
    have a random prefix attached to them. This allows combining multiple models
    in Keras.
  • Add support for discretized numerical features.

0.2.3

27 Jan 19:24

Choose a tag to compare

Features

  • Honest Random Forests (also work with Gradient Boosted Tree and CART).
  • Can train Random Forests with example sampling without replacement.
  • Add support for Focal Loss with Gradient Boosted Trees.
  • Add support for MacOS.

Fixes

  • Incorrect default evaluation of categorical split with uplift tasks. This
    was making uplift models with missing categorical values perform worst, and
    made the inference of uplift model possibly slower.
  • Fix pd_dataframe_to_tf_dataset on Pandas dataframe not containing arrays.

0.2.2

15 Dec 17:13

Choose a tag to compare

Features

  • Surface the validation_interval_in_trees,
    keep_non_leaf_label_distribution and 'random_seed' hyper-parameters.
  • Add the batch_size argument in the pd_dataframe_to_tf_dataset utility.
  • Automatically determine the number of threads if num_threads=None.
  • Add constructor argument try_resume_training to facilitate resuming
    training.
  • Check that the training dataset is well configured for TF-DF e.g. no repeat
    operation, has a large enough batch size, etc. The check can be disabled
    with check_dataset=False.
  • When a model is created manually with the model builder, and if the dataspec
    is not provided, tries to adapt the dataspec so that the model looks as if
    it was trained with the global imputation strategy for missing values (i.e.
    missing_value_policy: GLOBAL_IMPUTATION). This makes manually created models
    more likely to be compatible with the fast inference engines.
  • TF-DF models fit method now passes the validation_data to the Yggdrasil
    learners. This is used for example for early stopping in the case of GBT
    model.
  • Add the "loss" parameter of the GBT model directly in the model constructor.
  • Control the amount of training logs displayed in the notebook (if using
    notebook) or in the console with the verbose constructor argument and
    fit parameter of the model.

Fixes

  • num_candidate_attributes is not ignored anymore when
    num_candidate_attributes_ratio=-1.
  • Use the median bucket split value strategy in the discretized numerical
    splitters (local and distributed).
  • Surface the max_num_scanned_rows_to_accumulate_statistics parameter to
    control how many examples are scanned to determine the feature statistics
    when training from a file dataset with fit_on_dataset_path.

0.2.1

08 Nov 09:44

Choose a tag to compare

Features

  • Compatibility with TensorFlow 2.7.0.

0.2.0

01 Nov 16:54

Choose a tag to compare

Features

  • Add advanced option predict_single_probability_for_binary_classification
    to generate prediction tensors of shape [batch_size, 2] for binary
    classification model.
  • Add support for weighted training.
  • Add support for permutation variable importance in the GBT learner with the
    compute_permutation_variable_importance parameter.
  • Support for tf.int8 and tf.int16 values.
  • Support for distributed gradient boosted trees learning. Currently, the TF
    ParameterServerStrategy distribution strategy is only available in
    monolithic TF-DF builds. The Yggdrasil Decision Forest GRPC distribute
    strategy can be used instead.
  • Support for training from dataset stored on disk in CSV and RecordIO format
    (instead of creating a tensorflow dataset). This option is currently more
    efficient for distributed training (until the ParameterServerStrategy
    support per-worker datasets).
  • Add max_vocab_count argument to the model constructor. The existing
    max_vocab_count argument in FeatureUsage objects take precedence.

Fixes

  • Missing filtering of unique values in the categorical-set training feature
    accumulator. Was responsible for a small (e.g. ~0.5% on SST2 dataset) drop
    of accuracy compared to the C++ API.
  • Fix broken support for max_vocab_count in a FeatureUsage with type
    CATEGORICAL_SET.

0.1.9

31 Aug 11:50

Choose a tag to compare

Features

  • Disable tree pruning in the CART algorithm if the validation dataset is empty (i.e. validation_ratio=0).
  • Migration to Tensorflow 2.6. You will see an undefined symbol error if you install this version with a TensorFlow version different than 2.6. Previous versions were compiled for TF 2.5.

Fixes

  • Fix failure from
    Github Issue #45
    where the wrong field was accessed for leaf node distributions.
  • Fix saving of categorical features specification in the Builder.

0.1.9rc1

25 Aug 13:56

Choose a tag to compare

0.1.9rc1 Pre-release
Pre-release

Pre-release of 0.1.9

Major change : Tensorflow 2.6 compatibility

This release is currently being tested and will be updated to be the latest version in PyPI soon, in the meantime users who need the fixes below can install this version directly from the wheels below, i.e. pip install tensorflow_decision_forests-0.1.9-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl for python 3.9.

Fixes

  • Fix failure from Github Issue #45 where the wrong field was accessed for leaf node distributions.

  • Fix incorrect handling of CART pruning when validation set is empty. Previously, the whole tree would be erroneously pruned. Now, pruning is disabled if the validation set is not specified.

  • Fix saving of categorical features specification in the Builder.

  • Migration to Tensorflow 2.6. You will see an undefined symbol error if you install this version with a TensorFlow version different than 2.6. Previous versions were compiled for TF 2.5.