Skip to main content

pyrus-decision-tree

Decision Tree written in Rust, with Python bindings

Extremely slow Decision Tree written in Rust

Have you found yourself yerning for a slower version of Scikit-Learn's DecisionTreeClassifier with less features?

You've come to the right place.

This was a weekend project and I've botched the implementation somewhere, probably in the splitter logic for tree nodes, so while it's written entirely in Rust and requires no dependencies; it manages to do a lot of inefficient logic, very quickly.

On a handful of testing data, with equivelent parameters, it yields the same results, only much, much slower.

This is currently the first release and the tree only implements the scikit-learn API's fit(X, y) and predict(X) methods as of now, and only as a classifier (no regression tree yet)

Maybe I'll get back to fixing it, maybe not.


Install:

pip install --upgrade pyrus-decision-tree

Uninstall:

pip uninstall pyrus-decision-tree


Use:

from pyrus_decision_tree import PyrusDecisionTree

dataset = [[2.771244718, 1.7847839292],
           [1.728571309, 1.1697614132],
           [3.678319846, 2.812813571],
           [3.961043357, 2.619950321],
           [2.999208922, 2.209014212],
           [7.497545867, 3.162953546],
           [9.00220326,  3.339047188],
           [7.444542326, 0.476683375],
           [10.12493903, 3.234550982],
           [6.642287351, 3.319983761]]
targets = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]

clf = PyrusDecisionTree(5)
clf.fit(dataset, targets)
predictions = clf.predict(dataset)

Metadata

Release files for pyrus-decision-tree 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pyrus-decision-tree 0.1.1
File Interpreter ABI Platform
pyrus_decision_tree-0.1.1-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
pyrus_decision_tree-0.1.1-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
pyrus_decision_tree-0.1.1-cp27-cp27mu-manylinux1_x86_64.whl CPython 2.7 CPython 2.7 pymalloc wide-unicode Linux glibc 2.5+ x86-64 Details

Total release size: 8.7 MB

Release files / pyrus_decision_tree-0.1.1-cp37-cp37m-manylinux1_x86_64.whl

Download URL pyrus_decision_tree-0.1.1-cp37-cp37m-manylinux1_x86_64.whl
Size 2.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6a74913d3b04e02add68d5585508b112606668387741884a94981ae552b7e43a
BLAKE2b-256 checksum
How to use checksums
83eddd5d5efb0de9b35fcd7fa9722f2674056ff72738fd4d9e04a44215165381
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.0

Release files / pyrus_decision_tree-0.1.1-cp36-cp36m-manylinux1_x86_64.whl

Download URL pyrus_decision_tree-0.1.1-cp36-cp36m-manylinux1_x86_64.whl
Size 2.9 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
2de7925192193403337d48fb4fc7d81fbb619834f31e769ee30345efecd577c6
BLAKE2b-256 checksum
How to use checksums
89bff928b6497c8d534274fa0ab2685d3516c1804e5c8e18bbe964205a42242d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.0

Release files / pyrus_decision_tree-0.1.1-cp27-cp27mu-manylinux1_x86_64.whl

Download URL pyrus_decision_tree-0.1.1-cp27-cp27mu-manylinux1_x86_64.whl
Size 2.9 MB
Tags CPython 2.7 CPython 2.7 pymalloc wide-unicode Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
601c5b722f31f71c6d0c0b42422861476446752a925884070be17ea83568c150
BLAKE2b-256 checksum
How to use checksums
497005d8e6023641e07f4edeb6bf2ff43db34358b3ad65f30f5122f16684f309
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

3 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page