kernelboost 0.1.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- kernelboost-0.2.1/CHANGELOG.md +37 -0
- kernelboost-0.2.1/PKG-INFO +78 -0
- kernelboost-0.2.1/PYPI_README.md +56 -0
- kernelboost-0.1.0/kernelboost.egg-info/PKG-INFO → kernelboost-0.2.1/README.md +281 -279
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/__init__.py +1 -1
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/backend.py +0 -36
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/booster.py +96 -68
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/cpu_functions.py +11 -54
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/estimator.py +18 -30
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/gpu_functions.py +1 -19
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/kernels.c +3 -48
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/multiclassbooster.py +37 -35
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/optimizer.py +75 -11
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/tree.py +17 -50
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/utilities.py +1 -5
- kernelboost-0.2.1/kernelboost.egg-info/PKG-INFO +78 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost.egg-info/SOURCES.txt +1 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/pyproject.toml +2 -2
- kernelboost-0.1.0/CHANGELOG.md +0 -15
- kernelboost-0.1.0/PKG-INFO +0 -279
- kernelboost-0.1.0/README.md +0 -257
- {kernelboost-0.1.0 → kernelboost-0.2.1}/LICENSE +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/MANIFEST.in +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/feature_selection.py +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/kernels.cu +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/libkernels.dll +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/libkernels.so +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/objectives.py +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost/rho_optimizer.py +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost.egg-info/dependency_links.txt +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost.egg-info/requires.txt +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/kernelboost.egg-info/top_level.txt +0 -0
- {kernelboost-0.1.0 → kernelboost-0.2.1}/setup.cfg +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [0.2.1] - 2026-03-01
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- Replaced built-in variance estimation with Fan & Yao (1998) double kernel method. `predict_variance()` now fits dedicated KernelTrees on squared residuals instead of reusing mean-optimized kernel weights. Default aggregation changed from `'mean'` to `'max'`.
|
|
9
|
+
- Small bug fixes.
|
|
10
|
+
|
|
11
|
+
### Removed
|
|
12
|
+
- Removed `_predict_with_variance()` from KernelEstimator, KernelTree, CompiledTree, and Backend.
|
|
13
|
+
- Removed `cuda_predict_with_variance()` and `cpu_predict_with_variance()` backend functions.
|
|
14
|
+
- Removed `predict_with_variance` C function from `kernels.c`.
|
|
15
|
+
|
|
16
|
+
## [0.2.0] - 2026-02-21
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **Breaking**: Renamed API parameters for sklearn compatibility:
|
|
20
|
+
`rounds` to `n_estimators`, `max_tree_depth` to `max_depth`, `early_stopping_rounds` to `n_iter_no_change`
|
|
21
|
+
- Changed default `max_sample` and `min_sample` parameters to more sensible values
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- Pilot estimation method for precision search bounds (`precision_method='pilot-cv'`). Pilot estimated
|
|
25
|
+
bounds controlled by `pilot_factor` parameter passed on from KernelBooster and KernelTree to KernelEstimator.
|
|
26
|
+
|
|
27
|
+
## [0.1.0] - 2026-02-10
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
- Initial public release
|
|
31
|
+
- KernelBooster for 1d targets with support for MSE, entropy, and quantile objectives
|
|
32
|
+
- MulticlassBooster for multiclass classification
|
|
33
|
+
- GPU acceleration via CuPy
|
|
34
|
+
- Nadaraya-Watson kernel regression with LOO-CV bandwidth optimization
|
|
35
|
+
- Feature selection (random and smart selectors)
|
|
36
|
+
- Early stopping with validation loss monitoring
|
|
37
|
+
- Uncertainty quantification via prediction intervals and conditional variance prediction
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: kernelboost
|
|
3
|
+
Version: 0.2.1
|
|
4
|
+
Summary: Gradient boosting with kernel regression base learners
|
|
5
|
+
Author-email: tlaiho <tslaiho@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Repository, https://github.com/tlaiho/kernelboost
|
|
8
|
+
Keywords: gradient-boosting,kernel-regression,machine-learning
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
|
+
Requires-Python: >=3.9
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: numpy>=1.26.4
|
|
18
|
+
Provides-Extra: gpu
|
|
19
|
+
Requires-Dist: cupy>=11.0.0; extra == "gpu"
|
|
20
|
+
Provides-Extra: all
|
|
21
|
+
Requires-Dist: cupy>=11.0.0; extra == "all"
|
|
22
|
+
|
|
23
|
+
# KernelBoost
|
|
24
|
+
|
|
25
|
+
**Gradient boosting with kernel-based local constant estimators**
|
|
26
|
+
|
|
27
|
+

