Skip to main content

A maintained fork of scikit-learn that extends the tree submodule.

Project description

Azure CirrusCI Codecov CircleCI Nightly wheels Black PythonVersion PyPi DOI Benchmark

Scikit-learn-tree

scikit-learn-tree is an alias of scikit-learn, released under the namespace sklearn_fork. It is a maintained fork of scikit-learn, which advances the tree submodule, while staying in-line with changes from upstream scikit-learn. It is an exact stand-in for sklearn_fork in package imports, but is released under the name scikit-learn-tree to avoid confusion.

It is currently maintained by a team of volunteers.

The upstream package scikit-learn is a Python module for machine learning built on top of SciPy and is distributed under the 3-Clause BSD license. Refer to their website for all documentation needs: https://scikit-learn.org.

Why a fork?

Currently, the scikit-learn tree submodule is difficult to extend. Requests to modularize and improve the extensibility of the code is currently unsupported, or may take a long time. The desire for advanced tree models that also leverage the robustness of scikit-learn is desirable.

However, “hard-forking” via copy/pasting the explicit Python/Cython code into another tree package altogether is undesirable because it results in a tree codebase that is inherently different and not compatible with scikit-learn. For example, quantile-forests, and EconML do this, and their current tree submodules cannot take advantage of improvements made in upstream scikit-learn.

An example of seamless integration would be scikit-survival, which only needs to implement a subclass of the Cython Criterion oject in their code to enable survival trees.

Maintaining a “soft-fork” of scikit-learn in the form of a repository fork allows us to develop a separate package that serves as a stand-in for sklearn_fork in any package, extends the tree submodule and can also be synced with upstream changes in scikit-learn. This enables this fork to always take advantage of improvements made in scikit-learn main upstream, while providing a customizable tree API.

Installation

Dependencies

scikit-learn-tree requires:

  • Python (>= 3.8)

  • NumPy (>= 1.17.3)

  • SciPy (>= 1.5.0)

  • joblib (>= 1.1.1)

  • threadpoolctl (>= 2.0.0)

Installing scikit-learn-tree

Scikit-learn-tree is a maintained fork of scikit-learn, which extends the tree submodule in a few ways documented in fork_changelog.

We release versions of scikit-learn-tree in an analagous fashion to scikit-learn main. Due to maintenance resources, we only release on PyPi and recommend therefore installing with pip.

There are different ways to install scikit-learn-tree:

  • Install the latest official release install_fork_release. This is the best approach for most users. It will provide a stable version and pre-built packages are available for most platforms.

  • Building the package from source install_source. This is best for users who want the latest-and-greatest features and aren’t afraid of running brand-new code. This is also needed for users who wish to contribute to the project.

Installing the latest release

We release wheels for common distributions and this is thus installable via pip.

pip install scikit-learn-tree

This will install scikit-learn-tree under the namespace of sklearn_fork, which then can be used as a stand-in for any package that relies on the public API of sklearn_fork.

For example, any usage of scikit-learn is preserved with scikit-learn-tree

>>> # the sklearn_fork installed is that of scikit-learn-tree and is equivalent to scikit-learn
>>> from sklearn_fork.ensemble import RandomForestClassifier
>>> clf = RandomForestClassifier(random_state=0)
>>> X = [[ 1,  2,  3],  # 2 samples, 3 features
...      [11, 12, 13]]
>>> y = [0, 1]  # classes of each sample
>>> clf.fit(X, y)
RandomForestClassifier(random_state=0)

Building from source

If you are a developer and are interested in helping maintain, or add some new features to the fork, the building from source instructions are exactly the same as that of scikit-learn main, so please refer to scikit-learn documentation for instructions on building from source.


Development

We welcome new contributors of all experience levels, specifically to maintain the fork. Any contributions that make sure our fork is “better in-line” with scikit-learn upstream, or improves the tree submodule in anyway will be appreciated.

The scikit-learn community goals are to be helpful, welcoming, and effective. The Development Guide has detailed information about contributing code, documentation, tests, and more. We’ve included some basic information in this README.


Major Changes of the Fork

The purpose of this page is to illustrate some of the main features that scikit-learn-tree provides compared to scikit-learn. It assumes a an understanding of core package scikit-learn and also decision trees models. Please refer to our installation instructions install_fork_release for installing scikit-learn-tree.

Scikit-learn-tree though operates as a stand-in for upstream scikit-learn. It is used in packages exactly the same way and will support all features in the corresponding version of scikit-learn. For example, if you are interested in features of scikit-learn in v1.2.2 for NearestNeighbors algorithm, then if scikit-learn-tree has a version release of v1.2.2, then it will have all those features.

