wavetrainer 0.0.19__tar.gz → 0.0.21__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.
- {wavetrainer-0.0.19/wavetrainer.egg-info → wavetrainer-0.0.21}/PKG-INFO +3 -1
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/README.md +1 -0
- wavetrainer-0.0.19/wavetrainer.egg-info/requires.txt → wavetrainer-0.0.21/requirements.txt +1 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/setup.py +1 -1
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/__init__.py +1 -1
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_model.py +12 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/selector/selector.py +0 -8
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/trainer.py +1 -1
- {wavetrainer-0.0.19 → wavetrainer-0.0.21/wavetrainer.egg-info}/PKG-INFO +3 -1
- wavetrainer-0.0.19/requirements.txt → wavetrainer-0.0.21/wavetrainer.egg-info/requires.txt +2 -1
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/LICENSE +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/MANIFEST.in +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/setup.cfg +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/model/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/model/catboost_kwargs_test.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/trainer_test.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/calibrator.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/calibrator_router.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/mapie_calibrator.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/vennabers_calibrator.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/create.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/exceptions.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/fit.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_classifier_wrap.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_kwargs.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_regressor_wrap.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/model.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/model_router.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model_type.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/params.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/base_selector_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/combined_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/constant_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/correlation_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/duplicate_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/nonnumeric_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/unseen_reducer.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/selector/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/class_weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/combined_weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/exponential_weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/linear_weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/noop_weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/sigmoid_weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/weights.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/weights_router.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/windower/__init__.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/windower/windower.py +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/SOURCES.txt +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/dependency_links.txt +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/not-zip-safe +0 -0
- {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: wavetrainer
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.21
|
4
4
|
Summary: A library for automatically finding the optimal model within feature and hyperparameter space.
|
5
5
|
Home-page: https://github.com/8W9aG/wavetrainer
|
6
6
|
Author: Will Sackfield
|
@@ -22,6 +22,7 @@ Requires-Dist: catboost>=1.2.7
|
|
22
22
|
Requires-Dist: venn-abers>=1.4.6
|
23
23
|
Requires-Dist: mapie>=0.9.2
|
24
24
|
Requires-Dist: pytz>=2025.1
|
25
|
+
Requires-Dist: torch>=2.6.0
|
25
26
|
|
26
27
|
# wavetrainer
|
27
28
|
|
@@ -50,6 +51,7 @@ Python 3.11.6:
|
|
50
51
|
- [venn-abers](https://github.com/ip200/venn-abers)
|
51
52
|
- [mapie](https://mapie.readthedocs.io/en/stable/)
|
52
53
|
- [pytz](https://pythonhosted.org/pytz/)
|
54
|
+
- [torch](https://pytorch.org/)
|
53
55
|
|
54
56
|
## Raison D'être :thought_balloon:
|
55
57
|
|
@@ -23,7 +23,7 @@ def install_requires() -> typing.List[str]:
|
|
23
23
|
|
24
24
|
setup(
|
25
25
|
name='wavetrainer',
|
26
|
-
version='0.0.
|
26
|
+
version='0.0.21',
|
27
27
|
description='A library for automatically finding the optimal model within feature and hyperparameter space.',
|
28
28
|
long_description=long_description,
|
29
29
|
long_description_content_type='text/markdown',
|
@@ -1,11 +1,13 @@
|
|
1
1
|
"""A model that wraps catboost."""
|
2
2
|
|
3
3
|
import json
|
4
|
+
import logging
|
4
5
|
import os
|
5
6
|
from typing import Any, Self
|
6
7
|
|
7
8
|
import optuna
|
8
9
|
import pandas as pd
|
10
|
+
import torch
|
9
11
|
from catboost import CatBoost, Pool # type: ignore
|
10
12
|
|
11
13
|
from ..model_type import ModelType, determine_model_type
|
@@ -152,6 +154,8 @@ class CatboostModel(Model):
|
|
152
154
|
metric_period=100,
|
153
155
|
eval_set=eval_pool,
|
154
156
|
)
|
157
|
+
importances = catboost.get_feature_importance(prettified=True)
|
158
|
+
logging.info("Importances:\n%s", importances)
|
155
159
|
return self
|
156
160
|
|
157
161
|
def transform(self, df: pd.DataFrame) -> pd.DataFrame:
|
@@ -186,6 +190,8 @@ class CatboostModel(Model):
|
|
186
190
|
boosting_type=self._boosting_type,
|
187
191
|
early_stopping_rounds=self._early_stopping_rounds,
|
188
192
|
metric_period=100,
|
193
|
+
task_type="GPU" if torch.cuda.is_available() else "CPU",
|
194
|
+
devices="0" if torch.cuda.is_available() else None,
|
189
195
|
)
|
190
196
|
case ModelType.REGRESSION:
|
191
197
|
catboost = CatBoostRegressorWrapper(
|
@@ -196,6 +202,8 @@ class CatboostModel(Model):
|
|
196
202
|
boosting_type=self._boosting_type,
|
197
203
|
early_stopping_rounds=self._early_stopping_rounds,
|
198
204
|
metric_period=100,
|
205
|
+
task_type="GPU" if torch.cuda.is_available() else "CPU",
|
206
|
+
devices="0" if torch.cuda.is_available() else None,
|
199
207
|
)
|
200
208
|
case ModelType.BINNED_BINARY:
|
201
209
|
catboost = CatBoostClassifierWrapper(
|
@@ -206,6 +214,8 @@ class CatboostModel(Model):
|
|
206
214
|
boosting_type=self._boosting_type,
|
207
215
|
early_stopping_rounds=self._early_stopping_rounds,
|
208
216
|
metric_period=100,
|
217
|
+
task_type="GPU" if torch.cuda.is_available() else "CPU",
|
218
|
+
devices="0" if torch.cuda.is_available() else None,
|
209
219
|
)
|
210
220
|
case ModelType.MULTI_CLASSIFICATION:
|
211
221
|
catboost = CatBoostClassifierWrapper(
|
@@ -216,6 +226,8 @@ class CatboostModel(Model):
|
|
216
226
|
boosting_type=self._boosting_type,
|
217
227
|
early_stopping_rounds=self._early_stopping_rounds,
|
218
228
|
metric_period=100,
|
229
|
+
task_type="GPU" if torch.cuda.is_available() else "CPU",
|
230
|
+
devices="0" if torch.cuda.is_available() else None,
|
219
231
|
)
|
220
232
|
self._catboost = catboost
|
221
233
|
if catboost is None:
|
@@ -66,14 +66,6 @@ class Selector(Params, Fit):
|
|
66
66
|
)
|
67
67
|
try:
|
68
68
|
self._selector.fit(df, y=y, sample_weight=w, **model_kwargs)
|
69
|
-
importances = self._model.estimator.feature_importances_
|
70
|
-
try:
|
71
|
-
importances_len = len(importances)
|
72
|
-
columns = self._selector.get_feature_names_out()
|
73
|
-
for i in range(importances_len):
|
74
|
-
logging.info("Feature %s: %f", columns[i], importances[i])
|
75
|
-
except TypeError:
|
76
|
-
pass
|
77
69
|
except ValueError as exc:
|
78
70
|
# Catch issues with 1 feature as a reduction target.
|
79
71
|
logging.warning(str(exc))
|
@@ -286,7 +286,7 @@ class Trainer(Fit):
|
|
286
286
|
if isinstance(self._test_size, float)
|
287
287
|
else test_dt_index[
|
288
288
|
test_dt_index >= (start_validation_index - self._test_size) # type: ignore
|
289
|
-
][0]
|
289
|
+
].to_list()[0]
|
290
290
|
)
|
291
291
|
|
292
292
|
def test_objective(trial: optuna.Trial) -> float:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: wavetrainer
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.21
|
4
4
|
Summary: A library for automatically finding the optimal model within feature and hyperparameter space.
|
5
5
|
Home-page: https://github.com/8W9aG/wavetrainer
|
6
6
|
Author: Will Sackfield
|
@@ -22,6 +22,7 @@ Requires-Dist: catboost>=1.2.7
|
|
22
22
|
Requires-Dist: venn-abers>=1.4.6
|
23
23
|
Requires-Dist: mapie>=0.9.2
|
24
24
|
Requires-Dist: pytz>=2025.1
|
25
|
+
Requires-Dist: torch>=2.6.0
|
25
26
|
|
26
27
|
# wavetrainer
|
27
28
|
|
@@ -50,6 +51,7 @@ Python 3.11.6:
|
|
50
51
|
- [venn-abers](https://github.com/ip200/venn-abers)
|
51
52
|
- [mapie](https://mapie.readthedocs.io/en/stable/)
|
52
53
|
- [pytz](https://pythonhosted.org/pytz/)
|
54
|
+
- [torch](https://pytorch.org/)
|
53
55
|
|
54
56
|
## Raison D'être :thought_balloon:
|
55
57
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|