|
|
28
|
+

|
|
29
|
+

|
|
30
|
+

|
|
31
|
+

|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
KernelBoost is a gradient boosting algorithm that uses Nadaraya-Watson (local constant) kernel estimators as base learners instead of decision trees. It has:
|
|
35
|
+
|
|
36
|
+
- Support for regression, classification and quantile regression tasks.
|
|
37
|
+
- sklearn style API (`fit`, `predict`).
|
|
38
|
+
- CPU (via C) and GPU (via CuPy/CUDA) backends.
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Basic installation
|
|
44
|
+
pip install kernelboost
|
|
45
|
+
|
|
46
|
+
# With GPU support (requires CUDA)
|
|
47
|
+
pip install cupy-cuda12x # for CUDA 12
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> **Dependencies**: NumPy only. CuPy optional for GPU acceleration.
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
```python
|
|
55
|
+
from kernelboost import KernelBooster, MulticlassBooster
|
|
56
|
+
from kernelboost.objectives import MSEObjective, EntropyObjective
|
|
57
|
+
|
|
58
|
+
# Regression
|
|
59
|
+
booster = KernelBooster(objective=MSEObjective()).fit(X_train, y_train)
|
|
60
|
+
predictions = booster.predict(X_test)
|
|
61
|
+
|
|
62
|
+
# Binary classification
|
|
63
|
+
booster = KernelBooster(objective=EntropyObjective()).fit(X_train, y_train)
|
|
64
|
+
logits = booster.predict(X_test)
|
|
65
|
+
probabilities = booster.predict_proba(X_test)
|
|
66
|
+
|
|
67
|
+
# Multiclass classification (fits one booster per class)
|
|
68
|
+
booster = MulticlassBooster().fit(X_train, y_train)
|
|
69
|
+
class_labels = booster.predict(X_test)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Documentation
|
|
73
|
+
|
|
74
|
+
For full documentation, benchmarks, architecture details, and API reference, see the [GitHub repository](https://github.com/tlaiho/kernelboost).
|
|
75
|
+
|
|
76
|
+
## License
|
|
77
|
+
|
|
78
|
+
MIT License
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# KernelBoost
|
|
2
|
+
|
|
3
|
+
**Gradient boosting with kernel-based local constant estimators**
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
KernelBoost is a gradient boosting algorithm that uses Nadaraya-Watson (local constant) kernel estimators as base learners instead of decision trees. It has:
|
|
13
|
+
|
|
14
|
+
- Support for regression, classification and quantile regression tasks.
|
|
15
|
+
- sklearn style API (`fit`, `predict`).
|
|
16
|
+
- CPU (via C) and GPU (via CuPy/CUDA) backends.
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Basic installation
|
|
22
|
+
pip install kernelboost
|
|
23
|
+
|
|
24
|
+
# With GPU support (requires CUDA)
|
|
25
|
+
pip install cupy-cuda12x # for CUDA 12
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> **Dependencies**: NumPy only. CuPy optional for GPU acceleration.
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from kernelboost import KernelBooster, MulticlassBooster
|
|
34
|
+
from kernelboost.objectives import MSEObjective, EntropyObjective
|
|
35
|
+
|
|
36
|
+
# Regression
|
|
37
|
+
booster = KernelBooster(objective=MSEObjective()).fit(X_train, y_train)
|
|
38
|
+
predictions = booster.predict(X_test)
|
|
39
|
+
|
|
40
|
+
# Binary classification
|
|
41
|
+
booster = KernelBooster(objective=EntropyObjective()).fit(X_train, y_train)
|
|
42
|
+
logits = booster.predict(X_test)
|
|
43
|
+
probabilities = booster.predict_proba(X_test)
|
|
44
|
+
|
|
45
|
+
# Multiclass classification (fits one booster per class)
|
|
46
|
+
booster = MulticlassBooster().fit(X_train, y_train)
|
|
47
|
+
class_labels = booster.predict(X_test)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Documentation
|
|
51
|
+
|
|
52
|
+
For full documentation, benchmarks, architecture details, and API reference, see the [GitHub repository](https://github.com/tlaiho/kernelboost).
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
MIT License
|