The breaking API changes will be with respect to anything in the tree submodule, and related Forest ensemble models. See below for a detailed list of breaking changes.

See: https://scikit-learn.org/ for documentation on scikit-learn main.

Our Philosophy

Our design philosophy with this fork of scikit-learn is to maintain as few changes as possible, such that incorporating upstream changes into the fork requires minimal effort.

Candidate changes and PRs accepted into the fork are those that:

  • improve compatability with upstream scikit-learn main

  • enable improved extensibility of tree models

Decision tree generalizations

Scikit-learn provides an axis-aligned sklearn_fork.tree.DecisionTreeClassifier decision tree model (classifier and regressor), which has a few fundamental limitations that prevent 3rd parties from utilizing the existing class, without forking a large amount of copy/pasted Python and Cython code. We highlight those limitations here and then describe how we generalize that limitation.

Cython Internal Private API:

Note, the Cython API for scikit-learn is still not a publicly supported API, so it may change without warning.

  • leaf and split nodes: These nodes are treated the same way and there is no internal API for setting them differently. Quantile trees and causal trees inherently generalize how leaf nodes are set.

  • Criterion class: The criterion class currently assumes a supervised learning interface. - Our fix: We implement a BaseCriterion object that provides an abstract API for unsupervised criterion.

  • Splitter class: The splitter clas currently assumes a supervised learning interface and does not provide a way of generalizing the way split candidates are proposed. - Our fix: We implement a BaseSplitter object that provides an abstract API for unsupervised splitters and also implement an API to allow generalizations of the SplitRecord struct and Splitter.node_split function. For example, this enables oblique splits to be considered.

  • Tree class: The tree class currently assumes a supervised learning interface and does not provide a way of generalizing the type of tree. - Our fix: We implementa BaseTree object that provides an abstract API for general tree models and also implement an API that allows generalization of the type of tree. For example, oblique trees are trivially implementable as an extension now.

  • stopping conditions for splitter: Currently, the Splitter.node_split function has various stopping conditions for the splitter based on hyperparameters. It is plausible that these conditions may be extended. For example, in causal trees, one may want the splitter to also account for a minimal degree of heterogeneity (i.e. variance) in its children nodes.

Python API:

  • sklearn_fork.tree.BaseDecisionTree assumes the underlying tree model is supervised: The y parameter is required to be passed in, which is not necessary for general tree-based models. For example, an unsupervised tree may pass in y=None. - Our fix: We fix this API, so the BaseDecisionTree is subclassable by unsupervised tree models that do not require y to be defined.

  • sklearn_fork.tree.BaseDecisionTree does not provide a way to generalize the Criterion, Splitter and Tree Cython classes used: The current codebase requires users to define custom criterion and/or splitters outside the instantiation of the BaseDecisionTree. This prevents users from generalizing the Criterion and Splitter and creating a neat Python API wrapper. Moreover, the Tree class is not customizable. - Our fix: We internally implement a private function to actually build the entire tree, BaseDecisionTree._build_tree, which can be overridden in subclasses that customize the criterion, splitter, or tree, or any combination of them.

  • sklearn_fork.ensemble.BaseForest and its subclass algorithms are slow when n_samples is very high. Binning features into a histogram, which is the basis of “LightGBM” and “HistGradientBoostingClassifier” is a computational trick that can both significantly increase runtime efficiency, but also help prevent overfitting in trees, since the sorting in “BestSplitter” is done on bins rather than the continuous feature values. This would enable random forests and their variants to scale to millions of samples. - Our fix: We added a max_bins=None keyword argument to the BaseForest class, and all its subclasses. The default behavior is no binning. The current implementation is not necessarily efficient. There are several improvements to be made. See below.

Overall, the existing tree models, such as sklearn_fork.tree.DecisionTreeClassifier and sklearn_fork.ensemble.RandomForestClassifier all work exactly the same as they would in scikit-learn main, but these extensions enable 3rd-party packages to extend the Cython/Python API easily.

Roadmap

There are several improvements that can be made in this fork. Primarily, the binning feature promises to make Random Forests and their variants ultra-fast. However, the binning needs to be implemented in a similar fashion to HistGradientBoostingClassifier, which passes in the binning thresholds throughout the tree construction step, such that the split nodes store the actual numerical value of the bin rather than the “bin index”. This requires modifying the tree Cython code to take in a binning_thresholds parameter that is part of the _BinMapper fitted class. This also allows us not to do any binning during prediction/apply time because the tree already stores the “numerical” threshold value we would want to apply to any incoming X that is not binned.

