https://github.com/ayrna/decision-trees-from-scratch
From scratch decision tree algorithm implementation in python. Providing an sklearn compatible interface and novel ordinal regression splitting criteria.
https://github.com/ayrna/decision-trees-from-scratch
Last synced: 3 months ago
JSON representation
From scratch decision tree algorithm implementation in python. Providing an sklearn compatible interface and novel ordinal regression splitting criteria.
- Host: GitHub
- URL: https://github.com/ayrna/decision-trees-from-scratch
- Owner: ayrna
- Created: 2024-12-17T11:30:17.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-12-17T12:23:06.000Z (4 months ago)
- Last Synced: 2024-12-17T13:20:59.885Z (4 months ago)
- Language: Python
- Homepage:
- Size: 53.7 KB
- Stars: 4
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# :deciduous_tree: Welcome to `decision-trees-from-scratch`
This framework provides a from scratch sklearn-based implementation of the CART algorithm for classification. Our implementation introduces notable differences compared to the existing sklearn [DecisionTreeClassifier](https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html "DecisionTreeClassifier"):
* :rocket: It is **fully developed in python**. This enables researchers to easily tweak the algorithm and experiment with it for research purposes.
* :rocket: Includes current **state-of-the-art splitting criteria for ordinal regression** tasks, such as Ordinal Gini or Weighted Entropy.
:sparkles: Despite being developed from scratch, our implementation achieves **same accuracy results as scikit-learn implementation**.
# ⚙️ Installation
`decision-trees-from-scratch` requires a Python version of 3.9 or greater. Follow the next step for installation:
1. Download or clone the repository
2. On the root folder, run: `pip install .` We recommend to use the `--editable` argument to be able to modify the package on spot.# 📚 Citation
If you enjoyed this framework, we would appretiate a citation for the following work:```bibtex
@misc{ayllóngavilán2024splittingcriteriaordinaldecision,
title={Splitting criteria for ordinal decision trees: an experimental study},
author={Rafael Ayllón-Gavilán and Francisco José Martínez-Estudillo and David Guijo-Rubio and César Hervás-Martínez and Pedro Antonio Gutiérrez},
year={2024},
eprint={2412.13697},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2412.13697},
}
```