dragon-ml-toolbox 20.0.0__tar.gz → 20.1.0__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 (184) hide show
  1. {dragon_ml_toolbox-20.0.0/dragon_ml_toolbox.egg-info → dragon_ml_toolbox-20.1.0}/PKG-INFO +1 -1
  2. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0/dragon_ml_toolbox.egg-info}/PKG-INFO +1 -1
  3. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/dragon_ml_toolbox.egg-info/SOURCES.txt +1 -0
  4. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/MICE/_dragon_mice.py +23 -19
  5. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_chain/__init__.py +5 -0
  6. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_chain/_chaining_tools.py +3 -6
  7. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_chain/_dragon_chain.py +1 -4
  8. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_chain/_imprimir.py +1 -0
  9. dragon_ml_toolbox-20.1.0/ml_tools/ML_chain/_update_schema.py +96 -0
  10. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/keys/_keys.py +5 -0
  11. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/schema/_feature_schema.py +1 -1
  12. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/pyproject.toml +1 -1
  13. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/LICENSE +0 -0
  14. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/LICENSE-THIRD-PARTY.md +0 -0
  15. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/README.md +0 -0
  16. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/dragon_ml_toolbox.egg-info/dependency_links.txt +0 -0
  17. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/dragon_ml_toolbox.egg-info/requires.txt +0 -0
  18. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/dragon_ml_toolbox.egg-info/top_level.txt +0 -0
  19. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_cleaning/__init__.py +0 -0
  20. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_cleaning/_basic_clean.py +0 -0
  21. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_cleaning/_clean_tools.py +0 -0
  22. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_cleaning/_dragon_cleaner.py +0 -0
  23. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_cleaning/_imprimir.py +0 -0
  24. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_engineering/__init__.py +0 -0
  25. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_engineering/_dragon_engineering.py +0 -0
  26. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_engineering/_imprimir.py +0 -0
  27. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ETL_engineering/_transforms.py +0 -0
  28. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/GUI_tools/_GUI_tools.py +0 -0
  29. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/GUI_tools/__init__.py +0 -0
  30. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/GUI_tools/_imprimir.py +0 -0
  31. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/IO_tools/_IO_loggers.py +0 -0
  32. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/IO_tools/_IO_save_load.py +0 -0
  33. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/IO_tools/_IO_utils.py +0 -0
  34. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/IO_tools/__init__.py +0 -0
  35. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/IO_tools/_imprimir.py +0 -0
  36. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/MICE/_MICE_imputation.py +0 -0
  37. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/MICE/__init__.py +0 -0
  38. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/MICE/_imprimir.py +0 -0
  39. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_callbacks/__init__.py +0 -0
  40. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_callbacks/_base.py +0 -0
  41. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_callbacks/_checkpoint.py +0 -0
  42. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_callbacks/_early_stop.py +0 -0
  43. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_callbacks/_imprimir.py +0 -0
  44. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_callbacks/_scheduler.py +0 -0
  45. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/__init__.py +0 -0
  46. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/_base_model_config.py +0 -0
  47. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/_finalize.py +0 -0
  48. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/_imprimir.py +0 -0
  49. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/_metrics.py +0 -0
  50. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/_models.py +0 -0
  51. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_configuration/_training.py +0 -0
  52. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_datasetmaster/__init__.py +0 -0
  53. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_datasetmaster/_base_datasetmaster.py +0 -0
  54. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_datasetmaster/_datasetmaster.py +0 -0
  55. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_datasetmaster/_imprimir.py +0 -0
  56. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_datasetmaster/_sequence_datasetmaster.py +0 -0
  57. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_datasetmaster/_vision_datasetmaster.py +0 -0
  58. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/__init__.py +0 -0
  59. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_classification.py +0 -0
  60. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_feature_importance.py +0 -0
  61. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_imprimir.py +0 -0
  62. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_loss.py +0 -0
  63. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_regression.py +0 -0
  64. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_sequence.py +0 -0
  65. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation/_vision.py +0 -0
  66. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation_captum/_ML_evaluation_captum.py +0 -0
  67. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation_captum/__init__.py +0 -0
  68. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_evaluation_captum/_imprimir.py +0 -0
  69. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_finalize_handler/_ML_finalize_handler.py +0 -0
  70. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_finalize_handler/__init__.py +0 -0
  71. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_finalize_handler/_imprimir.py +0 -0
  72. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference/__init__.py +0 -0
  73. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference/_base_inference.py +0 -0
  74. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference/_chain_inference.py +0 -0
  75. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference/_dragon_inference.py +0 -0
  76. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference/_imprimir.py +0 -0
  77. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference/_multi_inference.py +0 -0
  78. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference_sequence/__init__.py +0 -0
  79. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference_sequence/_imprimir.py +0 -0
  80. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference_sequence/_sequence_inference.py +0 -0
  81. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference_vision/__init__.py +0 -0
  82. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference_vision/_imprimir.py +0 -0
  83. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_inference_vision/_vision_inference.py +0 -0
  84. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/__init__.py +0 -0
  85. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_advanced_models.py +0 -0
  86. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_base_mlp_attention.py +0 -0
  87. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_base_save_load.py +0 -0
  88. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_dragon_tabular.py +0 -0
  89. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_imprimir.py +0 -0
  90. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_mlp_attention.py +0 -0
  91. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models/_models_advanced_helpers.py +0 -0
  92. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_sequence/__init__.py +0 -0
  93. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_sequence/_imprimir.py +0 -0
  94. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_sequence/_sequence_models.py +0 -0
  95. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_vision/__init__.py +0 -0
  96. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_vision/_base_wrapper.py +0 -0
  97. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_vision/_image_classification.py +0 -0
  98. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_vision/_image_segmentation.py +0 -0
  99. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_vision/_imprimir.py +0 -0
  100. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_models_vision/_object_detection.py +0 -0
  101. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_optimization/__init__.py +0 -0
  102. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_optimization/_imprimir.py +0 -0
  103. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_optimization/_multi_dragon.py +0 -0
  104. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_optimization/_single_dragon.py +0 -0
  105. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_optimization/_single_manual.py +0 -0
  106. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_scaler/_ML_scaler.py +0 -0
  107. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_scaler/__init__.py +0 -0
  108. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_scaler/_imprimir.py +0 -0
  109. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_trainer/__init__.py +0 -0
  110. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_trainer/_base_trainer.py +0 -0
  111. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_trainer/_dragon_detection_trainer.py +0 -0
  112. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_trainer/_dragon_sequence_trainer.py +0 -0
  113. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_trainer/_dragon_trainer.py +0 -0
  114. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_trainer/_imprimir.py +0 -0
  115. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_utilities/__init__.py +0 -0
  116. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_utilities/_artifact_finder.py +0 -0
  117. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_utilities/_imprimir.py +0 -0
  118. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_utilities/_inspection.py +0 -0
  119. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_utilities/_train_tools.py +0 -0
  120. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_vision_transformers/__init__.py +0 -0
  121. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_vision_transformers/_core_transforms.py +0 -0
  122. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_vision_transformers/_imprimir.py +0 -0
  123. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ML_vision_transformers/_offline_augmentation.py +0 -0
  124. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/PSO_optimization/_PSO.py +0 -0
  125. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/PSO_optimization/__init__.py +0 -0
  126. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/PSO_optimization/_imprimir.py +0 -0
  127. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/SQL/__init__.py +0 -0
  128. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/SQL/_dragon_SQL.py +0 -0
  129. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/SQL/_imprimir.py +0 -0
  130. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/VIF/_VIF_factor.py +0 -0
  131. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/VIF/__init__.py +0 -0
  132. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/VIF/_imprimir.py +0 -0
  133. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/__init__.py +0 -0
  134. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/_core/__init__.py +0 -0
  135. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/_core/_logger.py +0 -0
  136. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/_core/_schema_load_ops.py +0 -0
  137. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/_core/_script_info.py +0 -0
  138. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/constants.py +0 -0
  139. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/__init__.py +1 -1
  140. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/_analysis.py +0 -0
  141. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/_cleaning.py +0 -0
  142. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/_features.py +0 -0
  143. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/_imprimir.py +1 -1
  144. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/_plotting.py +0 -0
  145. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/data_exploration/_schema_ops.py +0 -0
  146. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_evaluation/__init__.py +0 -0
  147. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_evaluation/_ensemble_evaluation.py +0 -0
  148. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_evaluation/_imprimir.py +0 -0
  149. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_inference/__init__.py +0 -0
  150. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_inference/_ensemble_inference.py +0 -0
  151. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_inference/_imprimir.py +0 -0
  152. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_learning/__init__.py +0 -0
  153. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_learning/_ensemble_learning.py +0 -0
  154. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/ensemble_learning/_imprimir.py +0 -0
  155. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/excel_handler/__init__.py +0 -0
  156. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/excel_handler/_excel_handler.py +0 -0
  157. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/excel_handler/_imprimir.py +0 -0
  158. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/keys/__init__.py +0 -0
  159. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/keys/_imprimir.py +0 -0
  160. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/math_utilities/__init__.py +0 -0
  161. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/math_utilities/_imprimir.py +0 -0
  162. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/math_utilities/_math_utilities.py +0 -0
  163. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/optimization_tools/__init__.py +0 -0
  164. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/optimization_tools/_imprimir.py +0 -0
  165. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/optimization_tools/_optimization_bounds.py +0 -0
  166. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/optimization_tools/_optimization_plots.py +0 -0
  167. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/path_manager/__init__.py +0 -0
  168. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/path_manager/_dragonmanager.py +0 -0
  169. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/path_manager/_imprimir.py +0 -0
  170. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/path_manager/_path_tools.py +0 -0
  171. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/plot_fonts/__init__.py +0 -0
  172. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/plot_fonts/_imprimir.py +0 -0
  173. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/plot_fonts/_plot_fonts.py +0 -0
  174. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/schema/__init__.py +0 -0
  175. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/schema/_gui_schema.py +0 -0
  176. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/schema/_imprimir.py +0 -0
  177. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/serde/__init__.py +0 -0
  178. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/serde/_imprimir.py +0 -0
  179. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/serde/_serde.py +0 -0
  180. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/utilities/__init__.py +0 -0
  181. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/utilities/_imprimir.py +0 -0
  182. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/utilities/_utility_save_load.py +0 -0
  183. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/ml_tools/utilities/_utility_tools.py +0 -0
  184. {dragon_ml_toolbox-20.0.0 → dragon_ml_toolbox-20.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dragon-ml-toolbox
3
- Version: 20.0.0
3
+ Version: 20.1.0
4
4
  Summary: Complete pipelines and helper tools for data science and machine learning projects.
5
5
  Author-email: Karl Luigi Loza Vidaurre <luigiloza@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dragon-ml-toolbox
3
- Version: 20.0.0
3
+ Version: 20.1.0
4
4
  Summary: Complete pipelines and helper tools for data science and machine learning projects.
5
5
  Author-email: Karl Luigi Loza Vidaurre <luigiloza@gmail.com>
6
6
  License-Expression: MIT
@@ -40,6 +40,7 @@ ml_tools/ML_chain/__init__.py
40
40
  ml_tools/ML_chain/_chaining_tools.py
41
41
  ml_tools/ML_chain/_dragon_chain.py
42
42
  ml_tools/ML_chain/_imprimir.py
43
+ ml_tools/ML_chain/_update_schema.py
43
44
  ml_tools/ML_configuration/__init__.py
44
45
  ml_tools/ML_configuration/_base_model_config.py
45
46
  ml_tools/ML_configuration/_finalize.py
@@ -197,7 +197,7 @@ class DragonMICE:
197
197
  _LOGGER.error(f"Index mismatch in dataset {subname}")
198
198
  raise ValueError()
199
199
 
200
- _LOGGER.info("Schema-based MICE imputation complete.")
200
+ _LOGGER.info("⬅️ Schema-based MICE imputation complete.")
201
201
 
202
202
  return kernel, imputed_datasets, imputed_dataset_names
203
203
 
@@ -237,9 +237,6 @@ class DragonMICE:
237
237
  # We pass an empty DF as 'targets' to save_imputed_datasets to prevent duplication.
238
238
  df_input = df
239
239
  df_targets_to_save = pd.DataFrame(index=df.index)
240
-
241
- # Monitor all columns that had NaNs
242
- imputed_column_names = [col for col in df.columns if df[col].isna().any()]
243
240
  else:
244
241
  # Explicitly cast tuple to list for Pandas indexing
245
242
  feature_cols = list(self._schema.feature_names)
@@ -253,8 +250,9 @@ class DragonMICE:
253
250
  df_input = df[feature_cols]
254
251
  # Drop features to get targets (more robust than explicit selection if targets vary)
255
252
  df_targets_to_save = df.drop(columns=feature_cols)
256
-
257
- imputed_column_names = _get_na_column_names(df=df_input) # type: ignore
253
+
254
+ # Monitor all columns that had NaNs
255
+ imputed_column_names = [col for col in df_input.columns if df_input[col].isna().any()]
258
256
 
259
257
  # Run core logic
260
258
  kernel, imputed_datasets, imputed_dataset_names = self._run_mice(df=df_input, df_name=df_name) # type: ignore
@@ -316,35 +314,41 @@ def get_convergence_diagnostic(kernel: mf.ImputationKernel, imputed_dataset_name
316
314
 
317
315
  # iterate over each imputed dataset
318
316
  for dataset_id, imputed_dataset_name in zip(range(dataset_count), imputed_dataset_names):
319
- #Check directory for current dataset
320
317
  dataset_file_dir = f"Convergence_Metrics_{imputed_dataset_name}"
321
318
  local_save_dir = make_fullpath(input_path=root_path / dataset_file_dir, make=True)
322
319
 
323
- for feature_name in column_names:
324
- means_per_iteration = []
325
- for iteration in range(iterations_cap):
326
- current_imputed = kernel.complete_data(dataset=dataset_id, iteration=iteration)
327
- means_per_iteration.append(np.mean(current_imputed[feature_name])) # type: ignore
328
-
320
+ # 1. Pre-calculate means for all features across all iterations
321
+ # Structure: {feature_name: [mean_iter_0, mean_iter_1, ...]}
322
+ history = {col: [] for col in column_names}
323
+
324
+ for iteration in range(iterations_cap):
325
+ # Resolve dataset ONLY ONCE per iteration
326
+ current_imputed = kernel.complete_data(dataset=dataset_id, iteration=iteration)
327
+
328
+ for col in column_names:
329
+ # Fast lookup
330
+ val = np.mean(current_imputed[col])
331
+ history[col].append(val)
332
+
333
+ # 2. Plotting loop
334
+ for feature_name, means_per_iteration in history.items():
329
335
  plt.figure(figsize=(10, 8))
330
336
  plt.plot(means_per_iteration, marker='o')
331
337
  plt.xlabel("Iteration", **label_font)
332
338
  plt.ylabel("Mean of Imputed Values", **label_font)
333
339
  plt.title(f"Mean Convergence for '{feature_name}'", **label_font)
334
340
 
335
- # Adjust plot display for the X axis
336
341
  _ticks = np.arange(iterations_cap)
337
342
  _labels = np.arange(1, iterations_cap + 1)
338
- plt.xticks(ticks=_ticks, labels=_labels) # type: ignore
343
+ plt.xticks(ticks=_ticks, labels=_labels)
339
344
  plt.grid(True)
340
345
 
341
- feature_save_name = sanitize_filename(feature_name)
342
- feature_save_name = feature_save_name + ".svg"
346
+ feature_save_name = sanitize_filename(feature_name) + ".svg"
343
347
  save_path = local_save_dir / feature_save_name
344
348
  plt.savefig(save_path, bbox_inches='tight', format="svg")
345
349
  plt.close()
346
350
 
347
- _LOGGER.info(f"{dataset_file_dir} process completed.")
351
+ _LOGGER.info(f"📉 Convergence diagnostics complete.")
348
352
 
349
353
 
350
354
  # Imputed distributions
@@ -431,5 +435,5 @@ def get_imputed_distributions(kernel: mf.ImputationKernel, df_name: str, root_di
431
435
  fig = kernel.plot_imputed_distributions(variables=[feature])
432
436
  _process_figure(fig, feature)
433
437
 
434
- _LOGGER.info(f"{local_dir_name} completed.")
438
+ _LOGGER.info(f"📊 Imputed distributions complete.")
435
439
 
@@ -8,11 +8,16 @@ from ._chaining_tools import (
8
8
  prepare_chaining_dataset,
9
9
  )
10
10
 
11
+ from ._update_schema import (
12
+ derive_next_step_schema
13
+ )
14
+
11
15
  from ._imprimir import info
12
16
 
13
17
 
14
18
  __all__ = [
15
19
  "DragonChainOrchestrator",
20
+ "derive_next_step_schema",
16
21
  "augment_dataset_with_predictions",
17
22
  "augment_dataset_with_predictions_multi",
18
23
  "prepare_chaining_dataset",
@@ -5,7 +5,7 @@ from typing import Optional, Literal
5
5
 
6
6
  from ..ML_inference import DragonInferenceHandler
7
7
 
8
- from ..keys._keys import MLTaskKeys, PyTorchInferenceKeys
8
+ from ..keys._keys import MLTaskKeys, PyTorchInferenceKeys, ChainKeys
9
9
  from .._core import get_logger
10
10
 
11
11
 
@@ -23,11 +23,10 @@ def augment_dataset_with_predictions(
23
23
  handler: DragonInferenceHandler,
24
24
  dataset: pd.DataFrame,
25
25
  ground_truth_targets: list[str],
26
- prediction_col_prefix: str = "pred_",
27
26
  batch_size: int = 4096
28
27
  ) -> pd.DataFrame:
29
28
  """
30
- Uses a DragonInferenceHandler to generate predictions for a dataset and appends them as new feature columns.
29
+ Uses a DragonInferenceHandler to generate predictions for a dataset and appends them as new feature columns with a standardized prefix.
31
30
 
32
31
  This function splits the features from the ground truth targets, runs inference in batches to ensure
33
32
  memory efficiency, and returns a unified DataFrame containing:
@@ -38,8 +37,6 @@ def augment_dataset_with_predictions(
38
37
  dataset (pd.DataFrame): The input pandas DataFrame containing features and ground truth targets.
39
38
  ground_truth_targets (List[str]): A list of column names in `dataset` representing the actual targets.
40
39
  These are removed from the input features during inference and appended to the end of the result.
41
- prediction_col_prefix (str, optional): A string to prepend when creating the
42
- new prediction columns.
43
40
  batch_size (int, optional): The number of samples to process in a single inference step.
44
41
  Prevents OOM errors on large datasets. Defaults to 4096.
45
42
 
@@ -107,7 +104,7 @@ def augment_dataset_with_predictions(
107
104
  full_prediction_array = np.vstack(all_predictions)
108
105
 
109
106
  # Generate new column names
110
- new_col_names = [f"{prediction_col_prefix}{tid}" for tid in handler.target_ids]
107
+ new_col_names = [f"{ChainKeys.CHAIN_PREDICTION_PREFIX}{tid}" for tid in handler.target_ids]
111
108
 
112
109
  # Verify dimensions match
113
110
  if full_prediction_array.shape[1] != len(new_col_names):
@@ -77,18 +77,16 @@ class DragonChainOrchestrator:
77
77
  def update_with_inference(
78
78
  self,
79
79
  handler: DragonInferenceHandler,
80
- prefix: str = "pred_",
81
80
  batch_size: int = 4096
82
81
  ) -> None:
83
82
  """
84
83
  Runs inference using the provided handler on the full internal dataset and appends the results as new features.
85
84
 
86
85
  This updates the internal state of the Orchestrator. Subsequent calls to `get_training_data`
87
- will include these new prediction columns as features.
86
+ will include these new prediction columns as features with a standardized prefix.
88
87
 
89
88
  Args:
90
89
  handler (DragonInferenceHandler): The trained model handler.
91
- prefix (str): Prefix for the new prediction columns (e.g., "m1_", "step2_").
92
90
  batch_size (int): Batch size for inference.
93
91
  """
94
92
  _LOGGER.info(f"Orchestrator: Updating internal state with predictions from handler (Targets: {handler.target_ids})...")
@@ -99,7 +97,6 @@ class DragonChainOrchestrator:
99
97
  handler=handler,
100
98
  dataset=self.current_dataset,
101
99
  ground_truth_targets=self.all_targets,
102
- prediction_col_prefix=prefix,
103
100
  batch_size=batch_size
104
101
  )
105
102
 
@@ -2,6 +2,7 @@ from .._core import _imprimir_disponibles
2
2
 
3
3
  _GRUPOS = [
4
4
  "DragonChainOrchestrator",
5
+ "derive_next_step_schema",
5
6
  "augment_dataset_with_predictions",
6
7
  "augment_dataset_with_predictions_multi",
7
8
  "prepare_chaining_dataset",
@@ -0,0 +1,96 @@
1
+ from ..schema import FeatureSchema
2
+ from ..ML_inference import DragonInferenceHandler
3
+
4
+ from ..keys._keys import MLTaskKeys, ChainKeys
5
+ from .._core import get_logger
6
+
7
+
8
+ _LOGGER = get_logger("Schema Updater")
9
+
10
+
11
+ __all__ = [
12
+ "derive_next_step_schema",
13
+ ]
14
+
15
+
16
+ def derive_next_step_schema(
17
+ current_schema: FeatureSchema,
18
+ handler: DragonInferenceHandler,
19
+ verbose: bool = True
20
+ ) -> FeatureSchema:
21
+ """
22
+ Creates the FeatureSchema for the NEXT step in the chain by appending the current handler's predictions as new features.
23
+
24
+ Args:
25
+ current_schema (FeatureSchema): The current FeatureSchema.
26
+ handler (DragonInferenceHandler): The inference handler of the model trained using the current schema.
27
+
28
+ Returns:
29
+ FeatureSchema: An updated schema including new predicted features.
30
+ """
31
+ # 1. Determine New Column Names
32
+ # Match logic from _chaining_tools.py
33
+ if handler.target_ids is None:
34
+ _LOGGER.error("Handler target_ids is None; cannot derive schema.")
35
+ raise ValueError()
36
+
37
+ new_cols = [f"{ChainKeys.CHAIN_PREDICTION_PREFIX}{tid}" for tid in handler.target_ids]
38
+
39
+ # 2. Base Lists (Convert tuples to lists for mutation)
40
+ new_feature_names = list(current_schema.feature_names) + new_cols
41
+ new_cont_names = list(current_schema.continuous_feature_names)
42
+ new_cat_names = list(current_schema.categorical_feature_names)
43
+
44
+ # Copy existing maps (handle None case)
45
+ new_cat_index_map = dict(current_schema.categorical_index_map) if current_schema.categorical_index_map else {}
46
+ new_cat_mappings = dict(current_schema.categorical_mappings) if current_schema.categorical_mappings else {}
47
+
48
+ # 3. Determine Feature Type based on Task
49
+ is_categorical = False
50
+ cardinality = 0
51
+
52
+ if handler.task in [MLTaskKeys.BINARY_CLASSIFICATION, MLTaskKeys.MULTILABEL_BINARY_CLASSIFICATION]:
53
+ is_categorical = True
54
+ cardinality = 2
55
+
56
+ elif handler.task == MLTaskKeys.MULTICLASS_CLASSIFICATION:
57
+ is_categorical = True
58
+ # We rely on the class map to know the 'vocabulary' size
59
+ if handler._class_map is None:
60
+ _LOGGER.error("Handler class_map is None, cannot determine cardinality for multiclass classification model.")
61
+ raise ValueError()
62
+ cardinality = len(handler._class_map)
63
+
64
+ # 4. Append New Metadata
65
+ current_total_feats = len(current_schema.feature_names)
66
+
67
+ for i, col_name in enumerate(new_cols):
68
+ # Calculate the absolute index of this new column
69
+ # If we had 10 features (0-9), the new one is at index 10 + i
70
+ new_index = current_total_feats + i
71
+
72
+ if is_categorical:
73
+ new_cat_names.append(col_name)
74
+
75
+ # A. Update Cardinality for Embeddings
76
+ new_cat_index_map[new_index] = cardinality
77
+
78
+ # B. Create Identity Mapping (Dummy Encoding)
79
+ # Maps string representation of int back to the int.
80
+ identity_map = {str(k): k for k in range(cardinality)}
81
+ new_cat_mappings[col_name] = identity_map
82
+ else:
83
+ # Regression / Multitarget Regression
84
+ new_cont_names.append(col_name)
85
+
86
+ if verbose:
87
+ _LOGGER.info(f"Derived next step schema with {len(new_feature_names)} features:\n {len(new_cont_names)} continuous\n {len(new_cat_names)} categorical")
88
+
89
+ # 5. Return New Immutable Schema
90
+ return FeatureSchema(
91
+ feature_names=tuple(new_feature_names),
92
+ continuous_feature_names=tuple(new_cont_names),
93
+ categorical_feature_names=tuple(new_cat_names),
94
+ categorical_index_map=new_cat_index_map if new_cat_index_map else None,
95
+ categorical_mappings=new_cat_mappings if new_cat_mappings else None
96
+ )
@@ -278,6 +278,11 @@ class SchemaKeys:
278
278
  OPTIONAL_LABELS = "optional_labels"
279
279
 
280
280
 
281
+ class ChainKeys:
282
+ """Used by the ML chaining module."""
283
+ CHAIN_PREDICTION_PREFIX = "pred_"
284
+
285
+
281
286
  class _EvaluationConfig:
282
287
  """Set config values for evaluation modules."""
283
288
  DPI = 400
@@ -44,7 +44,7 @@ class FeatureSchema(NamedTuple):
44
44
  Handles conversion of Tuple->List and IntKeys->StrKeys automatically.
45
45
  """
46
46
  # validate path
47
- dir_path = make_fullpath(directory, enforce="directory")
47
+ dir_path = make_fullpath(directory, make=True, enforce="directory")
48
48
  file_path = dir_path / SchemaKeys.SCHEMA_FILENAME
49
49
 
50
50
  try:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "dragon-ml-toolbox"
3
- version = "20.0.0"
3
+ version = "20.1.0"
4
4
  description = "Complete pipelines and helper tools for data science and machine learning projects."
5
5
  authors = [
6
6
  { name = "Karl Luigi Loza Vidaurre", email = "luigiloza@gmail.com" }
@@ -53,13 +53,13 @@ __all__ = [
53
53
  "split_features_targets",
54
54
  "split_continuous_binary",
55
55
  "split_continuous_categorical_targets",
56
- "encode_categorical_features",
57
56
  "clip_outliers_single",
58
57
  "clip_outliers_multi",
59
58
  "drop_outlier_samples",
60
59
  "plot_continuous_vs_target",
61
60
  "plot_categorical_vs_target",
62
61
  "plot_correlation_heatmap",
62
+ "encode_categorical_features",
63
63
  "finalize_feature_schema",
64
64
  "apply_feature_schema",
65
65
  "match_and_filter_columns_by_regex",
@@ -12,13 +12,13 @@ _GRUPOS = [
12
12
  "split_features_targets",
13
13
  "split_continuous_binary",
14
14
  "split_continuous_categorical_targets",
15
- "encode_categorical_features",
16
15
  "clip_outliers_single",
17
16
  "clip_outliers_multi",
18
17
  "drop_outlier_samples",
19
18
  "plot_continuous_vs_target",
20
19
  "plot_categorical_vs_target",
21
20
  "plot_correlation_heatmap",
21
+ "encode_categorical_features",
22
22
  "finalize_feature_schema",
23
23
  "apply_feature_schema",
24
24
  "match_and_filter_columns_by_regex",