A package to build an optimal binary decision tree classifier.
Project description
- Authors:
Gaël Aglin, Siegfried Nijssen, Pierre Schaus
Relevant paper : [DL852020] [PYDL852020]
The PyDL8.5 library provides an implementation of DL8.5 algorithm. Please read the relevant articles referenced below to learn about the additional features. Please cite these papers if you use the current library. The documentation will help you get started with PyDL8.5.
This project implements an algorithm for inferring optimal binary decision trees. It is scikit-learn compatible and can be used in combination with scikit-learn. As a scikit-learn classifier, it implements the methods “fit” and “predict”.
The current version of PyDL8.5 is an optimized one using some ideas from MurTree paper and listed in CHANGES.txt. The version of the code used in the AAAI paper [DL852020] is v0.0.15.
This tool can be installed in two ways:
download the source from github and install using the command python3 setup.py install in the root folder
install from pip by using the command pip install pydl8.5 in the console
The core code provided in C++ can also be used solely without the add-ons provides by the python library. For this, use the code inside the core folder. It is a C++ project than can be compiled using CMake and the CMakeLists.txt file provided. The argument parsing code used originates from the argpase github project.
Disclaimer: The compilation of the project has been tested with C++ compilers on the Linux and MacOS operating systems; Windows is not yet supported.
Aglin, G., Nijssen, S., Schaus, P. Learning optimal decision trees using caching branch-and-bound search. In AAAI. 2020.
Aglin, G., Nijssen, S., Schaus, P. PyDL8.5: a Library for Learning Optimal Decision Trees., In IJCAI. 2020.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pydl8.5-0.1.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4cdb5e785a080b7c84e7fed11a96c5a6c2c14903254cd4fef833270a005cc4b |
|
MD5 | 3b1ec3d5fac5ec344de57e115ec5a8a6 |
|
BLAKE2b-256 | 16bee09aab53e53ad77db58f8f3b5f66b23428224bc3b3134f41bb9aa98da90e |
Hashes for pydl8.5-0.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cd6ebfedc99dbbcc03c363e7ca30a8b497d40f60dc48c2978a0aaefcba83bb0 |
|
MD5 | 24fc8313334b4c79d98f0b43efd4da27 |
|
BLAKE2b-256 | 446263a15dc3e5f73da490c6e1b854bbc96e5b89a8891fcc951456ce18a858b4 |
Hashes for pydl8.5-0.1.5-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58ca951e94edd6c313d6b71ca50c487f53067ed0a5222214942fa7890ca1ba60 |
|
MD5 | 6e20dd110ce0ca7aa4fc83d69d3c3502 |
|
BLAKE2b-256 | 82e7ebab2a0db08adf8eb57fddb170614b81f6cfcc88fa9c7b6d430ddd5b9205 |
Hashes for pydl8.5-0.1.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 471a9532319fcd6e6584e025999d9b1b7df0748f2f5d158e0013f4544a763d03 |
|
MD5 | 288f636f032194ef65233839ae17fa47 |
|
BLAKE2b-256 | ec08335c98ca3fd32017c68175bf3c90bb1a101933df3d76d4f792c03bf2545a |
Hashes for pydl8.5-0.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66fa5d9afbf17eeaf1199ef7f909b746865cb18177393cf8c507a12f02c81ac1 |
|
MD5 | 728f69be519818fd64ad6fa892b3ce4a |
|
BLAKE2b-256 | bf22b4a003f0ce614cec33c4665909121eb73abbfc5243ff71c94b24f733207a |
Hashes for pydl8.5-0.1.5-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f72c6cd86e43656ef68ec11b9d67c0e857ba3c58fb06dddd715fc66ba27e0d19 |
|
MD5 | f5659f1d746704062d122a8c1f4e8295 |
|
BLAKE2b-256 | ebd79a02e375c5fb2f708c3c184a736cd599ff8d6f108d15ea15c4e006f097d7 |