Releases: OpenTabular/DeepTab
Release v1.5.0
This release includes significant updates to the mambular package, focusing on integrating the pretab library for preprocessing, updating the version, and removing deprecated preprocessing modules. The most important changes include updating the documentation, modifying imports to use pretab, and removing old preprocessing code.
Documentation Updates:
README.md: Updated preprocessing section to mention the use ofpretaband provided links for further information.docs/api/preprocessing/Preprocessor.rst: Removed thePreprocessorclass documentation.docs/api/preprocessing/index.rst: Removed the preprocessing module documentation.
Codebase Updates:
mambular/__version__.py: Updated the version from 1.4.0 to 1.5.0.mambular/models/utils/sklearn_base_lss.pyandmambular/models/utils/sklearn_parent.py: Changed imports frommambular.preprocessingtopretab.preprocessorand updated related code. [1] [2]
Removal of Deprecated Code:
mambular/preprocessing/basis_expansion.py,mambular/preprocessing/ple_encoding.py, andmambular/preprocessing/__init__.py: Removed old preprocessing classes and methods. [1] [2] [3]
What's Changed
- change readme by @AnFreTh in #255
- TabR integration + compatibility check for PLR embedding with pre-processing types. by @bishnukhadka in #258
- merge master back to develop by @AnFreTh in #259
- Lss fix by @AnFreTh in #260
- v1.5.0 by @mkumar73 in #261
- preprocessor cleanup by @mkumar73 in #262
- v1.5.0 fixed by @mkumar73 in #263
New Contributors
- @bishnukhadka made their first contribution in #258
Full Changelog: v1.4.0...v1.5.0
Release 1.4.0
What's Changed
- Hotfix/docs by @mkumar73 in #247
- Modernnca by @AnFreTh in #251
* Added MonderNCA and complete logic of using labels during training and inference into helper classes. - Data check by @AnFreTh in #252
* Introduced sanity checks in preprocessor module. - Develop by @AnFreTh in #253
Full Changelog: v1.3.2...v1.4.0
Release 3.1.2
Fix error for binary classification loss function in sklearninterface
Release v1.3.1
This release (v1.3.1) introduces the new Tangos model to the Mambular library, along with updates to the documentation, versioning, and configuration files. The most important changes include adding the Tangos model, updating the version number, and modifying the lightning_wrapper.py and pretraining.py files to use the new model.
New Model Addition:
mambular/base_models/tangos.py: Added theTangosmodel, which is an MLP model with optional GLU activation, batch normalization, layer normalization, and dropout, including a penalty term for specialization and orthogonality.mambular/base_models/__init__.py: Included theTangosmodel in the module imports and__all__list.mambular/configs/tangos_config.py: Added configuration class for theTangosmodel with predefined hyperparameters.
Documentation Updates:
README.md: Updated to include the newTangosmodel in the list of new models and added a description of the model. [1] [2]
Version Update:
mambular/__version__.py: Incremented the version number from 1.3.0 to 1.3.1 to reflect the new changes.
Code Refactoring:
mambular/base_models/utils/lightning_wrapper.py: Replaced instances ofbase_modelwithestimatorto accommodate the newTangosmodel. [1] [2] [3] [4] [5] [6] [7] [8] [9]mambular/base_models/utils/pretraining.py: Replaced instances ofbase_modelwithestimatorto reflect the new model structure. [1] [2] [3] [4]
Configuration Updates:
mambular/configs/__init__.py: AddedDefaultTangosConfigto the module imports and__all__list.mambular/models/__init__.py: IncludedTangosClassifier,TangosLSS, andTangosRegressorin the module imports and__all__list.
v1.3.0
What's Changed in v1.3.0
This Release includes several changes to the mambular package, focusing on refactoring imports and enhancing the functionality of the BaseModel and TaskModel classes. The most important changes include moving BaseModel and TaskModel to a new utils directory, updating import paths accordingly, and adding new methods for pretraining embeddings. Additionally, two new models, Trompt and AutoInt are included in v1.3.0
Refactoring imports:
- Moved
BaseModelandTaskModeltomambular/base_models/utils/and updated import paths in all relevant files. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
Include new models
- New model architectures
TromptandAutoIntare now included into mambular.
Introduce pretrainingoption:
- Added pertaining functionality for all models that use encoders.
Include dilation to 1DConv layers in Mambular/TabulaRNN
- See Issue #182
Enhancements to BaseModel:
- Added new methods for embedding management, including
embedding_parameters,encode_features,get_embedding_state_dict, andload_embedding_state_dict. - Modified the
encodemethod to support gradient computation and shuffling embeddings.
Enhancements to TaskModel:
- Added a new method
pretrain_embeddingsfor pretraining embeddings using contrastive learning. - Introduced helper methods
get_knnandcontrastive_lossto support the new pretraining functionality.
Miscellaneous changes:
- Added print statements for debugging and logging purposes. [1] [2]
- Minor formatting changes for code readability.
Release v1.2.0
Release v1.2.0
This update enhances the preprocessing and embedding layers in the mambular package, introducing several key improvements:
- Feature-Specific Preprocessing: The
Preprocessorclass now includes a feature preprocessing dictionary, enabling different preprocessing strategies for each feature. - Support for Unstructured Data: The model can now handle a combination of tabular features and unstructured data, such as images and text.
- Latent Representation Generation: It is now possible to generate latent representations of the input data, improving downstream modeling and interpretability.
These changes enhance flexibility and extend mambular's capabilities to more diverse data modalities.
Preprocessing improvements:
mambular/preprocessing/preprocessor.py: Addedfeature_preprocessingparameter to allow custom preprocessing techniques for individual columns. Updated thefitmethod to use this parameter for both numerical and categorical features. [1] [2] [3] [4] [5]
Embedding layer updates:
mambular/arch_utils/layer_utils/embedding_layer.py: Modified theforwardmethod to handle different dimensions of categorical embeddings and ensure they are properly processed. [1] [2]
Allow unstructured data as inputs:
mambular/arch_utils/layer_utils/embedding_layer.py: Modified theforwardmethod to handle num_features, cat_features and pre-embedded unstructured data. [1] [2]
Get latent representation of tables
mambular/base_models/basemodel.py: Updated theencodemethod to accept a singledataparameter instead of separatenum_featuresandcat_featuresparameters. [1] [2]
Release v1.1.0
What's Changed
🚀 New Models
- SAINT: Improve neural networks via Row Attention and Contrastive Pre-Training
Continuous improvements and bug fixes
- Deprecated setup.py for pyproject.toml
- Formatting and linting
- Pre-commit hooks
- Documentation update
- Bug fixes
Contributors:
- release update by @mkumar73 in #68
- Doc fix - version bump by @AnFreTh in #174
- Bug fix by @AnFreTh in #176
- SAINT by @AnFreTh in #183
- Saint by @mkumar73 in #185
- Bug fixes, update project setup, formatting and linting by @mkumar73 in #187
- Sparsemax fix by @AnFreTh in #192
- fix input names in sparsemax by @AnFreTh in #193
- Fix A001 and A002 by @mkumar73 in #197
Full Changelog: v1.0.0...v1.1.0
New Version Release 1.0.0
v1.0.0: Major Update for Mambular
This release marks a significant upgrade to Mambular, introducing new models, enhanced functionality, and improved efficiency. Below is an overview of the key changes:
🚀 New Models
- TabM: A cutting-edge tabular deep learning model optimized for performance and flexibility.
- NODE: Incorporates Neural Oblivious Decision Ensembles for more robust handling of tabular data.
- NDTF: Neural Decision Tree Forest, combining decision tree logic with deep learning capabilities.
- TabulaRNN: A recurrent neural network tailored for tabular tasks, with configurable options to use GRU or LSTM cells for sequence modeling.
🎛️ Hyperparameter Optimization
- Integrated support for hyperparameter optimization:
- Built-in Bayesian optimization for more advanced tuning.
- Fully compatible with Scikit-learn's optimization framework, enabling seamless integration for all models.
⚡ Efficiency Improvements
- Leveraging the new mamba-ssm package for a more efficient implementation of the Mamba framework, ensuring faster runtime and reduced memory usage.
🛠️ Enhanced Preprocessing
- Expanded preprocessing options for greater control over feature transformations.
- Improved feature information handling to better accommodate various dataset types and structures.
🧬 Improved Embedding Layers
- New embedding layers, including PLR.
- Customizable activation functions for enhanced flexibility in embedding generation.
This release sets the foundation for continued innovation in tabular deep learning. Feedback and contributions are welcome!
Release v0.2.4
What's Changed
- sklearn base_modules: Modified conditional checks to use if X_val is not None instead of if X_val in the build_model and fit methods. by @AnFreTh in #142
- mambular/data_utils/datamodule.py: Ensured that keys are converted to strings when constructing cat_key, binned_key, and num_key in the setup and preprocess_test_data methods. by @AnFreTh in #142
Full Changelog: v0.2.3...v0.2.4
Release v0.2.3
- Including Quantile Regression
- Fixing param count bug in sklearnbaselss