Python中的现代决策树
项目描述
treeple
treeple是一个用于构建最先进决策树的scikit-learn兼容API。这些包括无监督树、斜树、不确定性树、分位数树和因果树。
树模型经受了时间的考验,并且一直被用于现代数据科学和机器学习应用。当问题样本有限时,它们表现尤为出色,并且是灵活的学习者,可以应用于各种不同的设置,例如表格、图像、时间序列、基因组学、EEG数据等。
请注意,此包最初命名为scikit-tree
,但在0.8.0版本后更名为treeple
。版本 <0.8.0 仍在https://pypi.ac.cn/project/scikit-tree/上提供。
文档
请在此处查看我们开发版本的文档:https://docs.neurodata.io/treeple/dev/index.html
为什么要使用斜切树,以及为什么要在scikit-learn之外的树上使用树?
2001年,Leo Breiman提出了两种随机森林。一种被称为Forest-RI
,这是轴对齐的传统随机森林。另一种被称为Forest-RC
,这是随机斜切线性组合随机森林。它利用特征的随机组合来执行分割。《MORF》在Forest-RC
的基础上,通过提出额外的组合特征函数。其他现代树变体,如典型相关森林(CCF)、扩展隔离森林、分位数森林或无监督随机森林,在解决现实世界问题中使用鲁棒的决策树模型方面也非常重要。
安装
我们的安装将尽可能遵循scikit-learn的安装,因为我们包含Cython代码子类,或受scikit-learn树子模块的启发。
依赖项
我们至少需要
* Python (>=3.9)
* numpy
* scipy
* scikit-learn >= 1.3
使用Pip安装(https://pypi.ac.cn/project/treeple/)
在conda环境中使用pip安装是推荐的方法。
pip install treeple
使用Meson本地构建(开发者)
确保您已安装必要的软件包
# install build dependencies
pip install -r build_requirements.txt
# you may need these optional dependencies to build scikit-learn locally
conda install -c conda-forge joblib threadpoolctl pytest compilers llvm-openmp
我们使用spin
CLI来抽象构建细节
# run the build using Meson/Ninja
./spin build
# you can run the following command to see what other options there are
./spin --help
./spin build --help
# For example, you might want to start from a clean build
./spin build --clean
# or build in parallel for faster builds
./spin build -j 2
# you will need to double check the build-install has the proper path
# this might be different from machine to machine
export PYTHONPATH=${PWD}/build-install/usr/lib/python3.9/site-packages
# run specific unit tests
./spin test -- treeple/tree/tests/test_tree.py
# you can bring up the CLI menu
./spin --help
您也可以使用Meson/Ninja本身做同样的事情。运行以下命令以构建本地文件
# generate ninja make files
meson build --prefix=$PWD/build
# compile
ninja -C build
# install treeple package
meson install -C build
export PYTHONPATH=${PWD}/build/lib/python3.9/site-packages
# to check installation, you need to be in a different directory
cd docs;
python -c "from treeple import tree"
python -c "import sklearn; print(sklearn.__version__);"
本地构建完成后,您可以使用可编辑的安装(警告:这仅在本地上注册Python更改)
pip install --no-build-isolation --editable .
或者如果您已安装spin v0.8+,可以直接运行
spin install
开发
我们欢迎对现代基于树的算法的贡献。我们使用Cython实现快速的C/C++速度,同时遵守与scikit-learn兼容的(测试过的)API。此外,我们的Cython内部易于扩展,因为它们遵循scikit-learn的内部Cython API。
由于scikit-learn当前树内部Cython代码的状态,当我们扩展scikit-learn的决策树模型API时,我们不得不利用scikit-learn的分支https://github.com/neurodata/scikit-learn。具体来说,我们在子模块中扩展了scikit-learn中树子模块的Python和Cython API,以便我们可以引入本包中包含的树模型。因此,这些扩展了决策树模型的函数,这在scikit-learn本身中尚不可行。例如,我们引入了一个抽象API,允许用户实现自己的斜切分割。我们的计划是在未来对这些功能进行基准测试,并将它们引入scikit-learn,前提是适用且满足纳入标准。
参考文献
项目详情
treeple-0.9.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f07cd8338d2b7d35ab324cdf80cefc5860ed93f9b9436d12419834ca9b5793e3 |
|
MD5 | c057776ff33fc50cb5c30f7c2fa9de8b |
|
BLAKE2b-256 | 4d1b04bb267b1e30b2fe1ee98b9687929da3fb14afaacc3bcd1e55bdaf96bb8d |
treeple-0.9.1-cp312-cp312-win_amd64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2fa03f0761063263cd98a8afb69a8c6b96c0ad7bca2442c56f206cb9d3cf483a |
|
MD5 | 2a4a00f20db23a58ae6f0b408bff6526 |
|
BLAKE2b-256 | b827d25a8c902fb8f410e58e531af07bb04010d6290ef34297e34c120a27dfd0 |
treeple-0.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f93ad08684ab8be0d37083ab674db1afe9f548c3835afe7f599456fa0ad89400 |
|
MD5 | 513dc0caf199890b30b8060da8892868 |
|
BLAKE2b-256 | b9ad60da51f9aab3e4a807ce5ae6ff367c9088224788ce73be0fc4b328637078 |
treeple-0.9.1-cp312-cp312-macosx_11_0_arm64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1bd20c1f8b4eb4097c40bb1d4d089c1bca4725320a5f3f384a2f8a8dd09a1875 |
|
MD5 | b149b1e7eb09157e916eb6b51252c1bc |
|
BLAKE2b-256 | da1ca81e76c912517fab337c60e3d6d7bd92e08624197abe95b03f1c9b5c563d |
treeple-0.9.1-cp312-cp312-macosx_10_9_x86_64.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ab5a7ac07b940062207061fc497bd1f3d365279a9b11aee2bf2ed874f6b800fe |
|
MD5 | 49d2a968d8444dc1cc31c2d1582355ef |
|
BLAKE2b-256 | 258a0411a102922b65dcde45a64d6a08682d25e3e8a2e7feece9d98f5adbc5bd |
哈希值 用于 treeple-0.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 179068fb60e786d95a447842e5a517110d9a3682f3e54ac4a3b4d453b8feb0f8 |
|
MD5 | d1bab13fe3351ebbe2aae3e082bee044 |
|
BLAKE2b-256 | cc99c502f208ed3abdd5ab82ab5ad6aac8fd28d63ca3f1cdf6b747f5d3a02129 |
哈希值 用于 treeple-0.9.1-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2988949acdca524946c5fb0d702614b1ac87dcf1c5a0f7251995e2020456102c |
|
MD5 | 6836f4c72214dc6e8184d157fc0a3809 |
|
BLAKE2b-256 | 80c77af5a9629c5ae4c73f16687461d0fecb2f6d46affe2c254edda52cd94633 |
哈希值 用于 treeple-0.9.1-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f9b9176f8764a6dc8f96cb9ccdd112a7787f5fb18be3d26b90a762a76499579b |
|
MD5 | abce66f752741d49fef5ea6c0178fcda |
|
BLAKE2b-256 | e8e830a48269a2be16384b16222c4ed11b994160591b4926b47741cde2001db1 |
哈希值 用于 treeple-0.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ca83f00b5b46bdea118fd2b20356fc45a5b8b457a2d95c5a4587214ce2e43081 |
|
MD5 | 4f9d504c119913cf35e396767c4e2ac6 |
|
BLAKE2b-256 | 91f58b72838abf21f05c83e8e18a06fa9a90a67c213299d83c6a2ec8b8adaa81 |
哈希值 用于 treeple-0.9.1-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cc4fa7898daa02d7130868028e2696e137025a442e780ff3830c7a6249119239 |
|
MD5 | 7227de05ecfc73348a4b168a7428986d |
|
BLAKE2b-256 | 7e3d106a24aa56453b982f350015389f94093ecc96c254dfdc68e16f082ab69f |
哈希值 用于 treeple-0.9.1-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ff0b52cfc2108fd9506cceaf2cc822a272f959eec86e16df8fadcdcaf6be62ba |
|
MD5 | a0f4b3d06792b3a35b64d8bf656dcf2a |
|
BLAKE2b-256 | 49a79611823ac47c5a8bf2ecba74f14904eac63243a27a1e9fe0a68a47c7d955 |
哈希值 用于 treeple-0.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 47ce5edf06d8ce8d026a49c4ea6602269e1c4ce7184706574ae2f0ce63ae53ef |
|
MD5 | 6011894213db536347422260aeb9368b |
|
BLAKE2b-256 | 1a9279f41095d7ef1eb41c2afcf2a2a25e128731ab81b91864b48f299aabb0fa |
哈希值 用于 treeple-0.9.1-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c79a633ee7391650896eb47c4569840265acb203a685bf8d786624c65c64e15c |
|
MD5 | 271cb15da6ad70a44fc0d3ff1bd6647d |
|
BLAKE2b-256 | 44be8528eff29fcb1159060d046402e5e1da6a2d7d737f95c80249c42d060265 |
哈希值 用于 treeple-0.9.1-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 45abfbbd9a64e63f6bc0b33cc7eb71a5dd2319e9f657d5dd431e3cf4067f2c9d |
|
MD5 | 9ab012e4f54cb26d8ae224f72014c463 |
|
BLAKE2b-256 | 6d3f1668131ed36a3a24820ea6a7977228bbedf5f5e8d5226023c2e396eb655d |