Releases: tensorflow/decision-forests
1.0.0rc0
0.2.7
tensorflow_model_server_linux.zip 0.2.6
TF-DF with TF-Serving binary for Tensorflow 2.9.1
0.2.5
Features
- Adds the
contribmodule 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_parentto 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()orstr(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
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_dataseton Pandas dataframe not containing arrays.
0.2.2
Features
- Surface the
validation_interval_in_trees,
keep_non_leaf_label_distributionand 'random_seed' hyper-parameters. - Add the
batch_sizeargument in thepd_dataframe_to_tf_datasetutility. - Automatically determine the number of threads if
num_threads=None. - Add constructor argument
try_resume_trainingto 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
withcheck_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
fitmethod now passes thevalidation_datato 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 theverboseconstructor argument and
fitparameter of the model.
Fixes
num_candidate_attributesis 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_statisticsparameter to
control how many examples are scanned to determine the feature statistics
when training from a file dataset withfit_on_dataset_path.
0.2.1
0.2.0
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_importanceparameter. - 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_countargument to the model constructor. The existing
max_vocab_countargument inFeatureUsageobjects 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_countin aFeatureUsagewith type
CATEGORICAL_SET.
0.1.9
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 symbolerror 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
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.