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.
- {wavetrainer-0.0.31/wavetrainer.egg-info → wavetrainer-0.0.32}/PKG-INFO +1 -1
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/setup.py +1 -1
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/__init__.py +1 -1
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/combined_reducer.py +10 -5
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/trainer.py +6 -3
- {wavetrainer-0.0.31 → wavetrainer-0.0.32/wavetrainer.egg-info}/PKG-INFO +1 -1
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/LICENSE +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/MANIFEST.in +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/README.md +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/requirements.txt +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/setup.cfg +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/model/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/model/catboost_kwargs_test.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/tests/trainer_test.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/calibrator.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/calibrator_router.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/mapie_calibrator.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/calibrator/vennabers_calibrator.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/create.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/exceptions.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/fit.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_classifier_wrap.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_kwargs.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_model.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/catboost_regressor_wrap.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/model.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/model_router.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model/tabpfn_model.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/model_type.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/params.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/base_selector_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/constant_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/correlation_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/duplicate_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/nonnumeric_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/smart_correlation_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/reducer/unseen_reducer.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/selector/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/selector/selector.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/class_weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/combined_weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/exponential_weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/linear_weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/noop_weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/sigmoid_weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/weights.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/weights/weights_router.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/windower/__init__.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer/windower/windower.py +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/SOURCES.txt +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/dependency_links.txt +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/not-zip-safe +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/requires.txt +0 -0
- {wavetrainer-0.0.31 → wavetrainer-0.0.32}/wavetrainer.egg-info/top_level.txt +0 -0
@@ -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.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',
|
@@ -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
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
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 = -
|
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
|
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) <=
|
393
|
+
if len(test_df) <= 3:
|
391
394
|
continue
|
392
395
|
|
393
396
|
if test_idx < start_validation_index:
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|