wavetrainer 0.0.31__tar.gz → 0.0.32__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 (60) hide show
  1. {wavetrainer-0.0.31/wavetrainer.egg-info → wavetrainer-0.0.32}/PKG-INFO +1 -1
  2. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/setup.py +1 -1
  3. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/__init__.py +1 -1
  4. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/combined_reducer.py +10 -5
  5. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/trainer.py +6 -3
  6. {wavetrainer-0.0.31 → wavetrainer-0.0.32/wavetrainer.egg-info}/PKG-INFO +1 -1
  7. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/LICENSE +0 -0
  8. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/MANIFEST.in +0 -0
  9. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/README.md +0 -0
  10. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/requirements.txt +0 -0
  11. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/setup.cfg +0 -0
  12. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/__init__.py +0 -0
  13. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/model/__init__.py +0 -0
  14. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/model/catboost_kwargs_test.py +0 -0
  15. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/trainer_test.py +0 -0
  16. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/__init__.py +0 -0
  17. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/calibrator.py +0 -0
  18. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/calibrator_router.py +0 -0
  19. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/mapie_calibrator.py +0 -0
  20. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/vennabers_calibrator.py +0 -0
  21. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/create.py +0 -0
  22. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/exceptions.py +0 -0
  23. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/fit.py +0 -0
  24. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/__init__.py +0 -0
  25. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_classifier_wrap.py +0 -0
  26. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_kwargs.py +0 -0
  27. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_model.py +0 -0
  28. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_regressor_wrap.py +0 -0
  29. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/model.py +0 -0
  30. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/model_router.py +0 -0
  31. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/tabpfn_model.py +0 -0
  32. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model_type.py +0 -0
  33. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/params.py +0 -0
  34. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/__init__.py +0 -0
  35. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/base_selector_reducer.py +0 -0
  36. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/constant_reducer.py +0 -0
  37. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/correlation_reducer.py +0 -0
  38. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/duplicate_reducer.py +0 -0
  39. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/nonnumeric_reducer.py +0 -0
  40. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/reducer.py +0 -0
  41. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/smart_correlation_reducer.py +0 -0
  42. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/unseen_reducer.py +0 -0
  43. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/selector/__init__.py +0 -0
  44. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/selector/selector.py +0 -0
  45. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/__init__.py +0 -0
  46. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/class_weights.py +0 -0
  47. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/combined_weights.py +0 -0
  48. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/exponential_weights.py +0 -0
  49. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/linear_weights.py +0 -0
  50. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/noop_weights.py +0 -0
  51. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/sigmoid_weights.py +0 -0
  52. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/weights.py +0 -0
  53. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/weights_router.py +0 -0
  54. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/windower/__init__.py +0 -0
  55. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/windower/windower.py +0 -0
  56. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/SOURCES.txt +0 -0
  57. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/dependency_links.txt +0 -0
  58. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/not-zip-safe +0 -0
  59. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/requires.txt +0 -0
  60. {wavetrainer-0.0.31 → wavetrainer-0.0.32}/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.31
3
+ Version: 0.0.32
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
@@ -23,7 +23,7 @@ def install_requires() -> typing.List[str]:
23
23
 
24
24
  setup(
25
25
  name='wavetrainer',
26
- version='0.0.31',
26
+ version='0.0.32',
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.31"
5
+ __VERSION__ = "0.0.32"
6
6
  __all__ = ("create",)
@@ -18,6 +18,7 @@ from .unseen_reducer import UnseenReducer
18
18
 
19
19
  _COMBINED_REDUCER_FILE = "combined_reducer.json"
20
20
  _REDUCERS_KEY = "reducers"
21
+ _REMOVED_COLUMNS_FILE = "combined_reducer_removed_columns.json"
21
22
 
22
23
 
23
24
  class CombinedReducer(Reducer):
@@ -35,6 +36,7 @@ class CombinedReducer(Reducer):
35
36
  CorrelationReducer(),
36
37
  SmartCorrelationReducer(),
37
38
  ]
39
+ self._folder = None
38
40
 
39
41
  @classmethod
40
42
  def name(cls) -> str:
@@ -67,6 +69,7 @@ class CombinedReducer(Reducer):
67
69
  self._reducers.append(SmartCorrelationReducer())
68
70
  for reducer in self._reducers:
69
71
  reducer.load(folder)
72
+ self._folder = folder
70
73
 
71
74
  def save(self, folder: str, trial: optuna.Trial | optuna.trial.FrozenTrial) -> None:
72
75
  with open(
@@ -89,17 +92,19 @@ class CombinedReducer(Reducer):
89
92
  eval_x: pd.DataFrame | None = None,
90
93
  eval_y: pd.Series | pd.DataFrame | None = None,
91
94
  ) -> Self:
95
+ removed_columns_dict = {}
92
96
  for reducer in self._reducers:
93
97
  before_columns = set(df.columns.values)
94
98
  df = reducer.fit_transform(df)
95
99
  after_columns = set(df.columns.values)
96
100
  removed_columns = before_columns.difference(after_columns)
97
101
  if removed_columns:
98
- logging.info(
99
- "Removed columns %s using %s",
100
- ",".join(removed_columns),
101
- reducer.name(),
102
- )
102
+ removed_columns_dict[reducer.name()] = list(removed_columns)
103
+ if self._folder is not None:
104
+ with open(
105
+ os.path.join(self._folder, _REMOVED_COLUMNS_FILE), encoding="utf8"
106
+ ) as handle:
107
+ json.dump(removed_columns_dict, handle)
103
108
  return self
104
109
 
105
110
  def transform(self, df: pd.DataFrame) -> pd.DataFrame:
@@ -37,7 +37,7 @@ _TEST_SIZE_KEY = "test_size"
37
37
  _VALIDATION_SIZE_KEY = "validation_size"
38
38
  _IDX_USR_ATTR_KEY = "idx"
39
39
  _DT_COLUMN_KEY = "dt_column"
40
- _BAD_OUTPUT = -1.0
40
+ _BAD_OUTPUT = -1000.0
41
41
 
42
42
 
43
43
  def _assign_bin(timestamp, bins: list[datetime.datetime]) -> int:
@@ -345,7 +345,10 @@ class Trainer(Fit):
345
345
  if self._max_train_timeout is None
346
346
  else self._max_train_timeout.total_seconds(),
347
347
  )
348
- while study.best_trial.value is None or study.best_trial.value != _BAD_OUTPUT:
348
+ while (
349
+ study.best_trial.value is None or study.best_trial.value == _BAD_OUTPUT
350
+ ):
351
+ logging.info("Performing extra train")
349
352
  study.optimize(
350
353
  test_objective,
351
354
  n_trials=1,
@@ -387,7 +390,7 @@ class Trainer(Fit):
387
390
 
388
391
  test_df = df.iloc[: train_len + count + test_len]
389
392
  test_series = y_series.iloc[: train_len + count + test_len]
390
- if len(test_df) <= 2:
393
+ if len(test_df) <= 3:
391
394
  continue
392
395
 
393
396
  if test_idx < start_validation_index:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wavetrainer
3
- Version: 0.0.31
3
+ Version: 0.0.32
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
File without changes
File without changes
File without changes
File without changes