wavetrainer 0.0.32__tar.gz → 0.0.34__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 (61) hide show
  1. {wavetrainer-0.0.32/wavetrainer.egg-info → wavetrainer-0.0.34}/PKG-INFO +1 -1
  2. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/setup.py +1 -1
  3. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/__init__.py +1 -1
  4. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/catboost_model.py +1 -0
  5. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/correlation_reducer.py +16 -0
  6. wavetrainer-0.0.34/wavetrainer/reducer/non_categorical_numeric_columns.py +19 -0
  7. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/smart_correlation_reducer.py +16 -0
  8. {wavetrainer-0.0.32 → wavetrainer-0.0.34/wavetrainer.egg-info}/PKG-INFO +1 -1
  9. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer.egg-info/SOURCES.txt +1 -0
  10. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/LICENSE +0 -0
  11. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/MANIFEST.in +0 -0
  12. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/README.md +0 -0
  13. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/requirements.txt +0 -0
  14. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/setup.cfg +0 -0
  15. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/tests/__init__.py +0 -0
  16. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/tests/model/__init__.py +0 -0
  17. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/tests/model/catboost_kwargs_test.py +0 -0
  18. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/tests/trainer_test.py +0 -0
  19. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/calibrator/__init__.py +0 -0
  20. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/calibrator/calibrator.py +0 -0
  21. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/calibrator/calibrator_router.py +0 -0
  22. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/calibrator/mapie_calibrator.py +0 -0
  23. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/calibrator/vennabers_calibrator.py +0 -0
  24. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/create.py +0 -0
  25. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/exceptions.py +0 -0
  26. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/fit.py +0 -0
  27. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/__init__.py +0 -0
  28. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/catboost_classifier_wrap.py +0 -0
  29. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/catboost_kwargs.py +0 -0
  30. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/catboost_regressor_wrap.py +0 -0
  31. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/model.py +0 -0
  32. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/model_router.py +0 -0
  33. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model/tabpfn_model.py +0 -0
  34. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/model_type.py +0 -0
  35. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/params.py +0 -0
  36. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/__init__.py +0 -0
  37. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/base_selector_reducer.py +0 -0
  38. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/combined_reducer.py +0 -0
  39. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/constant_reducer.py +0 -0
  40. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/duplicate_reducer.py +0 -0
  41. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/nonnumeric_reducer.py +0 -0
  42. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/reducer.py +0 -0
  43. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/reducer/unseen_reducer.py +0 -0
  44. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/selector/__init__.py +0 -0
  45. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/selector/selector.py +0 -0
  46. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/trainer.py +0 -0
  47. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/__init__.py +0 -0
  48. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/class_weights.py +0 -0
  49. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/combined_weights.py +0 -0
  50. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/exponential_weights.py +0 -0
  51. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/linear_weights.py +0 -0
  52. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/noop_weights.py +0 -0
  53. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/sigmoid_weights.py +0 -0
  54. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/weights.py +0 -0
  55. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/weights/weights_router.py +0 -0
  56. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/windower/__init__.py +0 -0
  57. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer/windower/windower.py +0 -0
  58. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer.egg-info/dependency_links.txt +0 -0
  59. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer.egg-info/not-zip-safe +0 -0
  60. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/wavetrainer.egg-info/requires.txt +0 -0
  61. {wavetrainer-0.0.32 → wavetrainer-0.0.34}/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.32
3
+ Version: 0.0.34
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.32',
26
+ version='0.0.34',
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.32"
5
+ __VERSION__ = "0.0.34"
6
6
  __all__ = ("create",)
@@ -216,6 +216,7 @@ class CatboostModel(Model):
216
216
  iterations = (
217
217
  best_iteration if best_iteration is not None else self._iterations
218
218
  )
219
+ logging.info("Creating catboost model with depth %d", self._depth)
219
220
  match self._model_type:
220
221
  case ModelType.BINARY:
