Skip to main content

Oblique Decision Tree in Python

Project description

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.

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

scikit-obliquetree-0.1.4.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

scikit_obliquetree-0.1.4-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file scikit-obliquetree-0.1.4.tar.gz.

File metadata

  • Download URL: scikit-obliquetree-0.1.4.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.2 Linux/5.4.72-microsoft-standard-WSL2

File hashes

Hashes for scikit-obliquetree-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b4cb6747374a252274941e27865417739c6dfe5144433a0f45fdb3721667d97e
MD5 a5f491ec06a1c40ac730b2f77d3a394a
BLAKE2b-256 aa8d7aa61ffe25b7e66e5a5026509e22e63b238aa5bf26e1695e970daac19af3

See more details on using hashes here.

File details

Details for the file scikit_obliquetree-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: scikit_obliquetree-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.2 Linux/5.4.72-microsoft-standard-WSL2

File hashes

Hashes for scikit_obliquetree-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c84adfa1619d01ba9172c0f88f20c3c98dfb499b63f9e11e3f3af9d6f1bd79d3
MD5 10d7dd0e246f901756bd1d755339aec4
BLAKE2b-256 a68a8662e73b808c7eefb4b15ff57efb95c035120fd317024524d27ccb359cc6

See more details on using hashes here.

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