Metadata-Version: 2.4
Name: forestfire-ml
Version: 0.2.1
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Dist: numpy>=2,<3
Requires-Dist: polars>=1,<2 ; extra == 'polars'
Requires-Dist: pyarrow>=19,<20 ; extra == 'pyarrow'
Provides-Extra: polars
Provides-Extra: pyarrow
License-File: LICENSE
Summary: Tree-based learning in Rust with a Python API.
Keywords: decision trees,random forest,gradient boosting,machine learning,rust
Author: forestfire contributors
License-Expression: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://github.com/wsperat/forest-fire
Project-URL: Issues, https://github.com/wsperat/forest-fire/issues
Project-URL: Repository, https://github.com/wsperat/forest-fire

# forestfire

`forestfire` is a Python package for tree-based learning backed by a Rust core.

Current capabilities:

- decision trees
- random forests
- gradient boosting
- classification and regression
- sklearn-compatible estimator wrappers
- optimized inference runtimes
- model introspection and export

Example:

```python
import numpy as np

from forestfire import train

X = np.array([[0.0], [0.0], [1.0], [1.0]])
y = np.array([0.0, 0.0, 1.0, 1.0])

model = train(X, y, task="classification", tree_type="cart")
print(model.predict(X))
print(model.predict_proba(X))
```

Sklearn-style wrappers are also available:

```python
from forestfire.tree import CARTClassifier
from forestfire.forest import CARTRandomForestRegressor
from forestfire.gbm import ObliviousGBMRegressor
```

Common missing-value markers such as `None`, `np.nan`, pandas/NumPy `NaN`, and
`polars` nulls are handled automatically during training and prediction.

The source repository, documentation, and issue tracker live at:

- https://github.com/wsperat/forest-fire

