dragon-ml-toolbox 1.4.6__py3-none-any.whl → 1.4.7__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dragon-ml-toolbox
3
- Version: 1.4.6
3
+ Version: 1.4.7
4
4
  Summary: A collection of tools for data science and machine learning projects
5
5
  Author-email: Karl Loza <luigiloza@gmail.com>
6
6
  License-Expression: MIT
@@ -1,5 +1,5 @@
1
- dragon_ml_toolbox-1.4.6.dist-info/licenses/LICENSE,sha256=2uUFNy7D0TLgHim1K5s3DIJ4q_KvxEXVilnU20cWliY,1066
2
- dragon_ml_toolbox-1.4.6.dist-info/licenses/LICENSE-THIRD-PARTY.md,sha256=jDnniT0tgD0uw1NpjibsPF-qK3wmOKgTykLG2iNQU7E,1840
1
+ dragon_ml_toolbox-1.4.7.dist-info/licenses/LICENSE,sha256=2uUFNy7D0TLgHim1K5s3DIJ4q_KvxEXVilnU20cWliY,1066
2
+ dragon_ml_toolbox-1.4.7.dist-info/licenses/LICENSE-THIRD-PARTY.md,sha256=jDnniT0tgD0uw1NpjibsPF-qK3wmOKgTykLG2iNQU7E,1840
3
3
  ml_tools/MICE_imputation.py,sha256=JMe9hyidJadFTHW7AHkNQ_fduTxH6CEh7_Ouy2LhCOQ,11096
4
4
  ml_tools/VIF_factor.py,sha256=HEBsLJy_qSDaPw1Btha5B7omxN4wjJXg-sqoetCjCJw,10016
5
5
  ml_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -8,12 +8,12 @@ ml_tools/datasetmaster.py,sha256=EFUEX-tqq94Ak1rXXYR-XaX85olrxvF2EuytdzUK7y0,291
8
8
  ml_tools/ensemble_learning.py,sha256=xJyEbkFObm5YX6DmDW10FOUjSeYeBRhHLvncWZv_uTo,37319
9
9
  ml_tools/handle_excel.py,sha256=ZJui5__0rc2T8UGHTheqZGhKmdVZ7Q2I54IoYCjAqJw,12612
10
10
  ml_tools/logger.py,sha256=ZTtUB9HTkNs5zHTdYRKNbKADjUkuObsF7s8U5pNnVRA,4716
11
- ml_tools/particle_swarm_optimization.py,sha256=ByCYFV8PWP9CYGZ0wblphtmDLRbSezY9a0_fGqGWQV4,21891
11
+ ml_tools/particle_swarm_optimization.py,sha256=wRk5ni6pPnh-tqS5t9M5TAjg8GUSGFxp-u09FSIviOM,22213
12
12
  ml_tools/pytorch_models.py,sha256=bpWZsrSwCvHJQkR6UfoPpElsMv9AvmiNErNHC8NYB_I,10132
13
13
  ml_tools/trainer.py,sha256=WAZ4EdrZuTOAnGXRWV3XcLNce4s7EKGf2-qchLC08Ik,15702
14
14
  ml_tools/utilities.py,sha256=Ir3Yw4SuWMLKnbnl4Qzudn5U8CgcQ7zMtNqcllZMHeM,15682
15
15
  ml_tools/vision_helpers.py,sha256=idQ-Ugp1IdsvwXiYyhYa9G3rTRTm37YRpkQDLEpANHM,7701
16
- dragon_ml_toolbox-1.4.6.dist-info/METADATA,sha256=SDqa8Cz72fH669cfuMIcVX02SC0DeK0UmKU-fAPx4AU,2516
17
- dragon_ml_toolbox-1.4.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
18
- dragon_ml_toolbox-1.4.6.dist-info/top_level.txt,sha256=wm-oxax3ciyez6VoO4zsFd-gSok2VipYXnbg3TH9PtU,9
19
- dragon_ml_toolbox-1.4.6.dist-info/RECORD,,
16
+ dragon_ml_toolbox-1.4.7.dist-info/METADATA,sha256=Z_ai6XNFd8a_sf9CD73kh3mgVJlgVhcajXiJhkEivsM,2516
17
+ dragon_ml_toolbox-1.4.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
18
+ dragon_ml_toolbox-1.4.7.dist-info/top_level.txt,sha256=wm-oxax3ciyez6VoO4zsFd-gSok2VipYXnbg3TH9PtU,9
19
+ dragon_ml_toolbox-1.4.7.dist-info/RECORD,,
@@ -8,6 +8,7 @@ from sklearn.base import ClassifierMixin
8
8
  from typing import Literal, Union, Tuple, Dict, Optional
9
9
  import polars as pl
10
10
  from functools import partial
11
+ from copy import deepcopy
11
12
  from .utilities import sanitize_filename, _script_info, threshold_binary_values, deserialize_object, list_files_by_extension
12
13
 
13
14
 
@@ -210,18 +211,25 @@ def run_pso(lower_boundaries: list[float],
210
211
  -----
211
212
  - PSO minimizes the objective function by default; if maximization is desired, it should be handled inside the ObjectiveFunction.
212
213
  """
214
+ # set local deep copies to prevent in place list modification
215
+ local_lower_boundaries = deepcopy(lower_boundaries)
216
+ local_upper_boundaries = deepcopy(upper_boundaries)
217
+
213
218
  # Append binary boundaries
214
219
  binary_number = objective_function.binary_features
215
220
  if auto_binary_boundaries and binary_number > 0:
216
- lower_boundaries.extend([0] * binary_number)
217
- upper_boundaries.extend([1] * binary_number)
221
+ local_lower_boundaries.extend([0] * binary_number)
222
+ local_upper_boundaries.extend([1] * binary_number)
223
+
224
+ # Set the total length of features
225
+ size_of_features = len(local_lower_boundaries)
218
226
 
219
- lower, upper = _set_boundaries(lower_boundaries, upper_boundaries)
227
+ lower, upper = _set_boundaries(local_lower_boundaries, local_upper_boundaries)
220
228
 
221
229
  # feature names
222
230
  if feature_names is None and objective_function.feature_names is not None:
223
231
  feature_names = objective_function.feature_names
224
- names = _set_feature_names(size=len(lower_boundaries), names=feature_names)
232
+ names = _set_feature_names(size=size_of_features, names=feature_names)
225
233
 
226
234
  # target name
227
235
  if target_name is None and objective_function.target_name is not None:
@@ -263,7 +271,7 @@ def run_pso(lower_boundaries: list[float],
263
271
  return best_features_named, best_target_named
264
272
  else:
265
273
  all_best_targets = list()
266
- all_best_features = [[] for _ in range(len(lower_boundaries))]
274
+ all_best_features = [[] for _ in range(size_of_features)]
267
275
  for _ in range(post_hoc_analysis):
268
276
  best_features, best_target, *_ = _pso(**arguments)
269
277
  # best_features, best_target, _particle_positions, _target_values_per_position = _pso(**arguments)