221
222
  catboost = CatBoostClassifierWrapper(
@@ -1,10 +1,15 @@
1
1
  """A reducer that removes correlation features."""
2
2
 
3
+ # pylint: disable=too-many-arguments,too-many-positional-arguments
4
+ from typing import Self
5
+
3
6
  import optuna
4
7
  import pandas as pd
5
8
  from feature_engine.selection import DropCorrelatedFeatures
6
9
 
7
10
  from .base_selector_reducer import BaseSelectorReducer
11
+ from .non_categorical_numeric_columns import \
12
+ find_non_categorical_numeric_columns
8
13
 
9
14
  _CORRELATION_REDUCER_FILENAME = "correlation_reducer.joblib"
10
15
  _CORRELATION_REDUCER_THRESHOLD = "correlation_reducer_threshold"
@@ -34,3 +39,14 @@ class CorrelationReducer(BaseSelectorReducer):
34
39
  self._correlation_selector.threshold = trial.suggest_float(
35
40
  _CORRELATION_REDUCER_THRESHOLD, 0.1, 0.9
36
41
  )
42
+
43
+ def fit(
44
+ self,
45
+ df: pd.DataFrame,
46
+ y: pd.Series | pd.DataFrame | None = None,
47
+ w: pd.Series | None = None,
48
+ eval_x: pd.DataFrame | None = None,
49
+ eval_y: pd.Series | pd.DataFrame | None = None,
50
+ ) -> Self:
51
+ self._correlation_selector.variables = find_non_categorical_numeric_columns(df)
52
+ return super().fit(df, y=y, w=w, eval_x=eval_x, eval_y=eval_y)
@@ -0,0 +1,19 @@
1
+ """A helper function for retrieving numeric columns without categoricals."""
2
+
3
+ import numpy as np
4
+ import pandas as pd
5
+
6
+
7
+ def find_non_categorical_numeric_columns(df: pd.DataFrame) -> list[str]:
8
+ """
9
+ Finds numeric columns in a Pandas DataFrame that are not categorical.
10
+
11
+ Args:
12
+ df (pd.DataFrame): The input DataFrame.
13
+
14
+ Returns:
15
+ list: A list of column names that are numeric and not categorical.
16
+ """
17
+ numeric_cols = set(df.select_dtypes(include=np.number).columns.tolist())
18
+ categorical_cols = set(df.select_dtypes(include="category").columns.tolist())
19
+ return list(numeric_cols.difference(categorical_cols))
@@ -1,10 +1,15 @@
1
1
  """A reducer that removes correlation features via further heuristics."""
2
2
 
3
+ # pylint: disable=too-many-arguments,too-many-positional-arguments
4
+ from typing import Self
5
+
3
6
  import optuna
4
7
  import pandas as pd
5
8
  from feature_engine.selection import SmartCorrelatedSelection
6
9
 
7
10
  from .base_selector_reducer import BaseSelectorReducer
11
+ from .non_categorical_numeric_columns import \
12
+ find_non_categorical_numeric_columns
8
13
 
9
14
  _SMART_CORRELATION_REDUCER_FILENAME = "smart_correlation_reducer.joblib"
10
15
  _SMART_CORRELATION_REDUCER_THRESHOLD = "smart_correlation_reducer_threshold"
@@ -30,3 +35,14 @@ class SmartCorrelationReducer(BaseSelectorReducer):
30
35
  self._correlation_selector.threshold = trial.suggest_float(
31
36
  _SMART_CORRELATION_REDUCER_THRESHOLD, 0.1, 0.9
32
37
  )
38
+
39
+ def fit(
40
+ self,
41
+ df: pd.DataFrame,
42
+ y: pd.Series | pd.DataFrame | None = None,
43
+ w: pd.Series | None = None,
44
+ eval_x: pd.DataFrame | None = None,
45
+ eval_y: pd.Series | pd.DataFrame | None = None,
46
+ ) -> Self:
47
+ self._correlation_selector.variables = find_non_categorical_numeric_columns(df)
48
+ return super().fit(df, y=y, w=w, eval_x=eval_x, eval_y=eval_y)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wavetrainer
3
- Version: 0.0.32
3
+ Version: 0.0.34
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
@@ -39,6 +39,7 @@ wavetrainer/reducer/combined_reducer.py
39
39
  wavetrainer/reducer/constant_reducer.py
40
40
  wavetrainer/reducer/correlation_reducer.py
41
41
  wavetrainer/reducer/duplicate_reducer.py
42
+ wavetrainer/reducer/non_categorical_numeric_columns.py
42
43
  wavetrainer/reducer/nonnumeric_reducer.py
43
44
  wavetrainer/reducer/reducer.py
44
45
  wavetrainer/reducer/smart_correlation_reducer.py
File without changes
File without changes
File without changes
File without changes