Releases: basf/mamba-tabular
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 ofpretab
and provided links for further information.docs/api/preprocessing/Preprocessor.rst
: Removed thePreprocessor
class 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.py
andmambular/models/utils/sklearn_parent.py
: Changed imports frommambular.preprocessing
topretab.preprocessor
and 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 theTangos
model, 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 theTangos
model in the module imports and__all__
list.mambular/configs/tangos_config.py
: Added configuration class for theTangos
model with predefined hyperparameters.
Documentation Updates:
README.md
: Updated to include the newTangos
model 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_model
withestimator
to accommodate the newTangos
model. [1] [2] [3] [4] [5] [6] [7] [8] [9]mambular/base_models/utils/pretraining.py
: Replaced instances ofbase_model
withestimator
to reflect the new model structure. [1] [2] [3] [4]
Configuration Updates:
mambular/configs/__init__.py
: AddedDefaultTangosConfig
to the module imports and__all__
list.mambular/models/__init__.py
: IncludedTangosClassifier
,TangosLSS
, andTangosRegressor
in 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
BaseModel
andTaskModel
tomambular/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
Trompt
andAutoInt
are now included into mambular.
Introduce pretraining
option:
- 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
encode
method to support gradient computation and shuffling embeddings.
Enhancements to TaskModel
:
- Added a new method
pretrain_embeddings
for pretraining embeddings using contrastive learning. - Introduced helper methods
get_knn
andcontrastive_loss
to 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
Preprocessor
class 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_preprocessing
parameter to allow custom preprocessing techniques for individual columns. Updated thefit
method 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 theforward
method 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 theforward
method to handle num_features, cat_features and pre-embedded unstructured data. [1] [2]
Get latent representation of tables
mambular/base_models/basemodel.py
: Updated theencode
method to accept a singledata
parameter instead of separatenum_features
andcat_features
parameters. [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