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}
}
- 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.
- 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
ExtendedImprovedOnlineGFMM
ExtendedImprovedOnlineGFMM.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
ModelCombinationBagging
ModelCombinationBagging.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
ModelCombinationCrossValBagging
ModelCombinationCrossValBagging.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
RandomHyperboxesClassifier
RandomHyperboxesClassifier.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
CrossValRandomHyperboxesClassifier
CrossValRandomHyperboxesClassifier.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
MultiGranularGFMM
MultiGranularGFMM.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
- 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