hyperbox-brain documentation
Hyperbox-Brain
A scikit-learn compatible hyperbox-based machine learning library in Python.
Introduction
hyperbox-brain is a Python open source toolbox implementing hyperbox-based machine learning algorithms built on top of scikit-learn and is distributed under the GPL-3.0 license.
The project was started in 2018 by Prof. Bogdan Gabrys and Dr. Thanh Tung Khuat at the Complex Adaptive Systems Lab - The University of Technology Sydney. This project is a core module aiming to the formulation of explainable life-long learning systems in near future.
If you use hyperbox-brain, please use this BibTeX entry:
@article{khga23,
title={hyperbox-brain: A Python toolbox for hyperbox-based machine learning algorithms},
author={Khuat, Thanh Tung and Gabrys, Bogdan},
journal={SoftwareX},
volume={23},
pages={101425},
year={2023},
url={https://doi.org/10.1016/j.softx.2023.101425},
publisher={Elsevier}
}
User Guides
- Installation
- Features
- Types of input variables
- Incremental learning
- Agglomerative learning
- Ensemble learning
- Multigranularity learning
- Learning from both labelled and unlabelled data
- Ability to directly process missing data
- Continual learning ability of new classes
- Data editing and pruning approaches
- Scikit-learn compatible estimators
- Explainability of predicted results
- Easy to use
- Jupyter notebooks
- Available models
- Quickstart
- Contributing
- About hyperbox-brain
API Reference
If you are looking for information on a specific function, class or method, this part of the documentation is for you.
Hyperbox-brain API
- utilitity functions
- utils.membership_calc
asym_similarity_val_one_many_hyperboxes()bitwise_membership()f_sim_freq_cat_features()get_membership_extended_iol_gfmm_all_classes()get_membership_fmnn_all_classes()get_membership_free_range_gfmm_all_classes()get_membership_freq_cat_gfmm_all_classes()get_membership_gfmm_all_classes()get_membership_onehot_gfmm_all_classes()membership_cat_feature_eiol_gfmm()membership_func_extended_iol_gfmm()membership_func_fmnn()membership_func_free_range_gfmm()membership_func_freq_cat_gfmm()membership_func_gfmm()membership_func_onehot_gfmm()membership_function_freq_cat()n_cat_features_containing_bit_one()
- utils.adjust_hyperbox
hyperbox_contraction_efmnn()hyperbox_contraction_fmnn()hyperbox_contraction_freq_cat_gfmm()hyperbox_contraction_rfmnn()hyperbox_overlap_test_efmnn()hyperbox_overlap_test_fmnn()hyperbox_overlap_test_freq_cat_gfmm()is_overlap_cat_features_one_by_one()is_overlap_cat_features_one_vs_many()is_overlap_diff_labels_num_data_rfmnn()is_overlap_one_many_diff_label_hyperboxes_mixed_data_general()is_overlap_one_many_diff_label_hyperboxes_num_data_general()is_overlap_one_many_hyperboxes_num_data_general()is_two_hyperboxes_overlap_num_data_free_range_general()is_two_hyperboxes_overlap_num_data_general()overlap_resolving_num_data()overlap_resolving_num_data_free_range()
- utils.matrix_transformation
- utils.drawing_func
- utils.dist_metrics
- utils.model_storage
- utils.membership_calc
- base
- mixed-data learners
- mixed_data.eiol_gfmm
ExtendedImprovedOnlineGFMMExtendedImprovedOnlineGFMM.compute_increasing_entropy()ExtendedImprovedOnlineGFMM.fit()ExtendedImprovedOnlineGFMM.get_n_hyperboxes()ExtendedImprovedOnlineGFMM.get_sample_explanation()ExtendedImprovedOnlineGFMM.predict()ExtendedImprovedOnlineGFMM.predict_proba()ExtendedImprovedOnlineGFMM.predict_with_membership()ExtendedImprovedOnlineGFMM.simple_pruning()
impute_missing_categorical_features()predict_with_manhattan_mixed_data()predict_with_probability_mixed_data()
- mixed_data.freq_cat_onln_gfmm
- mixed_data.onehot_onln_gfmm
- mixed_data.eiol_gfmm
- batch learners
- ensemble learners
- ensemble_learner.base_bagging
- ensemble_learner.base_cross_val_bagging
- ensemble_learner.decision_comb_bagging
- ensemble_learner.decision_comb_cross_val_bagging
- ensemble_learner.model_comb_bagging
ModelCombinationBaggingModelCombinationBagging.fit()ModelCombinationBagging.get_n_hyperboxes_comb_model()ModelCombinationBagging.predict()ModelCombinationBagging.predict_proba()ModelCombinationBagging.predict_proba_all_base_learners()ModelCombinationBagging.predict_voting()ModelCombinationBagging.predict_with_membership()ModelCombinationBagging.predict_with_membership_all_base_learners()ModelCombinationBagging.simple_pruning()
- ensemble_learner.model_comb_cross_val_bagging
ModelCombinationCrossValBaggingModelCombinationCrossValBagging.fit()ModelCombinationCrossValBagging.get_n_hyperboxes_comb_model()ModelCombinationCrossValBagging.predict()ModelCombinationCrossValBagging.predict_proba()ModelCombinationCrossValBagging.predict_proba_all_base_learners()ModelCombinationCrossValBagging.predict_voting()ModelCombinationCrossValBagging.predict_with_membership()ModelCombinationCrossValBagging.predict_with_membership_all_base_learners()ModelCombinationCrossValBagging.simple_pruning()
- ensemble_learner.random_hyperboxes
RandomHyperboxesClassifierRandomHyperboxesClassifier.estimators_samples_RandomHyperboxesClassifier.fit()RandomHyperboxesClassifier.get_n_hyperboxes()RandomHyperboxesClassifier.predict()RandomHyperboxesClassifier.predict_proba()RandomHyperboxesClassifier.predict_with_membership()RandomHyperboxesClassifier.simple_pruning_base_estimators()
- ensemble_learner.cross_val_random_hyperboxes
CrossValRandomHyperboxesClassifierCrossValRandomHyperboxesClassifier.estimators_samples_CrossValRandomHyperboxesClassifier.fit()CrossValRandomHyperboxesClassifier.get_n_hyperboxes()CrossValRandomHyperboxesClassifier.predict()CrossValRandomHyperboxesClassifier.predict_proba()CrossValRandomHyperboxesClassifier.predict_with_membership()CrossValRandomHyperboxesClassifier.simple_pruning_base_estimators()
- incremental learners
- multigranular learners
- multigranular_learner.multi_resolution_gfmm
MultiGranularGFMMMultiGranularGFMM.draw_2D_hyperbox_and_boundary_granular_level()MultiGranularGFMM.draw_2D_hyperbox_and_boundary_partitions()MultiGranularGFMM.fit()MultiGranularGFMM.get_n_hyperboxes()MultiGranularGFMM.get_n_hyperboxes_at_partition()MultiGranularGFMM.get_sample_explanation_granular_level()MultiGranularGFMM.granular_learning_phase_1()MultiGranularGFMM.granular_learning_phase_2()MultiGranularGFMM.predict()MultiGranularGFMM.predict_at_partitions()MultiGranularGFMM.predict_proba()MultiGranularGFMM.predict_with_membership()MultiGranularGFMM.simple_pruning()
convert_granular_theta_to_level()predict_with_centroids()predict_with_membership()remove_contained_hyperboxes()
- multigranular_learner.multi_resolution_gfmm
Tutorials
- Tutorials
- Batch learners
- Incremental learners
- Original Online Learning Algorithm for GFMM
- Improved Online Learning Algorithm for GFMM
- Fuzzy Min-Max Neural Network with Original Online Learning Algorithm
- Enhanced Online Learning Algorithm for FMNN
- Enhanced Online Learning Algorithm with K-nearest Hyperboxes Selection for FMNN
- Refined Online Learning Algorithm for FMNN
- Multigranular learners
- Ensemble learners
- Decision-level Bagging of Hyperbox-based Models
- Decision-level Bagging of Hyperbox-based Models with Hyper-parameter Optimisation
- Model-level Bagging of Hyperbox-based Models
- Model-level Bagging of Hyperbox-based Learners with Hyper-parameter Optimisation
- Random Hyperboxes
- Random Hyperboxes with Hyper-parameter Optimisation for Base Learners
- Mixed data learners
- Integration with sklearn pipeline
- Integration with sklearn hyperparameter optimisation
- Other learning abilities of GFMM models
- Store and load the trained models