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.
Files changed (58) hide show
  1. {wavetrainer-0.0.19/wavetrainer.egg-info → wavetrainer-0.0.21}/PKG-INFO +3 -1
  2. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/README.md +1 -0
  3. wavetrainer-0.0.19/wavetrainer.egg-info/requires.txt → wavetrainer-0.0.21/requirements.txt +1 -0
  4. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/setup.py +1 -1
  5. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/__init__.py +1 -1
  6. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_model.py +12 -0
  7. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/selector/selector.py +0 -8
  8. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/trainer.py +1 -1
  9. {wavetrainer-0.0.19 → wavetrainer-0.0.21/wavetrainer.egg-info}/PKG-INFO +3 -1
  10. wavetrainer-0.0.19/requirements.txt → wavetrainer-0.0.21/wavetrainer.egg-info/requires.txt +2 -1
  11. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/LICENSE +0 -0
  12. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/MANIFEST.in +0 -0
  13. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/setup.cfg +0 -0
  14. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/__init__.py +0 -0
  15. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/model/__init__.py +0 -0
  16. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/model/catboost_kwargs_test.py +0 -0
  17. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/tests/trainer_test.py +0 -0
  18. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/__init__.py +0 -0
  19. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/calibrator.py +0 -0
  20. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/calibrator_router.py +0 -0
  21. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/mapie_calibrator.py +0 -0
  22. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/calibrator/vennabers_calibrator.py +0 -0
  23. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/create.py +0 -0
  24. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/exceptions.py +0 -0
  25. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/fit.py +0 -0
  26. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/__init__.py +0 -0
  27. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_classifier_wrap.py +0 -0
  28. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_kwargs.py +0 -0
  29. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/catboost_regressor_wrap.py +0 -0
  30. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/model.py +0 -0
  31. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model/model_router.py +0 -0
  32. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/model_type.py +0 -0
  33. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/params.py +0 -0
  34. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/__init__.py +0 -0
  35. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/base_selector_reducer.py +0 -0
  36. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/combined_reducer.py +0 -0
  37. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/constant_reducer.py +0 -0
  38. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/correlation_reducer.py +0 -0
  39. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/duplicate_reducer.py +0 -0
  40. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/nonnumeric_reducer.py +0 -0
  41. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/reducer.py +0 -0
  42. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/reducer/unseen_reducer.py +0 -0
  43. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/selector/__init__.py +0 -0
  44. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/__init__.py +0 -0
  45. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/class_weights.py +0 -0
  46. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/combined_weights.py +0 -0
  47. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/exponential_weights.py +0 -0
  48. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/linear_weights.py +0 -0
  49. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/noop_weights.py +0 -0
  50. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/sigmoid_weights.py +0 -0
  51. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/weights.py +0 -0
  52. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/weights/weights_router.py +0 -0
  53. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/windower/__init__.py +0 -0
  54. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer/windower/windower.py +0 -0
  55. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/SOURCES.txt +0 -0
  56. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/dependency_links.txt +0 -0
  57. {wavetrainer-0.0.19 → wavetrainer-0.0.21}/wavetrainer.egg-info/not-zip-safe +0 -0
  58. {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.19
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
 
@@ -25,6 +25,7 @@ Python 3.11.6:
25
25
  - [venn-abers](https://github.com/ip200/venn-abers)
26
26
  - [mapie](https://mapie.readthedocs.io/en/stable/)
27
27
  - [pytz](https://pythonhosted.org/pytz/)
28
+ - [torch](https://pytorch.org/)
28
29
 
29
30
  ## Raison D'être :thought_balloon:
30
31
 
@@ -9,3 +9,4 @@ catboost>=1.2.7
9
9
  venn-abers>=1.4.6
10
10
  mapie>=0.9.2
11
11
  pytz>=2025.1
12
+ torch>=2.6.0
@@ -23,7 +23,7 @@ def install_requires() -> typing.List[str]:
23
23
 
24
24
  setup(
25
25
  name='wavetrainer',
26
- version='0.0.19',
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',
@@ -2,5 +2,5 @@
2
2
 
3
3
  from .create import create
4
4
 
5
- __VERSION__ = "0.0.19"
5
+ __VERSION__ = "0.0.21"
6
6
  __all__ = ("create",)
@@ -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.19
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
 
@@ -8,4 +8,5 @@ scipy>=1.15.2
8
8
  catboost>=1.2.7
9
9
  venn-abers>=1.4.6
10
10
  mapie>=0.9.2
11
- pytz>=2025.1
11
+ pytz>=2025.1
12
+ torch>=2.6.0
File without changes
File without changes
File without changes