Besides that modification, the tree and splitter need to be able to handle not just np.float32 data (the type for X normally in Random Forests), but also uint8 data (the type for X when it is binned in to e.g. 255 bins). This would not only save RAM since uint8 storage of millions of samples would result in many GB saved, but also improved runtime.

So in summary, the Cython code of the tree submodule needs to take in an extra parameter for the binning thresholds if binning occurs and also be able to handle X being of dtype uint8. Afterwards, Random Forests will have fully leveraged the binning feature.

Something to keep in mind is that upstream scikit-learn is actively working on incorporating missing-value handling and categorical handling into Random Forests.

Next steps

We have briefly covered how the tree submodule has changed with respect to scikit-learn. This enables packages to leverage these changes in developing more complex tree models that may, or may not eventually be PRed into scikit-learn. For example,

  • scikit-tree is a scikit-learn compatible package for more complex and advanced tree models.

If you are developing tree models, we encourage you to take a look at that package, or if you have suggestions to make the tree submodule of our fork, scikit-learn-tree more

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-learn-tree-1.2.3.tar.gz (7.5 MB view details)

Uploaded Source

Built Distributions

scikit_learn_tree-1.2.3-cp311-cp311-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.11 Windows x86-64

scikit_learn_tree-1.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

scikit_learn_tree-1.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

scikit_learn_tree-1.2.3-cp311-cp311-macosx_12_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

scikit_learn_tree-1.2.3-cp311-cp311-macosx_10_9_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

scikit_learn_tree-1.2.3-cp310-cp310-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.10 Windows x86-64

scikit_learn_tree-1.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

scikit_learn_tree-1.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

