wavetrainer 0.0.41__tar.gz → 0.0.42__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.41/wavetrainer.egg-info → wavetrainer-0.0.42}/PKG-INFO +1 -1
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/setup.py +1 -1
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/__init__.py +1 -1
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/selector/selector.py +13 -10
- {wavetrainer-0.0.41 → wavetrainer-0.0.42/wavetrainer.egg-info}/PKG-INFO +1 -1
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/LICENSE +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/MANIFEST.in +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/README.md +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/requirements.txt +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/setup.cfg +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/tests/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/tests/model/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/tests/model/catboost_kwargs_test.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/tests/trainer_test.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/calibrator/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/calibrator/calibrator.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/calibrator/calibrator_router.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/calibrator/mapie_calibrator.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/calibrator/vennabers_calibrator.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/create.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/exceptions.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/fit.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/catboost_classifier_wrap.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/catboost_kwargs.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/catboost_model.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/catboost_regressor_wrap.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/model.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/model_router.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/tabpfn/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/tabpfn/tabpfn_model.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/xgboost/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/xgboost/early_stopper.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/xgboost/xgboost_logger.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/xgboost/xgboost_model.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model_type.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/params.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/base_selector_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/combined_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/constant_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/correlation_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/duplicate_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/non_categorical_numeric_columns.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/nonnumeric_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/select_by_single_feature_performance_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/smart_correlation_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/unseen_reducer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/selector/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/trainer.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/class_weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/combined_weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/exponential_weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/linear_weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/noop_weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/sigmoid_weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/weights.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/weights/weights_router.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/windower/__init__.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/windower/windower.py +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer.egg-info/SOURCES.txt +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer.egg-info/dependency_links.txt +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer.egg-info/not-zip-safe +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer.egg-info/requires.txt +0 -0
- {wavetrainer-0.0.41 → wavetrainer-0.0.42}/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.42',
|
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,6 +1,6 @@
|
|
1
1
|
"""The selector class."""
|
2
2
|
|
3
|
-
# pylint: disable=too-many-locals
|
3
|
+
# pylint: disable=too-many-locals,line-too-long
|
4
4
|
import functools
|
5
5
|
import json
|
6
6
|
import logging
|
@@ -59,12 +59,12 @@ class Selector(Params, Fit):
|
|
59
59
|
raise ValueError("y is not a series.")
|
60
60
|
if len(df.columns) <= 1:
|
61
61
|
return self
|
62
|
-
|
63
|
-
|
62
|
+
print(
|
63
|
+
f"Performing feature selection with {self._steps} steps and a total ratio of {self._feature_ratio}"
|
64
|
+
)
|
64
65
|
current_features = df.columns.values.tolist()
|
65
|
-
self._model.fit(df, y=y, w=w, eval_x=eval_x, eval_y=eval_y)
|
66
66
|
|
67
|
-
def set_current_features():
|
67
|
+
def set_current_features(required_features: int):
|
68
68
|
nonlocal current_features
|
69
69
|
feature_importances = self._model.feature_importances
|
70
70
|
if not feature_importances:
|
@@ -80,24 +80,27 @@ class Selector(Params, Fit):
|
|
80
80
|
)
|
81
81
|
if not current_features:
|
82
82
|
current_features = [list(feature_importances.keys())[0]]
|
83
|
+
current_features = current_features[:required_features]
|
83
84
|
|
84
|
-
|
85
|
+
n_features = len(current_features)
|
86
|
+
for i in range(self._steps):
|
85
87
|
print(
|
86
88
|
f"Recursive Feature Elimination Step {i}, current features: {len(current_features)}"
|
87
89
|
)
|
88
90
|
ratio_diff = 1.0 - self._feature_ratio
|
89
|
-
ratio_step = ratio_diff / float(
|
91
|
+
ratio_step = ratio_diff / float(self._steps)
|
90
92
|
current_ratio = 1.0 - (ratio_step * i)
|
91
93
|
n_features = max(1, int(len(df.columns) * current_ratio))
|
92
94
|
if n_features >= len(current_features):
|
93
95
|
continue
|
94
|
-
|
96
|
+
|
97
|
+
self._model.fit(df, y=y, w=w, eval_x=eval_x, eval_y=eval_y)
|
98
|
+
set_current_features(n_features)
|
95
99
|
print(f"Reduced features to {len(current_features)}")
|
96
100
|
df = df[current_features]
|
97
101
|
if eval_x is not None:
|
98
102
|
eval_x = eval_x[current_features]
|
99
|
-
|
100
|
-
set_current_features()
|
103
|
+
|
101
104
|
self._selector = current_features
|
102
105
|
|
103
106
|
return self
|
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
|
{wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/catboost_classifier_wrap.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/model/catboost/catboost_regressor_wrap.py
RENAMED
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
|
{wavetrainer-0.0.41 → wavetrainer-0.0.42}/wavetrainer/reducer/non_categorical_numeric_columns.py
RENAMED
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
|