Useful tools to work with Statistical Learning Theory (SLT) over scikit-learn decision trees.

# Description

Learning, in Machine Learning (ML) area, is one of the most important steps in the construction of algorithms that seek to predict a certain task, whether this is the classification of objects, the forecast of demand for a specific product or even the diagnosis of malignant diseases. In ML, we can study supervised (which have a label, e.g., a class) and unsupervised algorithms, used for tasks such as pattern detection, grouping, among others that do not depend directly on a label. Knowing this, the present work aims to carry out the study of different supervised learning algorithms, in this case, the classification algorithms, more specifically Decision Trees, to carry out an analytical study about the steps that make up the learning process of the algorithm, exploring concepts of the SLT that provide tools for studies and allow to prove issues such as the guarantee of learning of a certain algorithm. Reference: Rodrigo Fernandes de Mello, Chaitanya Manapragada, Albert Bifet: "Measuring the Shattering coefficient of Decision Tree models". Expert Syst. Appl. 137: 443-452 (2019)

It consists of two main modules:

# Installation
 
## Dependencies

- Python (>= 3.6)
- numpy
- tqdm
- sklearn
- matplotlib

## User installation

```bash
pip install shatteringdt
```

# About this work

This project is a result of a Master's discipline of Institute of Mathematics and Computer Sciences (ICMC) of University of Sao Paulo (USP)