scikit_learn_tree-1.2.3-cp310-cp310-macosx_12_0_arm64.whl (9.1 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

scikit_learn_tree-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

scikit_learn_tree-1.2.3-cp39-cp39-win_amd64.whl (9.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

scikit_learn_tree-1.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

scikit_learn_tree-1.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

scikit_learn_tree-1.2.3-cp39-cp39-macosx_12_0_arm64.whl (9.2 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

scikit_learn_tree-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

scikit_learn_tree-1.2.3-cp38-cp38-win_amd64.whl (8.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

scikit_learn_tree-1.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

scikit_learn_tree-1.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

scikit_learn_tree-1.2.3-cp38-cp38-macosx_12_0_arm64.whl (9.0 MB view details)

Uploaded CPython 3.8 macOS 12.0+ ARM64

scikit_learn_tree-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file scikit-learn-tree-1.2.3.tar.gz.

File metadata

  • Download URL: scikit-learn-tree-1.2.3.tar.gz
  • Upload date:
  • Size: 7.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for scikit-learn-tree-1.2.3.tar.gz
Algorithm Hash digest
SHA256 3761f00c485a781142f605fb72db21a5ac02881b50d5a156c84ccbe383586063
MD5 b53bc11dabeedd6b145210c227573fb8
BLAKE2b-256 1e1ba57d7633c720fd385b5bc1b407acd87712f5a1a124df1906e99b379b2206

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 379fdce702c69bb26251b3170f853ef48c3f1b93f308f4a240e7e3ca28230b2a
MD5 6686d0aa98447ba6de9d40ef4c7e1221
BLAKE2b-256 e9e815d3a2e45e09b82b4ef6af4786e3b21668a2b66d9b0ceeac11718f422424

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b022b1f0192fc000fb0b0bdd35e33f417d40e05625533c7b4d7a434b59f2a1ea
MD5 d596baa09eefd3fa99358b2a87b0eae8
BLAKE2b-256 ad4cef06ed3941a3f026ef5fe880d3f2f5432aaea4aea1071af9007e8016cc26

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9bd3fa0b03ded8b1fafd503e034616af410d4311489d07f7f855d39665b957e1
MD5 4fb4e9ada32063e83012cff64391123d
BLAKE2b-256 146750d51c677f7233eaa464a941711ea2bb30b365154bf7077e72de5e2f1562

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8969fed838642e8dc49d7746d09074bff6d38f3e56ddd0060eb69cf0098d00e3
MD5 746c4e59beb1fab4b56161206f1afa4c
BLAKE2b-256 f5194b6c0997351f64aa762146c76dd3ec47e08fb337edc5a8f39cc86851372c

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 585a47b446a54b9941da08db0a37efc406fba021ef4009702ad5b2c82ff4768e
MD5 65da42028b3bf378337422d2d534a619
BLAKE2b-256 fd59ebb10fe84cb8332f09cc544bc595f96e4c9009f4ffca312134f0f24ad550

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 739cd84b44d4b2380d2675db9ac3613cee1c23d16800e1fa69c1b52b571fc9e4
MD5 9e3d0423db0f87fe0b78582370b33003
BLAKE2b-256 6cd4bd6c411d891c228193af0cc69b1c74ceeb193d54cbf3f812ebf361d0dfe2

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd346458ee9668f3ff3b86f75b3bbd8eeeb582010c50e5c762af153e18e13db1
MD5 0a77a3d3507830027bbe193945c8c4fc
BLAKE2b-256 59d0602308017743d09c0e537aa9786078ccef6dfacc57f6305b3020b56d41d3

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85fd97c7588ae7fc3e415bef1e54f26d692d6e20e3232b3af8f2a1b5697f287c
MD5 aef4828c1647dea0a3d5c2b7d8310219
BLAKE2b-256 8a4c171e19c390034b2a5297b7de80680101f84892464df1c14994d5e7fafe3b

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 5e009ef941a1646530915311026bc0b862f5ad340fa2a3f4c46506f879cd6d99
MD5 d57b0b688429ee3730177d4b986540a2
BLAKE2b-256 770a84d74506cd6d08e874f8642a96450c58b1f3d6ca540a64afff18524db34f

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b3d2e34bb632331f957ea007d90e4886543755e67a8d4534751bc3d808b22838
MD5 66b6c254e3eb3f5bc0ce8e20860e749b
BLAKE2b-256 6b2b32fbab0cff88f83f513540c1e684bf6d0b9e2260d2286161c70b9353fe63

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b1c992d605276eb018870ea012dcb9ef38a165b41c2a069743219827944cf5b7
MD5 107c0ed9384e67b628273b1678fe7103
BLAKE2b-256 718e7e1266ea4f77c82942b76074d13d54be4436a4d084cea4e5db4d2d52f0a0

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d5d3ccfd023c53408d4aba67cf60b6a0eb31ab4d82f3c658cdf4a3ae2274ddc
MD5 6f5a6b442751ffcb563c1b8e6408099b
BLAKE2b-256 3c8072b19d6562d715464dbb46c1768847a2f79a39d7f7d01d7a135a868dd111

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b9b27f66fa6b2ec6de0f2cc733265d39671034c73674ccdfd5dd740292d74a7
MD5 7e80084cbcf960e36fdcb36b3ec089a5
BLAKE2b-256 3a45bc22193b6880c8dc988f982c4338b50217194e59fdb41077bc47e20fd416

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 dcdfe192dbf2f01d54e667c7f927021d6d9712f16f06039e796fc9bde5a1abb8
MD5 b7be07b114450f590003b11b953b7ece
BLAKE2b-256 876b79480803c52736bdf6ba1727685769a27e0ad0c970c350bef5d885be8a6d

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 989302de7cebdc0bf8c3b3bfe1db5c7502516850667a87d3fb309712d2112236
MD5 e71953a1b3829a6d91e6193f44f9cb42
BLAKE2b-256 e1a3e490b51551f543f89ac4f0ca7e3aa3d10b32fe16c3321d29c95480509116

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 35ada11411837f851856b4a4d00c097c598b4ef9ddf1a81971525fb207f1922d
MD5 1c73ec0f5e29b2b06ade31ce7c71bbaf
BLAKE2b-256 49593feb2afb7542d9cbe75fd6624ff93aee89a03ea584d81e9defc3273df637

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00ec5ca6dff71226286d4d074b923f66d7071c8daf8704fead7cf21080ae4552
MD5 1d0cb51d832057bc660f1b047cdd681f
BLAKE2b-256 0f4b3a9e2e4df4ea45d66e168b1d59f7e785d25ea59d21c86f6ef5e899988249

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 23d3c1f6a0885cabae1153bb57135eaf61524f3e2b151498e3ed2ef5455be753
MD5 b8a5814a9c6e8afc8f4ba99b69c5b9a5
BLAKE2b-256 2fb57d60c1df660e972bc232c54767748ff26c0fb486b5c5d2116a0ee48825aa

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp38-cp38-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp38-cp38-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e8d7fb1e420e8c646eb217feb3ff806b930b86a702d4360f3548738a54981211
MD5 dacee0146f79c4a7764ecb89750eb559
BLAKE2b-256 953aa20782447c8087fd6a1956864b5962c78acc0ad550df534eb9ccd96be23f

See more details on using hashes here.

File details

Details for the file scikit_learn_tree-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for scikit_learn_tree-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9319a92fea70a3d74e80a09d4a67087f6f987ef565775152b2b56ff1ff048d87
MD5 017dd1bd141869b4e819e8770362e142
BLAKE2b-256 f902305a68b5ef0bef5918db7040513e2f4f0340298ce502317cb59ea6fec31b

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