Skip to main content

A Python package for tree-based regression and classification

Project description

Fast Adaptable and Extendable Trees for Research

adaXT is a Python module for tree-based machine-learning algorithms that is fast, adaptable and extendable. It aims to provide researchers a more flexible workflow when developing tree-based models.

It is distributed under the 3-Clause BSD license.

We encourage users and developers to report problems, request features, ask for help, or leave general comments.

Website: https://NiklasPfister.github.io/adaXT

Goals

The goal of adaXT is to provide a flexible and unified code-base for various tree-based algorithms that strikes a balance between speed and ease with which the code can be adapted and extended. It intends to provide researchers a simple toolkit for prototyping new tree-based algorithms.

adaXT aims to provide an intuitive user experience that is similar to the scikit-learn implementations of decision trees both in terms model-based syntax and hyperparameter. Under the hood, however, adaXT stikes a different balance between speed and ease of adapting and extending the code.

Adaptable and extendable

At the heart of any tree-based algorithm is a decision tree that can be fitted on data and then used to perform some version of prediction. adaXT has therefore been designed with a modular decision tree implementation that takes four input components:

  • Criteria class: Used during fitting to determine splits.

  • LeafBuilder class: Used during fitting to specify what is saved in the leaf nodes.

  • Splitter class: Used during fitting to perform the splits.

  • Prediction class: Used after fitting to make predictions.

By specifying these three components a range of different tree algorithms can be created, e.g., regression trees, classification trees, quanitle regression trees and survial trees. Additionally to this modular structure, all other operations are kept as vanilla as possible allowing users to easily change parts of the code (e.g., the splitting procedure).

Speed

As tree-based algorithms involve evaluating expensive loops over the dataset, it is important that these computations are implemented in a compiled language. adaXT implements all computationally expensive operations in Cython. This results in speeds similar (although a few factors slower) than the corresponding scikit-learn implementations. However, due to its modular structure and the avoidence of technical speed-ups adaXT is not intended to provide state-of-the-art speed and users mainly concerned with speed should consider more targeted implementations.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adaxt-1.1.0.tar.gz (1.1 MB view hashes)

Uploaded Source

Built Distributions

adaXT-1.1.0-cp312-cp312-win_amd64.whl (565.5 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

adaXT-1.1.0-cp312-cp312-win32.whl (477.8 kB view hashes)

Uploaded CPython 3.12 Windows x86

adaXT-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl (3.8 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

adaXT-1.1.0-cp312-cp312-musllinux_1_1_i686.whl (3.6 MB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.1+ i686

adaXT-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

adaXT-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (3.6 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

adaXT-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl (663.7 kB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

adaXT-1.1.0-cp311-cp311-win_amd64.whl (561.5 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

adaXT-1.1.0-cp311-cp311-win32.whl (474.8 kB view hashes)

Uploaded CPython 3.11 Windows x86

adaXT-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl (3.9 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

adaXT-1.1.0-cp311-cp311-musllinux_1_1_i686.whl (3.7 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

adaXT-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

adaXT-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (3.7 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

adaXT-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl (661.7 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

adaXT-1.1.0-cp310-cp310-win_amd64.whl (560.3 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

adaXT-1.1.0-cp310-cp310-win32.whl (476.1 kB view hashes)

Uploaded CPython 3.10 Windows x86

adaXT-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl (3.6 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

adaXT-1.1.0-cp310-cp310-musllinux_1_1_i686.whl (3.4 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

adaXT-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

adaXT-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (3.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

adaXT-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl (662.0 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page