Skip to main content

scikit-obliquetree

Build status Python Version Dependencies Status

Code style: black Security: bandit Pre-commit Semantic Versions License

Oblique Decision Tree in Python

Introduction

The oblique decision tree is a popular choice in the machine learning domain for improving the performance of traditional decision tree algorithms. In contrast to the traditional decision tree, which uses an axis-parallel split point to determine whether a data point should be assigned to the left or right branch of a decision tree, the oblique decision tree uses a hyper-plane based on all data point features.

Numerous works in the machine learning domain have shown that oblique decision trees can achieve exceptional performance in a wide range of domains. However, there is still a lack of a package that has implemented oblique decision tree algorithms, which stymies the development of this domain. As a result, the goal of this project is to solve this problem by implementing some well-known algorithms in this domain. We hope that by doing so, these algorithms will serve as a baseline for machine learning practitioners to compare newly designed algorithms to existing algorithms.

🚀 Features

  • A simple scikit-learn interface for oblique decision tree algorithms
  • A general gradient boosting estimator that can be used to improve arbitrary base estimators

Installation

pip install -U scikit-obliquetree

or install with Poetry

poetry add scikit-obliquetree

Then you can run

scikit-obliquetree --help
scikit-obliquetree --name Roman

or if installed with Poetry:

poetry run scikit-obliquetree --help
poetry run scikit-obliquetree --name Roman

Example

Example of usage:

from sklearn.datasets import load_boston
from sklearn.ensemble import BaggingRegressor
from sklearn.model_selection import cross_val_score

from scikit_obliquetree.HHCART import HouseHolderCART
from scikit_obliquetree.segmentor import MSE, MeanSegmentor

X, y = load_boston(return_X_y=True)
reg = BaggingRegressor(
    HouseHolderCART(MSE(), MeanSegmentor(), max_depth=3),
    n_estimators=100,
    n_jobs=-1,
)
print('CV Score', cross_val_score(reg, X, y))

🛡 License

License

This project is licensed under the terms of the Apache Software License 2.0 license. See LICENSE for more details.

📃 Citation

@misc{scikit-obliquetree,
  author = {ECNU},
  title = {Oblique Decision Tree in Python},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/zhenlingcn/scikit-obliquetree}}
}

Credits

This project was generated with python-package-template.

Metadata

Release files for scikit-obliquetree 0.1.4

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

Source distribution (sdist)

Source distribution for scikit-obliquetree 0.1.4
File Size Uploaded
scikit-obliquetree-0.1.4.tar.gz 19.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scikit-obliquetree 0.1.4
File Interpreter ABI Platform
scikit_obliquetree-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 40.4 kB

Release files / scikit-obliquetree-0.1.4.tar.gz

Download URL scikit-obliquetree-0.1.4.tar.gz
Size 19.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b4cb6747374a252274941e27865417739c6dfe5144433a0f45fdb3721667d97e
BLAKE2b-256 checksum
How to use checksums
aa8d7aa61ffe25b7e66e5a5026509e22e63b238aa5bf26e1695e970daac19af3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.6 CPython/3.8.2 Linux/5.4.72-microsoft-standard-WSL2

Release files / scikit_obliquetree-0.1.4-py3-none-any.whl

Download URL scikit_obliquetree-0.1.4-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c84adfa1619d01ba9172c0f88f20c3c98dfb499b63f9e11e3f3af9d6f1bd79d3
BLAKE2b-256 checksum
How to use checksums
a68a8662e73b808c7eefb4b15ff57efb95c035120fd317024524d27ccb359cc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.6 CPython/3.8.2 Linux/5.4.72-microsoft-standard-WSL2

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 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