deskit 1.3__tar.gz → 1.3.1__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 (33) hide show
  1. {deskit-1.3/src/deskit.egg-info → deskit-1.3.1}/PKG-INFO +3 -1
  2. {deskit-1.3 → deskit-1.3.1}/README.md +2 -0
  3. {deskit-1.3 → deskit-1.3.1}/pyproject.toml +1 -1
  4. {deskit-1.3 → deskit-1.3.1}/src/deskit/base/knnbase.py +12 -3
  5. {deskit-1.3 → deskit-1.3.1/src/deskit.egg-info}/PKG-INFO +3 -1
  6. {deskit-1.3 → deskit-1.3.1}/LICENSE +0 -0
  7. {deskit-1.3 → deskit-1.3.1}/setup.cfg +0 -0
  8. {deskit-1.3 → deskit-1.3.1}/src/deskit/__init__.py +0 -0
  9. {deskit-1.3 → deskit-1.3.1}/src/deskit/_config.py +0 -0
  10. {deskit-1.3 → deskit-1.3.1}/src/deskit/base/__init__.py +0 -0
  11. {deskit-1.3 → deskit-1.3.1}/src/deskit/base/base.py +0 -0
  12. {deskit-1.3 → deskit-1.3.1}/src/deskit/base/predictbase.py +0 -0
  13. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/__init__.py +0 -0
  14. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/dewsi.py +0 -0
  15. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/dewsiv.py +0 -0
  16. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/dewst.py +0 -0
  17. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/dewsu.py +0 -0
  18. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/dewsv.py +0 -0
  19. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/knorae.py +0 -0
  20. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/knoraiu.py +0 -0
  21. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/knorau.py +0 -0
  22. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/lwsei.py +0 -0
  23. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/lwseu.py +0 -0
  24. {deskit-1.3 → deskit-1.3.1}/src/deskit/des/ola.py +0 -0
  25. {deskit-1.3 → deskit-1.3.1}/src/deskit/metrics.py +0 -0
  26. {deskit-1.3 → deskit-1.3.1}/src/deskit/neighbors.py +0 -0
  27. {deskit-1.3 → deskit-1.3.1}/src/deskit/norms.py +0 -0
  28. {deskit-1.3 → deskit-1.3.1}/src/deskit/router.py +0 -0
  29. {deskit-1.3 → deskit-1.3.1}/src/deskit/utils.py +0 -0
  30. {deskit-1.3 → deskit-1.3.1}/src/deskit.egg-info/SOURCES.txt +0 -0
  31. {deskit-1.3 → deskit-1.3.1}/src/deskit.egg-info/dependency_links.txt +0 -0
  32. {deskit-1.3 → deskit-1.3.1}/src/deskit.egg-info/requires.txt +0 -0
  33. {deskit-1.3 → deskit-1.3.1}/src/deskit.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deskit
3
- Version: 1.3
3
+ Version: 1.3.1
4
4
  Summary: A Python library for Dynamic Ensemble Selection
5
5
  Author: Tikhon Vodyanov
6
6
  License-Expression: MIT
@@ -251,6 +251,8 @@ router = DEWSU(task="regression", metric=pinball, mode="min", k=20)
251
251
 
252
252
  Built-in metric strings: `accuracy`, `mae`, `mse`, `rmse`, `log_loss`, `prob_correct`.
253
253
 
254
+ Alternatively, pass `metric=None` and populate the dictionary passed to fit() with your own per-sample computed scores instead of predictions.
255
+
254
256
  ---
255
257
 
256
258
  ## Data types
@@ -220,6 +220,8 @@ router = DEWSU(task="regression", metric=pinball, mode="min", k=20)
220
220
 
221
221
  Built-in metric strings: `accuracy`, `mae`, `mse`, `rmse`, `log_loss`, `prob_correct`.
222
222
 
223
+ Alternatively, pass `metric=None` and populate the dictionary passed to fit() with your own per-sample computed scores instead of predictions.
224
+
223
225
  ---
224
226
 
225
227
  ## Data types
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "deskit"
7
- version = "1.3"
7
+ version = "1.3.1"
8
8
  description = "A Python library for Dynamic Ensemble Selection"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -49,12 +49,21 @@ class KNNBase(PredictBase, BaseRouter):
49
49
  This method expects pre-validated numpy arrays.
50
50
  """
51
51
  self.models = list(preds_dict.keys())
52
- n_val = len(y)
53
- n_models = len(self.models)
52
+ n_val = len(y)
53
+ n_models = len(self.models)
54
54
  self.matrix = np.zeros((n_val, n_models))
55
55
 
56
56
  for j, name in enumerate(self.models):
57
- scores = self._compute_scores(y, preds_dict[name])
57
+ if self.metric is not None:
58
+ scores = self._compute_scores(y, preds_dict[name])
59
+ else:
60
+ scores = np.asarray(preds_dict[name])
61
+ # Validate shape
62
+ if scores.ndim != 1 or len(scores) != n_val:
63
+ raise ValueError(
64
+ f"Raw scores for model '{name}' must be a 1D array of length {n_val}; "
65
+ f"got shape {scores.shape}."
66
+ )
58
67
  self.matrix[:, j] = scores if self.mode == 'max' else -scores
59
68
 
60
69
  if self.task == 'classification':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deskit
3
- Version: 1.3
3
+ Version: 1.3.1
4
4
  Summary: A Python library for Dynamic Ensemble Selection
5
5
  Author: Tikhon Vodyanov
6
6
  License-Expression: MIT
@@ -251,6 +251,8 @@ router = DEWSU(task="regression", metric=pinball, mode="min", k=20)
251
251
 
252
252
  Built-in metric strings: `accuracy`, `mae`, `mse`, `rmse`, `log_loss`, `prob_correct`.
253
253
 
254
+ Alternatively, pass `metric=None` and populate the dictionary passed to fit() with your own per-sample computed scores instead of predictions.
255
+
254
256
  ---
255
257
 
256
258
  ## Data types
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